<?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>Aaron Whitman</title>
	<atom:link href="http://aaronwhitman.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://aaronwhitman.com</link>
	<description>Makes things happen on the internet, in the garden, and not-so-much on the golf course</description>
	<lastBuildDate>Mon, 30 Jan 2012 20:37:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to confuse and annoy website users</title>
		<link>http://aaronwhitman.com/2012/01/how-to-confuse-and-annoy-website-users/</link>
		<comments>http://aaronwhitman.com/2012/01/how-to-confuse-and-annoy-website-users/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 16:16:54 +0000</pubDate>
		<dc:creator>Aaron Whitman</dc:creator>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://aaronwhitman.com/?p=577</guid>
		<description><![CDATA[From Saturday, January 28th, 2012 on http://cbc.ca The web developers at CBC want to save me from an &#8220;older version of Internet Explorer&#8221;. That&#8217;s nice and all, but I&#8217;m on a Mac, using Firefox 10. Part of me blames Daniel Alfredsson, this is the kind of stunt he would pull. From Thursday, January 26th, 2012 [...]]]></description>
			<content:encoded><![CDATA[<h2>From Saturday, January 28th, 2012 on http://cbc.ca</h2>
<p>The web developers at CBC want to save me from an &#8220;older version of Internet Explorer&#8221;.  That&#8217;s nice and all, but I&#8217;m on a Mac, using Firefox 10.  Part of me blames Daniel Alfredsson, this is the kind of stunt he would pull.</p>
<p><a href="http://aaronwhitman.com/wp-content/uploads/2012/01/CBC-Thinks-FF10-Is-Old-IE.png" rel="lightbox[577]"><img src="http://aaronwhitman.com/wp-content/uploads/2012/01/CBC-Thinks-FF10-Is-Old-IE-606x462.png" alt="CBC.ca thinks Firefox 10 is old Internet Explorer" title="CBC.ca thinks Firefox 10 is old Internet Explorer" width="606" height="462" class="alignnone size-large wp-image-578" /></a><span id="more-577"></span></p>
<h2>From Thursday, January 26th, 2012 on http://williams-sonoma.com via http://evite.com</h2>
<p>I clicked on a full page ad at the end of the signup and profile setup process on Evite.com.  What can I say, I liked the ad and wanted to learn more about a blender&#8230; but I digress.</p>
<p>Evite knows I&#8217;m in Canada, since I just filled out and saved a profile.  Of course there are also other ways to know this, especially for ad targeting.</p>
<p>First thing I notice on the Williams Sonoma site is the &#8220;shipping to&#8221; link with a USA flag &#8211; so I decide to re-scope my session with Canada as the shipping destination by clicking on the flag.  Turns out <strong>Canada is not in the 75 countries that Williams Sonoma wants to sell online and ship to</strong>.</p>
<p><a href="http://aaronwhitman.com/wp-content/uploads/2012/01/Williams-Sonoma-No-Canada.png" rel="lightbox[577]"><img src="http://aaronwhitman.com/wp-content/uploads/2012/01/Williams-Sonoma-No-Canada-606x522.png" alt="Williams Sonoma ships to 75 countries - but not Canada" title="Williams Sonoma ships to 75 countries - but not Canada" width="606" height="522" class="alignnone size-large wp-image-579" /></a></p>
<p> I would have thought having the world&#8217;s 35<sup>th</sup> largest population would get us into the 75 ship-to locations &#8212; certainly ahead of Paraguay &#8212; which I&#8217;m told is a lovely country &#8211; <a href="http://en.wikipedia.org/wiki/List_of_countries_by_population" title="Wikipedia list of countries by population">ranked 105th in terms of population</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaronwhitman.com/2012/01/how-to-confuse-and-annoy-website-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>hCard parser H2VX not ready for HTML5 yet</title>
		<link>http://aaronwhitman.com/2012/01/hcard-parser-h2vx-not-ready-for-html5-yet/</link>
		<comments>http://aaronwhitman.com/2012/01/hcard-parser-h2vx-not-ready-for-html5-yet/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 20:59:13 +0000</pubDate>
		<dc:creator>Aaron Whitman</dc:creator>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[hCard]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Microformats]]></category>

		<guid isPermaLink="false">http://www.aaronwhitman.com/?p=557</guid>
		<description><![CDATA[Updated January 16, 2012 New frontiers come with unexpected challenges. I like using the hCard microformat in websites to make it easy for people to add contact information to their address books. I also like building websites in HTML5 for the semantics and am confident it is the way forward. Tools like Modernizr make browser [...]]]></description>
			<content:encoded><![CDATA[<p><em>Updated January 16, 2012</em></p>
<p>New frontiers come with unexpected challenges.  I like using the <a href="http://microformats.org/wiki/hcard" title="hCard Microformat">hCard microformat</a> in websites to make it easy for people to add contact information to their address books.  I also like building websites in HTML5 for the semantics and am confident it is the way forward.  Tools like <a href="http://www.modernizr.com/" title="Modernizr">Modernizr</a> make browser support less of an issue with the new tags.</p>
<h2>What&#8217;s an hCard without a parser?</h2>
<p>The hCard format is great for publishing contact info in HTML, but to turn it into a vCard that can be downloaded and added to your address book, something has to do the conversion for you.<span id="more-557"></span>  A &#8220;<a href="http://microformats.org/wiki/h2vx" title="X2v hCard reference">production deployment of the X2V hCard</a>&#8221; is located <a href="http://h2vx.com/vcf/" title="H2VX hCards to vCards">here</a> allowing one-click downloads of hCards in any web page.</p>
<p>This is a real gift &#8212; saving us from keeping vCard files up to date on our own servers, and/or writing our own hCard to vCard conversion tools.  It was created by the hCard microformat authors <a href="http://microformats.org/wiki/User:Tantek">Tantek Çelik</a> and <a href="http://microformats.org/wiki/User:Brian">Brian Suda</a> which perhaps has added to it&#8217;s popular usage.</p>
<h2>What&#8217;s not ready with this parser?</h2>
<p>Regarding <del datetime="2012-01-16T14:54:49+00:00">hCard microformats</del> <ins datetime="2012-01-16T14:54:49+00:00">H2VX</ins> and HTML5, here&#8217;s the rub: it does not support the new HTML5 tags, and will not find them in your webpage if your hCard root element is an HTML5 tag.</p>
<p>I noticed an issue when updating some websites to use &lt;section&gt; tags instead of &lt;div&gt; tags for the root element of an hCard.  <em>(NOTE: the root element of an hCard has class=&#8221;vcard&#8221;)</em>.</p>
<h2>HTML5 for your .vcard root element will not work</h2>
<pre class="terminal">
&lt;section class=&quot;vcard&quot;&gt;
    &lt;a href=&quot;http://aaronwhitman.com&quot; class=&quot;url fn&quot;&gt;Aaron Whitman&lt;/a&gt;
&lt;/section&gt;
</pre>
<h2>HTML for the .vcard root element works as expected</h2>
<pre class="terminal">
&lt;div class=&quot;vcard&quot;&gt;
    &lt;a href=&quot;http://aaronwhitman.com&quot; class=&quot;url fn&quot;&gt;Aaron Whitman&lt;/a&gt;
&lt;/div&gt;
</pre>
<p>So, when updating websites with hCards to use HTML5 tags, make sure to consider this issue.  Thankfully, there is a <a href="http://dev.h2vx.com/vcf/" title="H2VX hCards to vCards">dev version of H2VX that does support HTML5 tags</a>.  The fact that this is a &#8220;dev&#8221; version implies it is not to be relied upon, but it is encouraging to see that HTML5 support is in the works.  </p>
<p>Now to check every website I&#8217;ve built in recent memory for the hCard broken by HTML5 situation.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaronwhitman.com/2012/01/hcard-parser-h2vx-not-ready-for-html5-yet/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>QR Codes should delight you</title>
		<link>http://aaronwhitman.com/2011/10/qr-codes-should-delight-you/</link>
		<comments>http://aaronwhitman.com/2011/10/qr-codes-should-delight-you/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 19:38:45 +0000</pubDate>
		<dc:creator>Aaron Whitman</dc:creator>
				<category><![CDATA[Online Strategy]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Product Strategy]]></category>
		<category><![CDATA[QR Code]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.aaronwhitman.com/?p=535</guid>
		<description><![CDATA[I love using QR Codes for what I believe their intended purpose is &#8212; to transfer a short string of data to somebody&#8217;s smart phone. Specifically, a URL for a responsively designed web site. Single-purpose mobile optimized web pages are ok in some circumstances too, but that&#8217;s a topic for another post. There is no [...]]]></description>
			<content:encoded><![CDATA[<p>I love using QR Codes for what I believe their intended purpose is &#8212; to transfer a short string of data to somebody&#8217;s smart phone.  Specifically, a URL for a responsively designed web site.  Single-purpose mobile optimized web pages are ok in some circumstances too, but that&#8217;s a topic for another post.</p>
<p>There is no more efficient way to get a person to open a specific web page on their smart phone from the physical world.  In fact, nothing else comes close.  Not augmented reality. Not Google Goggles Search. Nothing can touch QR Codes for sending a person to a specific web page on their smart phone from outside their smart phone.</p>
<p><span id="more-535"></span></p>
<h2>Considerations for arguments against QR Codes</h2>
<p>There is a noticeable anti QR Code sentiment among designers, developers, marketers, and <a href="http://daringfireball.net/linked/2011/10/26/robot-barf">famous technology critics</a>.  Here are some  positions I disagree with.</p>
<h3>QR Codes are are ugly on products/packaging</h3>
<p>Bar codes are ugly too.  So are disclaimers, surgeon general warnings, and many brand identities for that matter.  If a QR Code is taking over a design <span style="text-decoration: underline;">then it&#8217;s a design failure</span>.  It does not take away from the purpose of the QR code.</p>
<h3>I don&#8217;t know where the QR Code is going to take me</h3>
<p>You don&#8217;t know where a URL is going to take you either.  You have clicked on hyperlinks that say &#8220;click here&#8221; a million times since 1996.  If anything, you should expect that the marketer or product manager who slapped that QR Code on the package has put together something special for you on a web page that will work well on your smart phone.  If a QR Code burns you, feel free to call out whoever produced it on your social media platform of choice.</p>
<h3>I just use URL-shorteners</h3>
<p>Great for Twitter, but you would still have to type the URL into a smart phone browser address bar.  Also, they require a pass-through the URL-shortening server, and you can&#8217;t tell the final address until you arrive (same as a QR Code).</p>
<h3>By the time I get my QR Code scanning app open, the bus drives off</h3>
<p>I could not agree more with this.  QR Codes on anything that you can&#8217;t hold in your hand, require conditions to be perfect for you to scan them.  When was the last time conditions were perfect for anything?  Exactly.  However, product packaging, print, even signage; they all let you control conditions until the scanner app is ready to scan.  I admit to cringing every time I see a QR Code on the side of a bus.</p>
<h2>More on QR Codes you can hold</h2>
<p>This is the use case where QR Codes shine.  You have a person with a smart phone, holding an object they want to know more about.  The producer of that object has prepared a web page (or entire website) that works properly on a smart phone.  By &#8220;properly&#8221;, I  mean a responsively designed website that provides the best experience on any device &#8212; after all the person who scans the QR Code might want to Tweet, email, bookmark, or share the page in some other way. The person with the smart phone scans the QR Code and gets the exact web page they need within the context of the object they are holding in their hand.  There was no hassle due to typing, moving QR Codes, a crowd of people to navigate, etc.  Just the shortest path from wanting to know more about an object to getting that information.</p>
<h2>QR Codes don&#8217;t suck, bad implementations do</h2>
<p>I&#8217;m going to wrap with the idea that, there&#8217;s probably a few dozen ways to use QR Codes to make people really glad you did, and about a million ways to make them wish you hadn&#8217;t bothered.  People in charge of delighting customers run the risk of messing up the implementation of any technology.  Don&#8217;t blame the technology itself.  Nobody said slapping QR Codes on everything was a good idea.  I say slapping them on the right objects for the right reasons is a brilliant idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaronwhitman.com/2011/10/qr-codes-should-delight-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google+ is elegant, but too much hassle</title>
		<link>http://aaronwhitman.com/2011/08/google-plus-is-elegant-but-too-much-hassle-for-me/</link>
		<comments>http://aaronwhitman.com/2011/08/google-plus-is-elegant-but-too-much-hassle-for-me/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 12:42:27 +0000</pubDate>
		<dc:creator>Aaron Whitman</dc:creator>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[AgentG]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Hassle]]></category>
		<category><![CDATA[SGPlus]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.aaronwhitman.com/?p=517</guid>
		<description><![CDATA[I think Google+ has nailed a lot of useful features, and has a great web interface. No question in my mind that if it launched before Twitter, I would think it is the best way for me to share with others online. But it did not launch before Twitter, and now I have a list [...]]]></description>
			<content:encoded><![CDATA[<p>I think Google+ has nailed a lot of useful features, and has a great web interface.  No question in my mind that if it launched before Twitter, I would think it is the best way for me to share with others online.</p>
<p>But it did not launch before Twitter, and now I have a list of Twitter-ers that I rather enjoy following and sharing with.  I don&#8217;t want to pick and choose what I post to Twitter and what I post to Google+.  I need to post to both automatically.<br />
<span id="more-517"></span></p>
<h2>Popular options for posting from Google+ to Twitter</h2>
<h3><a href="http://gplus.sagg.im/">AgentG (a.k.a. Rob McGee)</a></h3>
<p>The gist of this service is that you provide AgentG with access to your Twitter account, add Rob McGee to a Google+ circle, and the Tweets will flow.  Cool hack by Mr. McGee &#8212; but I&#8217;m not interested in giving him (or anybody else) access to my Twitter account.  Nothing personal (pun intended). Next.</p>
<h3><a href="https://chrome.google.com/webstore/detail/hbgcgahdbgbdenffckohanhobdcnkoip">SGPlus Chrome Extension</a></h3>
<p>I use Chrome for Google+ so this seemed like a great fit.  I started the download/install process and this alert popped up in Chrome:</p>
<p><img src="http://www.aaronwhitman.com/wp-content/uploads/2011/08/SGPlus_Confirm_Too_Much_Access.png" alt="SGPlus Confirm Too Much Access" title="SGPlus Confirm Too Much Access" width="401" height="218" class="alignnone size-full wp-image-518" /></p>
<p>Seriously?  The service lured me in with: </p>
<blockquote style="margin: 1em 4em; font-weight: bold;"><p>&#8220;Complete social network integration: post to Facebook and Twitter, see your feeds inside Google Plus, and much more&#8221;</p></blockquote>
<p>I guess &#8220;much more&#8221; means stuff I do not want them connecting with, including my &#8220;data on picasaweb.google.com, gmail.com and 5 other websites&#8221;.  <strong>What 5 other websites?</strong>  Come on!</p>
<h2>Waiting for a desktop/mobile client</h2>
<p>I understand and appreciate the spirit of hacking functionality into new services, and applaud the work of folks like Rob McGee.  This pushes feature sets forward, and hopefully there is some future  reward for their hard work if they&#8217;ve really hit the mark.  I just happen to have a few hang-ups about giving access to my data to people and/or companies that I don&#8217;t think need it.</p>
<p>I use the Twitter client for Mac/iPhone to share on Twitter.  This is what I am going to keep doing until there is a similar option for Google+. I suppose this means an API for Google+ first, since the Chrome browser is Google&#8217;s obvious choice for desktop users of &#8220;Plus&#8221;.</p>
<p>It would feel better to me if the Twitter for Mac client added a post to Google+ feature.  Or if there was a some other Google+ client that posted to Twitter.  In any case, I would want to be sure that my credentials for both Twitter and Google+ stayed on my computer and not in <a href="http://www.wired.com/gamelife/2011/04/playstation-network-hacked/">somebody else&#8217;s database with dubious security standards</a>.</p>
<h2>Cool? Yes.  Hassle? Yes.</h2>
<p>To recap: I dig Google+ but can&#8217;t do without Twitter.  Now I&#8217;ve spent way too much time trying to find somebody else&#8217;s solution for making the two into a peanut butter cup.  I&#8217;m out &#8212; or at least on hold &#8212; for now.  Call me when there is less hassle, and I&#8217;ll start using Google+ again.</p>
<h2>Please prove me wrong</h2>
<p>I would like nothing more than for you to comment with the perfect solution that I have given up looking for.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaronwhitman.com/2011/08/google-plus-is-elegant-but-too-much-hassle-for-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When CSS is !important</title>
		<link>http://aaronwhitman.com/2011/07/when-css-is-important/</link>
		<comments>http://aaronwhitman.com/2011/07/when-css-is-important/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 15:04:34 +0000</pubDate>
		<dc:creator>Aaron Whitman</dc:creator>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.aaronwhitman.com/?p=495</guid>
		<description><![CDATA[If you are reading this, you know the gist of &#8220;!important&#8221; is to counter-act the normal application of CSS rules based on selector specificity. One way to look at this is that it&#8217;s a shortcut to make up for another rule&#8217;s selector that is too broad. Another way would be to describe it as getting [...]]]></description>
			<content:encoded><![CDATA[<p>If you are reading this, you know the gist of &#8220;!important&#8221; is to counter-act the normal application of CSS rules based on selector specificity.  One way to look at this is that it&#8217;s a shortcut to make up for another rule&#8217;s selector that is too broad.  Another way would be to describe it as getting things done and moving on.  We can argue both ways depending on how much time/budget you have &#8212; but more importantly &#8212; how many places a given CSS file will be used.<br />
<span id="more-495"></span></p>
<h2>Important situation #1 &#8211; it&#8217;s just me</h2>
<p>Let&#8217;s say you have a nicely crafted blog interface, with modern HTML, CSS, and non-obtrusive JavaScript &#8212; maybe even a responsive design.  For a special post you might want to override a CSS rule to achieve some worthwhile effect once in a while. In this case &#8220;!important&#8221; might be the fastest way to override the default rule, and it is a one-time use with limited or no tentacles.</p>
<p>Here are a couple examples that I&#8217;m not proud of, but are honestly in style sheets I&#8217;ve written: </p>
<pre class="terminal">
#subnav li { list-style-image: none!important; }
#search_form button { margin-top: 0em!important; }
</pre>
<p>Why are these instances of &#8220;!important&#8221; there?  I control the entire project after all.  Looks like I chose the &#8220;get it done and move on&#8221; option, I really can&#8217;t remember.  There are probably a few elegant ways to remove &#8220;!important&#8221; and get the same effect from the CSS rules in my interface.  Fortunately, it&#8217;s just me.  For now.  What if others start to work on these projects with me someday?  This could grow tentacles fast.</p>
<h2>Important situation #2 &#8211; I&#8217;m delivering to (or sharing with) others</h2>
<p>Imagine you are authoring a plugin for an open source project and included a CSS rule like this:</p>
<pre class="terminal">
#content .button { background: #e5e5e5; color: #444!important; }
</pre>
<p>That snippet of CSS makes me think the author was thinking one or more of the following:</p>
<ol>
<li>Somewhere in my plugin the .button class is different than inside #content</li>
<li>Under normal use only my plugin will have markup with an element id=&#8221;content&#8221;</li>
<li>Nobody should change my gray buttons, gray buttons are <em>important</em></li>
<p></oil></p>
<p>Here&#8217;s my reaction each:</p>
<ol>
<li>So what, if you are writing the HTML and CSS there is always another way to get a more specific selector without using &#8220;!important&#8221;</li>
<li>This hardly seems reasonable, now if somebody wants to override your rule they have to include &#8220;#content&#8221; in their selector</li>
<li>Really? Some designs may not work with gray buttons</li>
</ol>
<h2>The cascade of &#8220;!important&#8221;</h2>
<p>I&#8217;m not directly talking about <a href="http://www.w3.org/TR/CSS2/cascade.html">the cascade</a> &#8212; rather &#8212; the ripples of &#8220;!important&#8221; that run through a project when you have to undo another CSS rule that is &#8220;!important&#8221;.  This can happen with plugins when the author opts for the &#8220;get it done and move on&#8221; path in their CSS.</p>
<p>In order to undo the gray button rule, we need something like this:</p>
<p>Gray buttons from plugin-styles.css</p>
<pre class="terminal">
#content .button { background: #e5e5e5; color: #444!important; }
</pre>
<p>Now make blue buttons with my-styles.css</p>
<pre class="terminal">
/* Won't cut it
.button { background: #21759B; color: #fff } */

/* Still won't cut it
#content .button { background: #21759B; color: #fff } */

/* Here we go! */
#content .button { background: #21759B; color: #fff!important; }
</pre>
<p>Imagine an update for one special form with red buttons</p>
<pre class="terminal">
#content .redForm .button { background: red; color: #fff!important; }
</pre>
<p>The user experience of your interface is one thing, but we should probably also consider the user-experience of other developers that install the plugin in their projects.</p>
<h2>But this CSS rule <em>is</em> important</h2>
<p>Fair enough, it&#8217;s just a matter of where and when.  Let&#8217;s not create work for others when we don&#8217;t have too.  That is how the world ended up with &#8220;Paste from Word&#8221; buttons that remove bloated markup and inline styles.  There is almost always another way to apply your CSS rule rather than resorting to &#8220;!important&#8221;.  This is especially true if you are authoring the HTML and CSS.</p>
<h2>Find, review, and justify your &#8220;!important&#8221;s</h2>
<pre class="terminal">
$ grep '!important' style.css | wc -l
   4
</pre>
<p>Looks like I have four things to make sure of before I commit styles.css no?  Maybe a nice commit message would include the rationale for leaving them in.</p>
<h2>Ironically, it&#8217;s not that important</h2>
<p>The implementation of &#8220;!important&#8221; in CSS always looks a bit odd to me, since &#8220;!&#8221; is the not operator in many programming languages.  The irony that CSS gives more weight to things that are &#8220;not important&#8221; always gives me a grin.</p>
<p>A CSS rule that comes with &#8220;!important&#8221; on the tail is almost never important for all uses.</p>
<h2>Having said all that, what do you say?</h2>
<p>Please leave a comment with any good/bad/ugly uses of &#8220;!important&#8221; that you&#8217;ve been involved with.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaronwhitman.com/2011/07/when-css-is-important/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Green in Regulation &#8211; plugged</title>
		<link>http://aaronwhitman.com/2011/07/green-in-regulation-plugged/</link>
		<comments>http://aaronwhitman.com/2011/07/green-in-regulation-plugged/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 17:29:28 +0000</pubDate>
		<dc:creator>Aaron Whitman</dc:creator>
				<category><![CDATA[Snapshots]]></category>

		<guid isPermaLink="false">http://www.aaronwhitman.com/2011/07/green-in-regulation-plugged/</guid>
		<description><![CDATA[Via Flickr: On an approach from the rough, stuck the green and plugged. The photo does not do it justice, the ball was plugged pretty deep.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/aaronwhitman/5964684960/" title="Green in Regulation - plugged"><img src="http://farm7.static.flickr.com/6013/5964684960_87ac6a30bc.jpg" alt="Green in Regulation - plugged by Aaron Whitman" /></a></p>
<p><i>Via Flickr:</i> On an approach from the rough, stuck the green and plugged.  The photo does not do it justice, the ball was plugged pretty deep.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaronwhitman.com/2011/07/green-in-regulation-plugged/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 3.2.1 &#8212; body class changes</title>
		<link>http://aaronwhitman.com/2011/07/wordpress-3-2-1-body-class-changes/</link>
		<comments>http://aaronwhitman.com/2011/07/wordpress-3-2-1-body-class-changes/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 14:32:03 +0000</pubDate>
		<dc:creator>Aaron Whitman</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.aaronwhitman.com/?p=482</guid>
		<description><![CDATA[WordPress developers take note &#8212; somewhere between version 3.1.3 and version 3.2.1 there is a change related to custom themes and body classes that might break your CSS in some certain scenarios. If you have custom templates with underscores in their names, updating to WordPress 3.2.1 can break your CSS. For example a template file [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress developers take note &#8212; somewhere between version 3.1.3 and version 3.2.1 there is a change related to custom themes and body classes that might break your CSS in some certain scenarios.</p>
<p>If you have custom templates with underscores in their names, updating to WordPress 3.2.1 can break your CSS.  For example a template file called &#8220;template-my_custom_template.php&#8221; used to produce body class names *without* underscores prior to verison 3.2.1</p>
<pre class="terminal">
&lt;body class="template-mycustomtemplate"&gt;
</pre>
<p>As of version 3.2.1 that body class is now generated with the underscores in place:</p>
<pre class="terminal">
&lt;body class="template-my_custom_template"&gt;
</pre>
<p>This is actually the way it should have always been, but can cause havoc if you&#8217;ve got any CSS rules that use the old model.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaronwhitman.com/2011/07/wordpress-3-2-1-body-class-changes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion Tree Conflict: local delete, incoming edit upon update</title>
		<link>http://aaronwhitman.com/2011/05/subversion-tree-conflict-local-delete-incoming-edit-upon-update/</link>
		<comments>http://aaronwhitman.com/2011/05/subversion-tree-conflict-local-delete-incoming-edit-upon-update/#comments</comments>
		<pubDate>Fri, 13 May 2011 11:08:32 +0000</pubDate>
		<dc:creator>Aaron Whitman</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Error Messages]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://www.aaronwhitman.com/?p=418</guid>
		<description><![CDATA[Forgotten lesson: always run a SVN status check before commits/renames/deletes, or you risk wasting time and wishing you had. Had a stunned look on my face for a while after trying to rename a folder in a subversion repository: $ svn mv [old_folder] [new_folder] [output marking old_folder as deleted and new_folder as added] $ svn [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Forgotten lesson: always run a SVN status check before commits/renames/deletes, or you risk wasting time and wishing you had.</strong></p>
<p>Had a stunned look on my face for a while after trying to rename a folder in a subversion repository:<span id="more-418"></span></p>
<pre class="terminal">
$ svn mv [old_folder] [new_folder]
[output marking old_folder as deleted and new_folder as added]

$ svn ci [old_folder] [new_folder]
Deleting        [old_folder]
svn: Commit failed (details follow):
svn: Directory ' [old_folder]' is out of date
svn: Your commit message was left in a temporary file:
svn:    'svn-commit.tmp'

$ svn up [old_folder]
   C [old_folder]
At revision ###.
Summary of conflicts:
  Tree conflicts: 1

$ svn status
?       [new_folder]
!       C [old_folder]
        >   local delete, incoming edit upon update
</pre>
<h2>PBKAC</h2>
<p>My brain cramp was induced by the terse error message: &#8220;local delete, incoming edit upon update&#8221;.   The problem was, of course, between the keyboard and chair. I had not committed/updated [old_folder] before trying to rename it.  The moral of the story is <em>always run a status check first</em>, so you don&#8217;t assume readiness for commits/renames/deletes/etc:</p>
<pre class="terminal">
$svn status
</pre>
<h2>Googling the answer (a.k.a the internet makes us soft)</h2>
<p>The Googling that helped me to understand &#8220;local delete, incoming edit upon update&#8221; lead to <a href="http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-conflicts.html#tsvn-dug-conflicts-tree-1">this nice summary</a>.</p>
<h2>Cleaning up the mess I made</h2>
<pre class="terminal">
$ svn revert [old_folder]
Reverted '[old_folder]'

$ svn status
?       [new_folder]

$ svn add [new_folder]
[output marking new_folder as added]

$svn ci [new_folder]
[output for successful commit]

$ svn status
[no output - this is good]
</pre>
<h2>Lesson re-learned</h2>
<p>Phew, there&#8217;s a detour I hope to never take again, turned a 10-second task into about 30-minutes of head-scratching.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaronwhitman.com/2011/05/subversion-tree-conflict-local-delete-incoming-edit-upon-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coffee at Mos Eisley Cantina</title>
		<link>http://aaronwhitman.com/2011/05/coffee-at-mos-eisley-cantina/</link>
		<comments>http://aaronwhitman.com/2011/05/coffee-at-mos-eisley-cantina/#comments</comments>
		<pubDate>Thu, 12 May 2011 17:17:22 +0000</pubDate>
		<dc:creator>Aaron Whitman</dc:creator>
				<category><![CDATA[Snapshots]]></category>
		<category><![CDATA[Coffee]]></category>

		<guid isPermaLink="false">http://www.aaronwhitman.com/?p=414</guid>
		<description><![CDATA[&#160;]]></description>
			<content:encoded><![CDATA[<div id="attachment_415" class="wp-caption alignnone" style="width: 464px"><a href="http://www.aaronwhitman.com/wp-content/uploads/2011/05/fair_trade_jedai.jpg" rel="lightbox"><img class="size-large wp-image-415 photo" title="Fair Trade Jedai" src="http://www.aaronwhitman.com/wp-content/uploads/2011/05/fair_trade_jedai-454x606.jpg" alt="Fair Trade Jedai" width="454" height="606" /></a><p class="wp-caption-text">In this version of events, Obi-wan dispatches Shaq after a fair trade espresso.</p></div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://aaronwhitman.com/2011/05/coffee-at-mos-eisley-cantina/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitfalls of styling the HTML element</title>
		<link>http://aaronwhitman.com/2011/04/pitfalls-of-styling-the-html-element/</link>
		<comments>http://aaronwhitman.com/2011/04/pitfalls-of-styling-the-html-element/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 18:15:16 +0000</pubDate>
		<dc:creator>Aaron Whitman</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://www.aaronwhitman.com/?p=404</guid>
		<description><![CDATA[This was fun painful. On the new ablesense.com website design, I had foolishly applied some styles to the &#60;html&#62; element &#8212; specifically my font stack for the website. The particular selection of fonts was very important in making this mistake obscure: html { font-family: helvetica, arial, sans-serif; } Browsers have default fonts The fonts all [...]]]></description>
			<content:encoded><![CDATA[<p>This was <del datetime="2011-03-25T19:21:01+00:00">fun</del> painful.</p>
<p>On the new ablesense.com website design, I had foolishly applied some styles to the &lt;html&gt; element &mdash; specifically my font stack for the website.  The particular selection of fonts was very important in making this mistake obscure:</p>
<p><code>html { font-family: helvetica, arial, sans-serif; }</code></p>
<h2>Browsers have default fonts</h2>
<p>The fonts all looked fine in Firefox, Safari, Chrome, and Internet Explorer (Helvetica on Mac, and Arial on PC).  This lines up with the CSS rule above, so it seemed like everything was fine &mdash; but it was not.<span id="more-404"></span></p>
<h3>Opera has a purpose after all</h3>
<p>To satisfy some sense of thoroughness, I took a look at the website on Opera.  Kaboom!  All the text was displayed with &#8220;Lucida Grande&#8221; &mdash; which appeared nowhere in the website CSS!  However, the developer tools revealed that &#8220;Lucida Grande&#8221; was in fact being applied quite on purpose.  As it turns out, &#8220;Lucida Grande&#8221; is the default font for Opera, at least on Macs.</p>
<h2>Faulty rationale</h2>
<p>If putting CSS rules on the &lt;body&gt; tag is convenient for the cascade, then putting them on the &lt;html&gt; element must be &mdash; well &mdash; even more convenient!  Right?  Wrong.</p>
<h2>Getting smart, after out-smarting myself</h2>
<p><code>body { font-family: helvetica, arial, sans-serif; }</code></p>
<h2>Let&#8217;s move on, and quickly</h2>
<p>So to wrap up, don&#8217;t style the &lt;html&gt; element in CSS.  You probably already knew this, but now you have another example of why it&#8217;s a bad idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaronwhitman.com/2011/04/pitfalls-of-styling-the-html-element/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

