<?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>Jack Reichert</title>
	<atom:link href="http://www.jackreichert.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jackreichert.com</link>
	<description>Web Development</description>
	<lastBuildDate>Fri, 04 May 2012 22:12:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Responsive Web Design &#8211; Solving the Pitfalls of&#8216;Display: None&#8217;</title>
		<link>http://www.jackreichert.com/2012/04/27/responsive-web-design-solving-the-pitfalls-of-display-none/</link>
		<comments>http://www.jackreichert.com/2012/04/27/responsive-web-design-solving-the-pitfalls-of-display-none/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 16:21:58 +0000</pubDate>
		<dc:creator>Jack Reichert</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.jackreichert.com/?p=1346</guid>
		<description><![CDATA[One of the biggest complaints I&#8217;ve heard about Responsive Web Design is that sites built to be responsive take too long to load. We may have reached the age of broadband with our desktops but with bandwidth throttling and pay-per-byte mobile]]></description>
			<content:encoded><![CDATA[<p>One of the biggest complaints I&#8217;ve heard about Responsive Web Design is that sites built to be responsive <a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5qYWNrcmVpY2hlcnQuY29tL3ByZXNlbnRhdGlvbnMvd3BueWMtYXByaWwtMjAxMi1hZGFwdGl2ZS13ZWItZGVzaWduLXByZXNlbnRhdGlvbi8jL3Rvb0xvbmdMb2Fk">take too long to load</a>.</p>
<p>We may have reached the age of broadband with our desktops but with bandwidth throttling and pay-per-byte mobile plans we really need to consider every pixel and every bit of code we send to our users&#8230; If we expect them to frequent our sites that is.</p>
<p>One popular approach to building a responsive website is to take an already designed theme, then hide each element that doesn&#8217;t look good on a mobile until a minimalist theme remains. While that technique may leave you with a decent looking site it will wreak havoc on your users&#8217; experience.</p>
<p>The ideal is to plan a minimum viable product — focus on your user&#8217;s needs, design for your content — and you&#8217;ll have the perfect mobile-friendly site. Just add a few media queries and you&#8217;re good to go.</p>
<p>But sometimes you NEED that awesomely cool heavy animation loading on your desktop theme, but want to spare your mobile users. Or you&#8217;d like to add some extra navigation, which just doesn&#8217;t work with the mobile experience.</p>
<p>What do you do then?</p>
<h3>Introducing: php-mobile-detect</h3>
<p>Let&#8217;s say you have a WordPress theme that you&#8217;re adapting to be Responsive&#8230;</p>
<p>Download the <a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3BocC1tb2JpbGUtZGV0ZWN0Lw==">php-mobile-detect</a> script and upload it to your theme folder.</p>
<p>Require it in your functions.php file.</p>
<pre><code>
    require_once('Mobile_Detect.php');
    $detect = new Mobile_Detect();
</code></pre>
<p>Then when you have to urge to apply a &#8220;Display: none;&#8221; in your stylesheet for something that is particularly heavy.</p>
<pre><code>
    global $detect;
    if ($detect->isMobile() &#038;&#038; !$detect->isTablet()) {
        // code for mobile only
    } elseif ($detect->isTablet()) {
        // tablet browsers
    } else {
        // everything else
    }
</code></pre>
<p>Voil&agrave;!</p>
<h3>But User Agent Sniffing is BAD?!</h3>
<p>Browser Detection is a double edged sword. <a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Nzcy10cmlja3MuY29tL2Jyb3dzZXItZGV0ZWN0aW9uLWlzLWJhZC8=" 0="target="_blank"">Here&#8217;s a great summary why you shouldn&#8217;t do this.</a> But this solution, while technically IS browser detection, is more in the spirit of capability detection. We&#8217;re not singling out all iPhones and building a special theme for them, we&#8217;re finding all mobile devices that aren&#8217;t tablets and hiding/showing elements consequently. This is more akin to the media queries we so dearly love and rely upon for our responsive site.</p>
<p>Disagree? Please share your thoughts!</p>
<p>Kudos <a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly90d2l0dGVyLmNvbS8jIS92aWN0b3JzdGFuY2l1" 0="target="_blank"">@victorstanciu</a> for a great job on the php-mobile-detect script!</p>
 <img src="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1346" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.jackreichert.com/2012/04/27/responsive-web-design-solving-the-pitfalls-of-display-none/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressNYC Show Notes: Books to Read About Responsive Web Design and Why</title>
		<link>http://www.jackreichert.com/2012/04/22/wordpressnyc-show-notes-books-to-read-about-responsive-web-design-and-why/</link>
		<comments>http://www.jackreichert.com/2012/04/22/wordpressnyc-show-notes-books-to-read-about-responsive-web-design-and-why/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 23:54:31 +0000</pubDate>
		<dc:creator>Jack Reichert</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Adaptive Web Desgin]]></category>
		<category><![CDATA[Mobile First]]></category>
		<category><![CDATA[responsive web design]]></category>
		<category><![CDATA[WordPressNYC]]></category>

		<guid isPermaLink="false">http://www.jackreichert.com/?p=1339</guid>
		<description><![CDATA[To prepare for my presentation at the WordPressNYC Meetup this past week — aside from getting to play with a tons of cool web toys and techniques — I read a lot of articles and books. While there are a lot of articles out]]></description>
			<content:encoded><![CDATA[<p>To prepare for my presentation at the <a  0="title="April" 1="WPNYC:" 2="Responsive" 3="Web" 4="Design"" href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5qYWNrcmVpY2hlcnQuY29tLzIwMTIvMDQvMTkvYXByaWwtd3BueWMtcmVzcG9uc2l2ZS13ZWItZGVzaWduLw==">WordPressNYC Meetup this past week</a> — aside from getting to play with a tons of cool web toys and techniques — I read a lot of articles and books.</p>
<p>While there are a lot of articles out there, these books really cover the core issues and flesh out the concepts. In fact, many of the best articles are just chapters from these books. I&#8217;ll be sharing some of the articles as well as tools in future posts so stay tuned!</p>
<h3><strong>Books</strong></h3>
<p><span id="more-1339"></span></p>
<p><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5hYm9va2FwYXJ0LmNvbS9wcm9kdWN0cy9yZXNwb25zaXZlLXdlYi1kZXNpZ24="><strong>Responsive Web Design</strong> &#8211; Ethan Marcotte</a></p>
<p>This is where it all began. I feel like, as a Front-end Developer, discovering Responsive Web Design is one of those paradigm shift moments that, when it happens to you, you know your life will never be the same. However much it is adopted in the future, it&#8217;s principles will surely live on through one means or another.</p>
<p><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Vhc3ktcmVhZGVycy5uZXQvYm9va3MvYWRhcHRpdmUtd2ViLWRlc2lnbi8="><strong>Adaptive Web Design</strong> &#8211; Aaron Gustafson</a></p>
<p>Another seminal book and a strong case for progressive enhancement. While it <em>seems</em> to only deal with the periphery of the conversation I think, in truth, it really deals the core of the issue. Responsive Web Design is about making your site accessible to as many devices as possible. Progressive Enhancement reminds us that there <em>are</em> devices other than the <strong>newest</strong> and<strong> coolest</strong>&#8230; If you build your site upon a solid foundation that addresses older browsers, text-only browsers and audio site browsers, it will make a better experience for <em><strong>ALL</strong></em> browsers and <em><strong>ALL</strong></em> your visitors. Isn&#8217;t that whom you&#8217;re building your site for anyways? Your visitors?</p>
<p><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5hYm9va2FwYXJ0LmNvbS9wcm9kdWN0cy9tb2JpbGUtZmlyc3Q="><strong>Mobile First</strong> &#8211; Luke Wroblewski</a></p>
<p><em>“Design is the process of gradually applying constraints until an elegant solution remains”</em></p>
<p>This book is more about an overall approach to web development. We too often forget whom we are building our sites for &#8212; our users &#8212; and we tend to get to give in to the pressures to overload our sites with features&#8230; Because we can. This leads for bad Responsive Sites. One of the biggest criticisms of Responsive Web Design is that the mobile versions tend to load too much unnecessary junk. If you overload your site with features then are forced to hide those extraneous <em>features</em> your mobile devices will still download the extras. But if you think Mobile First — what this book advocates — you&#8217;ll be doing yourself, and your users a favor.</p>
<p>I&#8217;ll be sharing some of the articles as well as tools in future posts so stay tuned!</p>
 <img src="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1339" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.jackreichert.com/2012/04/22/wordpressnyc-show-notes-books-to-read-about-responsive-web-design-and-why/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>April WPNYC: Responsive Web Design</title>
		<link>http://www.jackreichert.com/2012/04/19/april-wpnyc-responsive-web-design/</link>
		<comments>http://www.jackreichert.com/2012/04/19/april-wpnyc-responsive-web-design/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 23:52:28 +0000</pubDate>
		<dc:creator>Jack Reichert</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[adaptive web design]]></category>
		<category><![CDATA[responsive web design]]></category>
		<category><![CDATA[speaking engagement]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wpnyc]]></category>

		<guid isPermaLink="false">http://www.jackreichert.com/?p=1315</guid>
		<description><![CDATA[I had the privilege Tuesday night of speaking to some of the greatest WordPressers in the world at the Official WordPress New York Meetup. It was a true honor. If you missed the performance or  would like to review the slides, feel]]></description>
			<content:encoded><![CDATA[<p>I had the privilege Tuesday night of speaking to some of the greatest WordPressers in the world at the <a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5tZWV0dXAuY29tL1dvcmRwcmVzc05ZQy9ldmVudHMvNTgyMjM2NzIv">Official WordPress New York Meetup</a>. It was a true honor.</p>
<p><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5qYWNrcmVpY2hlcnQuY29tL3ByZXNlbnRhdGlvbnMvd3BueWMtYXByaWwtMjAxMi1hZGFwdGl2ZS13ZWItZGVzaWduLXByZXNlbnRhdGlvbi8jL2hp">If you missed the performance or  would like to review the slides, feel free!</a></p>
<p><a  0="title="View" 1="The" 2="Presentation" 3="I" 4="gave" 5="on" 6="Adaptive" 7="Web" 8="Design"" href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5qYWNrcmVpY2hlcnQuY29tL3ByZXNlbnRhdGlvbnMvd3BueWMtYXByaWwtMjAxMi1hZGFwdGl2ZS13ZWItZGVzaWduLXByZXNlbnRhdGlvbi8jL2hp"><img class="aligncenter size-medium wp-image-1317" src="http://www.jackreichert.com/files/2012/04/Screen-Shot-2012-04-19-at-7.43.41-PM-300x187.png" alt="View The Presentation I gave on Adaptive Web Design" width="300" height="187" /></a></p>
<p style="text-align: center;"><em>Use keyboard arrows to advance from slide to slide.</em></p>
<p><strong>Note:</strong> Ironically, while it is viewable in Chrome and Firefox with all the fun JS bling, <em><strong>it is best viewed in Safari</strong></em>. When choosing a medium to build my presentation in I wanted to use impress.js because it provides a solid fallback, hence jiving with my preaching&#8230; Unfortunately, browsers aren&#8217;t quite up to all the 3d graphic rendering they claim to be. Even the bleeding edge ones&#8230; Except for Safari. (Although Chrome seems to be best for video&#8230; especially YouTube.)</p>
<p><strong>Disclaimer:</strong> I am in the process of going through my live sites to implement the concepts I spoke about in my talk. I am not walking the walk 100% yet&#8230;</p>
<p>I will be posting notes for the slides over the weekend, and over the next few weeks I&#8217;ll be expanding on the ideas I shared in full blogposts. If you don&#8217;t want to miss any I&#8217;ll be <a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuY29tL2phY2tyZWljaGVydA==">tweeting them</a> as they come out.</p>
<p>Please comment, share your ideas. If you think I&#8217;m talking $#!T call me out on it.</p>
<p>Cheers!</p>
<p><img class="aligncenter size-full wp-image-1316" title="jack-reichert-cbs-local" src="http://www.jackreichert.com/files/2012/04/jack-reichert-cbs-local.jpg" alt="" width="500" height="750" /></p>
 <img src="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1315" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.jackreichert.com/2012/04/19/april-wpnyc-responsive-web-design/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Interesting IE vs Chrome Trend</title>
		<link>http://www.jackreichert.com/2012/04/08/interesting-ie-vs-chrome-trend/</link>
		<comments>http://www.jackreichert.com/2012/04/08/interesting-ie-vs-chrome-trend/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 00:30:29 +0000</pubDate>
		<dc:creator>Jack Reichert</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[cross-browser compatibility]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[theme development]]></category>

		<guid isPermaLink="false">http://www.jackreichert.com/?p=1272</guid>
		<description><![CDATA[TL;DR Why does IE still have a market share? It&#8217;s the fault of your IT department&#8230; I&#8217;ve been doing some research for my upcoming talk at WPNYC where I&#8217;ll be discussing Responsive/Adaptive Web Design. While preparing to talk about why it&#8217;s important]]></description>
			<content:encoded><![CDATA[<p><strong>TL;DR</strong> Why does IE still have a market share? It&#8217;s the fault of your IT department&#8230;</p>
<p><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2dzLnN0YXRjb3VudGVyLmNvbS8jYnJvd3Nlci13dy1kYWlseS0yMDEyMDMwOS0yMDEyMDQwNw=="><img class="aligncenter size-full wp-image-1273" title="Screen Shot 2012-04-08 at 2.03.06 PM" src="http://www.jackreichert.com/files/2012/04/Screen-Shot-2012-04-08-at-2.03.06-PM.png" alt="" width="843" height="532" /></a></p>
<p>I&#8217;ve been doing some research for my <a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5tZWV0dXAuY29tL1dvcmRwcmVzc05ZQy9ldmVudHMvNTgyMjM2NzIv">upcoming talk at WPNYC</a> where I&#8217;ll be discussing Responsive/Adaptive Web Design. While preparing to talk about why it&#8217;s important to be inclusive with your design I checked the daily browser distribution from <a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2dzLnN0YXRjb3VudGVyLmNvbS8jbW9iaWxlX2Jyb3dzZXItd3ctZGFpbHktMjAxMjAzMDktMjAxMjA0MDc=">statcounter</a> and noticed a very interesting pattern&#8230;</p>
<p>Do you see the funny blue/green fish at the top of the chart?<span id="more-1272"></span></p>
<p>The blue is Internet Explorer, the green is Chrome. The blue humps are weekdays, the green and blue meet / cross over at the weekend. Basically, what (IMHO) this means is that most of the IE users use Chrome at home, when they are predominantly at home &#8212; over the weekend &#8212; they use their preferred (or kid&#8217;s preferred) browser, while at work they are forced to use what their IT team provides&#8230;</p>
<p>So if you&#8217;re wondering why IE is still such a strong force, ask your IT department at work.</p>
<p>Just some food for thought&#8230;</p>
 <img src="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1272" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.jackreichert.com/2012/04/08/interesting-ie-vs-chrome-trend/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Small Thought About Adaptive Web Design vs Responsive Web Design</title>
		<link>http://www.jackreichert.com/2012/03/29/a-small-thought-about-adaptive-web-design-vs-responsive-web-design/</link>
		<comments>http://www.jackreichert.com/2012/03/29/a-small-thought-about-adaptive-web-design-vs-responsive-web-design/#comments</comments>
		<pubDate>Fri, 30 Mar 2012 00:41:51 +0000</pubDate>
		<dc:creator>Jack Reichert</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://www.jackreichert.com/?p=1266</guid>
		<description><![CDATA[Responsive Web Design, which is built on the principals of Graceful Degradation. Whereas&#8230; Adaptive Web Design is built on the principals of  Progressive Enhancement. Whhahaatt? Graceful Degradation is when you build your site for modern browsers, then find solutions to make]]></description>
			<content:encoded><![CDATA[<p><strong><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5hYm9va2FwYXJ0LmNvbS9wcm9kdWN0cy9yZXNwb25zaXZlLXdlYi1kZXNpZ24=">Responsive Web Design</a></strong>, which is built on the principals of <strong>Graceful Degradation</strong>.</p>
<p>Whereas&#8230;</p>
<p><strong><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Vhc3ktcmVhZGVycy5uZXQvYm9va3MvYWRhcHRpdmUtd2ViLWRlc2lnbi8=">Adaptive Web Design</a></strong> is built on the principals of  <strong>Progressive Enhancement</strong>.</p>
<h3><em><strong>Whhahaatt?</strong></em></h3>
<p>Graceful Degradation is when you build your site for modern browsers, then find solutions to make the experience passable for people using Internet Explorer or Mobile Browsers.</p>
<p>Progressive Enhancement starts with a solid base, designing as for the lowest common denominator, then adding enhancements for a better experience for the more fortunate visitors.</p>
<p>This is a <strong><em>somewhat</em></strong> of a watered down analysis. But essentially, it&#8217;s a difference of approaches. Who is your audience? are you targeting, mostly, people who use modern browsers and you just want to make sure it just works <em>OK</em> elsewhere? There&#8217;s nothing wrong with Progressive Enhancement&#8230; when it&#8217;s intentional. Personally, I&#8217;m a fan of inclusive thinking.</p>
 <img src="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1266" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.jackreichert.com/2012/03/29/a-small-thought-about-adaptive-web-design-vs-responsive-web-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I tried Twitter&#8217;s Bootstrap and What I Didn&#8217;t Get from It</title>
		<link>http://www.jackreichert.com/2012/03/16/why-i-tried-twitters-bootstrap-and-what-i-didnt-get-from-it/</link>
		<comments>http://www.jackreichert.com/2012/03/16/why-i-tried-twitters-bootstrap-and-what-i-didnt-get-from-it/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 17:34:09 +0000</pubDate>
		<dc:creator>Jack Reichert</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[LessCSS]]></category>
		<category><![CDATA[Twitter Bootstrap]]></category>

		<guid isPermaLink="false">http://jackreichert.jackreichert.net/?p=1259</guid>
		<description><![CDATA[The inspiration for Twitter&#8217;s Bootstrap is pretty awesome &#8211; a predefined reusable modules for building beautiful, elegant sites. Who wouldn&#8217;t want that? There are so many common design patterns we front-end developers use throughout our work, why not put them]]></description>
			<content:encoded><![CDATA[<p>The inspiration for <a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuZ2l0aHViLmNvbS9ib290c3RyYXAv">Twitter&#8217;s Bootstrap</a> is pretty awesome &#8211; a predefined reusable modules for building beautiful, elegant sites. Who wouldn&#8217;t want that? There are so many common design patterns we front-end developers use throughout our work, why not put them all into one place?</p>
<p>That was what I was looking for when I decided to build my next site using bootstrap&#8230; and it <em>did</em> save time, initially. I decided to use the LessCSS version, I LOVE mixins, and within a couple hours I had 95% of the site styled and laid out. The Bootstrap framework <em>is</em> truly powerful.</p>
<p>Bootstrap does for UI what jQuery does for UX&#8230; Potentially.</p>
<p>Until you hit a bump in the road.</p>
<p><span id="more-1259"></span></p>
<p>The CSS includes for Bootstrap are similar to jQuery in the sense that it doesn&#8217;t give you anything you couldn&#8217;t do yourself, but it gives you a LOT that you couldn&#8217;t do <em>simply</em> yourself. As the jQuery tagline goes: &#8220;<a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2pxdWVyeS5jb20v">Write Less Do More</a>&#8220;.</p>
<p>Inevitably, when styling a site I come across cross-browser inconsistencies. Usually it&#8217;s a simple matter of tweaking to fix the bug. The problem with Bootstrap is that it adds so much extra CSS into the mix that finding that conflict becomes practically impossible. CSS was designed to be more forgiving than Javascript. If there is a conflict, it cascades. CSS was designed to work that way, on purpose. </p>
<p>But in order to work with a CSS framework the way you&#8217;d work with jQuery you&#8217;d have to know &#8211; cold &#8211; every module in the framework in order to  be able to properly  troubleshoot the conflicts. When something breaks in jQuery you know immediately; however with CSS, if the inconsistency is not in the browser you&#8217;re developing in you&#8217;ll only find it later and then good luck finding it.</p>
<p><strong>Example: </strong> I was styling a typical list of blogpost excerpts for a category archive page &#8211; article tags surrounding a title + excerpt, etc. On the right of each article I had <em>floating</em> a &#8220;more&#8221; button (position: absolute; top: 1em; right: 1em; with a position relative on the article tag). </p>
<p>The &#8220;more&#8221; button would <em>float</em> perfectly in webkit browsers and in IE (even IE7) but for some reason it is ignoring the position relative on the article element in Mozilla so they all piled up on top of each other at the top of the page. </p>
<p>I had a a different issue with an absolute positioned input tag with IE7 that just disappeared completely from the DOM.</p>
<p>Normally I&#8217;d be able to find the conflict easily. Normally I KNOW every inch of CSS that I code. But with Bootstrap I wasted hours hunting down the conflict, which was buried in a completely unrelated module&#8230; Due to this volatility I had to drop Bootstrap for the project.</p>
<p>Back in the days of &#8220;webmasters&#8221; when WYSIWYG editors began to appear, the people making a living from coding sites were concerned that these editors would take their jobs. But the editors spat out spaghetti code, unformatted and crude. Which worked fine in the browser you were designing your site for. But once there was a cross-browser inconsistency, you needed a pro to sacrifice a day to fix it. Sadly, Bootstrap isn&#8217;t much different.</p>
<p>I plan to continue to use Bootstrap, but not as a full design framework, as it was designed to be; rather, as a library that I can take pieces from. The reset and mixins are a shoe-in to use. It&#8217;s not that it&#8217;s too buggy to use; more, that the nature of CSS makes frameworks difficult to implement as a full robust solution.</p>
<p><strong>TLDR:</strong> Bootstrap is like WYSIWYG editors in the sense that it makes your life easier, until you have to troubleshoot a bug&#8230; Then it&#8217;s a nightmare.</p>
<p>Have YOU used Bootstrap? What are your thoughts?</p>
 <img src="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1259" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.jackreichert.com/2012/03/16/why-i-tried-twitters-bootstrap-and-what-i-didnt-get-from-it/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Form Input &#8220;Placeholder&#8221; Attribute Polyfill</title>
		<link>http://www.jackreichert.com/2012/03/01/form-input-placeholder-attribute-polyfill/</link>
		<comments>http://www.jackreichert.com/2012/03/01/form-input-placeholder-attribute-polyfill/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 21:54:18 +0000</pubDate>
		<dc:creator>Jack Reichert</dc:creator>
				<category><![CDATA[Reference]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[polyfills]]></category>

		<guid isPermaLink="false">http://jackreichert.jackreichert.net/?p=1254</guid>
		<description><![CDATA[This is a jQuery-dependent polyfill for the placeholder input attribute. If you&#8217;re relying on &#8220;placeholder&#8221; pop this code in your page and you don&#8217;t have to let IE users hanging in the breeze. function activatePlaceholders() { var detect = navigator.userAgent.toLowerCase();]]></description>
			<content:encoded><![CDATA[<p>This is a jQuery-dependent polyfill for the placeholder input attribute. If you&#8217;re relying on &#8220;placeholder&#8221; pop this code in your page and you don&#8217;t have to let IE users hanging in the breeze.</p>
<pre><code>function activatePlaceholders() {
    var detect = navigator.userAgent.toLowerCase();
    if (detect.search("msie") > 0 ) {
        $('input[type=text],input[type=email]').each(function(ind,elem) {
            if ($(elem).attr('placeholder') != ""){
                $(elem).val($(elem).attr("placeholder"));
                $(elem).click(function() {
                    if ($(this).val() == $(this).attr("placeholder")) {
                        $(this).val("");
                    }
                });
                $(elem).blur(function() {
                    if ($(this).val() == "") {
                        $(this).val($(this).attr("placeholder"));
                    }
                });
            }
        });
    }
}</code></pre>
 <img src="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1254" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.jackreichert.com/2012/03/01/form-input-placeholder-attribute-polyfill/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Add a GitHub Gist to your WordPress site with this nifty Shortcode</title>
		<link>http://www.jackreichert.com/2012/02/14/add-a-github-gist-to-your-wordpress-site-with-this-nifty-shortcode/</link>
		<comments>http://www.jackreichert.com/2012/02/14/add-a-github-gist-to-your-wordpress-site-with-this-nifty-shortcode/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 01:51:15 +0000</pubDate>
		<dc:creator>Jack Reichert</dc:creator>
				<category><![CDATA[Reference]]></category>

		<guid isPermaLink="false">http://www.jackreichert.com/?p=1245</guid>
		<description><![CDATA[I find that I tend, with the nature of what I blog about, to need to post code into my blogposts. Unfortunately this is one area where the WordPress wysiwyg is lacking. The code tags don&#8217;t always work, especially without]]></description>
			<content:encoded><![CDATA[<p>I find that I tend, with the nature of what I blog about, to need to post code into my blogposts. Unfortunately this is one area where the WordPress wysiwyg is lacking. The code tags don&#8217;t always work, especially without the pre tags, and sometimes it still strips out important pieces. When you&#8217;re blogging about code, you don&#8217;t want your code to be messed up.</p>
<p>Github offers a fun feature called gists. It&#8217;s not a full git repository, just a way to host a single file or a few lines of code. In addition they offer a script to embed your gist into your site. The only problem is that if you toggle in between the &#8220;Visual&#8221; and HTML tabs on the WordPress wysiwyg it will probably strip out your script. So, back to the drawing board, right? No.</p>
<p>Add the following code to your theme&#8217;s functions.php file and you&#8217;re good to go.</p>
<script src="https://gist.github.com/1832446.js?file=gist-shortcode.php"></script>
<p>I <em>did</em> find a plugin that offers this functionality; however, when I downloaded it and opened it up it had WAY too many lines of code. I appreciate extra functionality and maybe a plugin is the way to go for you if that&#8217;s what you need. </p>
<p>But if you just need the shortcode&#8230; The above solution is lean and mean.</p>
 <img src="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1245" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.jackreichert.com/2012/02/14/add-a-github-gist-to-your-wordpress-site-with-this-nifty-shortcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No More Passwords* &#8211; Log into WordPress using a QR Code</title>
		<link>http://www.jackreichert.com/2012/01/22/no-more-passwords-log-into-wordpress-using-a-qr-code/</link>
		<comments>http://www.jackreichert.com/2012/01/22/no-more-passwords-log-into-wordpress-using-a-qr-code/#comments</comments>
		<pubDate>Sun, 22 Jan 2012 20:37:04 +0000</pubDate>
		<dc:creator>Jack Reichert</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[qr codes]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[WordPress plugin]]></category>

		<guid isPermaLink="false">http://www.jackreichert.com/?p=1140</guid>
		<description><![CDATA[Download and try it yourself A short while ago I stumbled upon an interesting Hacker News conversation&#8230; Intrigued by the challenge, I decided to implement the theory as a WordPress plugin for all to use. So here&#8217;s the gory details&#8230; The Flow]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://www.youtube.com/embed/gWDtQAXIu0I?rel=0" frameborder="0" width="600" height="450"></iframe></p>
<h3 style="text-align: center;"><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5qYWNrcmVpY2hlcnQuY29tL3BsdWdpbnMvbm8tbW9yZS1wYXNzd29yZHMv">Download and try it yourself</a></h3>
<p><em>A short while ago I stumbled upon an interesting <a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL25ld3MueWNvbWJpbmF0b3Iub3JnL2l0ZW0/aWQ9MzM5OTc4MQ==">Hacker News</a> conversation&#8230;</em></p>
<p>Intrigued by the challenge, I decided to implement the theory as a WordPress plugin for all to use. So here&#8217;s the gory details&#8230;<span id="more-1140"></span></p>
<h2>The Flow</h2>
<ol>
<li><strong>User</strong> visits <strong>Login page</strong></li>
<li><strong>Login page</strong> Generates unique hash, saves hash to the database</li>
<li><strong>Login page</strong> Creates QR code of a link that GET posts hash to the <strong>Plugin&#8217;s admin page</strong></li>
<li>Via long polling <strong>Login page </strong>waits for a username to be inserted into the row in the database that has the page&#8217;s active hash</li>
<li><strong>User</strong> scans QR code with mobile device and which is sent to <strong>Plugin&#8217;s admin page</strong> on mobile with along with the active hash posted via GET</li>
<li>In WordPress, the <strong>User</strong> must be logged in to reach <strong>Plugin admin page</strong> by definition</li>
<li>The <strong>Plugin admin page</strong> records the username to active hash in the database (the GET posted hash)</li>
<li>The<strong> Login page</strong> sees a change in active hash&#8217;s row of the database and reloads the page with a GET post of the active hash</li>
<li>Using the WordPress action init the page  receives the hash, finds row of active hash in the database and pulls the username, it then removes the hash from database so it can&#8217;t be reused</li>
<li>The page then logs in the <strong>User</strong> using the username pulled and redirects the <strong>User</strong> to the WordPress Dashboard</li>
</ol>
<div style="text-align: center;"><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5qYWNrcmVpY2hlcnQuY29tL2ZpbGVzLzIwMTIvMDEvUXJMb2dpbi5wbmc="><br />
</a></div>
<div style="text-align: center;"></div>
<div style="text-align: center;"><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5qYWNrcmVpY2hlcnQuY29tL2ZpbGVzLzIwMTIvMDEvUXJMb2dpbjEucG5n"><img class="aligncenter size-large wp-image-1217" title="QrLogin" src="http://www.jackreichert.com/files/2012/01/QrLogin1-1024x636.png" alt="" width="1024" height="636" /></a></div>
<h2>Notes</h2>
<p>Alone, this isn&#8217;t a solution to never having to remember your passwords again. Your mobile browser has to have the logged-in cookies for it to work completely without password.</p>
<p><strong>Why is it still useful?</strong> Well, everyone goes everywhere with their cellphones now, but with today&#8217;s mobility it means that you&#8217;re likely to find yourself with an urgent idea to post to your blog, and not wanting to type it out with your thumbs on your mobile. So, borrow Aunt Sally&#8217;s computer &#8211; that by all chance has thousands of suspicious apps, key loggers and, by the way, is running Vista &#8211; and to log in just scan away!</p>
<p>Ideally, it would work great with an app built to complement it that would scan the qr code, save your passwords, and log you in automatically if the local cookie had expired&#8230; Perhaps that app is in the works&#8230; Comment below if you&#8217;d like it and I may be swayed to create such a monster. Perhaps <a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly90aXFyLm9yZy8=">tiqr</a> might want to gang up&#8230;</p>
<p><strong>Is it secure?</strong> I&#8217;ve put several checks in place to make sure it is.</p>
<ol>
<li>Username/password are never passed back and forth, only the unique hash.</li>
<li>Hash is removed from the database once it&#8217;s used, old hashes that haven&#8217;t been used can&#8217;t be unless the database is hacked, but then you have bigger issues.</li>
<li>All database queries of the hash have been escaped to prevent XSS attacks.</li>
<li>nonce added to ajax call.</li>
<li>nonce and confirmation added to on mobile end to prevent CSRF attack.</li>
</ol>
<p>I&#8217;m pretty sure that covers security. Anything else needed?</p>
<p>Suggestions? Comments? You know where that goes&#8230;</p>
<h2>Special thanks to&#8230;</h2>
<ul>
<li><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5nYXJ5YzQwLmNvbS8yMDEwLzAzLzUtdGlwcy1mb3ItdXNpbmctYWpheC1pbi13b3JkcHJlc3Mv">5 tips for using AJAX in WordPress</a></li>
<li><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2cucGVycGxleGVkbGFicy5jb20vMjAwOS8wNS8wNC9waHAtanF1ZXJ5LWFqYXgtamF2YXNjcmlwdC1sb25nLXBvbGxpbmcv">PHP jQuery AJAX Javascript Long Polling</a> - although the long polling solution I worked out with WordPress&#8217; AJAX isn&#8217;t perfect yet.</li>
<li>And of course <em><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly90d2l0dGVyLmNvbS8jIS9wZXRlcmxlZ2llcnNraQ==">@PeterLegierski</a> </em>for the original post on HN.</li>
</ul>
<p>&nbsp;</p>
<p><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL0phY2tyZWljaGVydC9Xb3JkUHJlc3MtTG9naW4tdmlhLVFSLUNvZGU=">View the GitHub repository</a></p>
<p><a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5qYWNrcmVpY2hlcnQuY29tL3BsdWdpbnMvbm8tbW9yZS1wYXNzd29yZHMv">Download and try it yourself</a></p>
<p>&nbsp;</p>
 <img src="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1140" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.jackreichert.com/2012/01/22/no-more-passwords-log-into-wordpress-using-a-qr-code/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>How to Add META Tags &#8211; ROBOTS NOFOLLOW,NOINDEX &#8211; to Your MediaWiki Site Head</title>
		<link>http://www.jackreichert.com/2012/01/18/how-to-add-meta-tags-robots-nofollownoindex-to-your-mediawiki-site-head/</link>
		<comments>http://www.jackreichert.com/2012/01/18/how-to-add-meta-tags-robots-nofollownoindex-to-your-mediawiki-site-head/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 02:24:42 +0000</pubDate>
		<dc:creator>Jack Reichert</dc:creator>
				<category><![CDATA[Reference]]></category>
		<category><![CDATA[mediawiki]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.jackreichert.com/?p=1135</guid>
		<description><![CDATA[I spent too much time today hunting down how to do this, so I thought I&#8217;d spell it out clearly. Add the following snippet to your LocalSettings.php OR includes/OutputPage.php file and it will insert the META tag ROBOTS NOINDEX, NOFOLLOW into the header. As you]]></description>
			<content:encoded><![CDATA[<p>I spent too much time today hunting down how to do this, so I thought I&#8217;d spell it out clearly.</p>
<p>Add the following snippet to your <a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5tZWRpYXdpa2kub3JnL3dpa2kvTWFudWFsOkxvY2FsU2V0dGluZ3MucGhw">LocalSettings.php</a> <em><strong>OR</strong></em> <a  href="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5tZWRpYXdpa2kub3JnL3dpa2kvTWFudWFsOk91dHB1dFBhZ2UucGhw">includes/OutputPage.php</a> file and it will insert the META tag ROBOTS NOINDEX, NOFOLLOW into the header. </p>
<p>As you know, the ROBOTS NOINDEX, NOFOLLOW tag will tell search engines not to index your site. </p>
<pre><code>## Adds global NOINDEX,NOFOLLOW  meta to site headers
$wgExtensionFunctions[] = 'globalNoIndex';
function globalNoIndex(){
   global $wgOut;
   $wgOut->addMeta ( 'ROBOTS' , 'NOINDEX,NOFOLLOW') ;
}</code></pre>
<p>Why would you want that? Any number of reasons: you&#8217;re still developing it, it&#8217;s a private wiki for just you or a small group of people or maybe you want to block search engines to just to spite them.</p>
<p>The above snippet can be modified and used to insert any meta tag into the header of your mediawiki site. </p>
<p>I placed the code after defining the theme in my LocalSettings.php page and it worked beautifully. Not sure where specifically it should go. Please comment below if you know of a &#8220;best placement&#8221; for the code.</p>
 <img src="http://jackreichertcom.jackreichert.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1135" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.jackreichert.com/2012/01/18/how-to-add-meta-tags-robots-nofollownoindex-to-your-mediawiki-site-head/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

