<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
    	<title>Viget.com Blogs</title>
	    <link>http://viget.com/</link>
	    <dc:language>en</dc:language>
	    <dc:rights>Copyright 2012</dc:rights>
	    <dc:date>2012-05-17T13:33:49+00:00</dc:date>
	    <admin:generatorAgent rdf:resource="http://expressionengine.com/" />
	
		
	      <item>
			<title>Developer Ramp&#45;up with Pull Requests</title>
			
				<link>http://viget.com/extend/developer-ramp-up-with-pull-requests</link>
				<guid>http://viget.com/extend/developer-ramp-up-with-pull-requests#When:19:37:36Z</guid>
			
			<dc:creator>Zachary Porter</dc:creator>
			<description><![CDATA[ 
		    
					<p>
	I started as a developer at Viget a couple of months ago. Over that course of time, I have familiarized myself with Viget&#39;s development process and ramped up on some larger Rails applications. As with most large projects, there are certain code guidelines to follow to make a project easier to maintain. These guidelines may not be etched in stone, and a new hire will need some help getting started with larger applications. Github Pull Requests can ease a new developer into a project.</p>
<h2>
	Background</h2>
<p>
	If you are not familiar with Pull Requests, Github has a <a href="https://github.com/blog/712-pull-requests-2-0">write-up</a>&nbsp;on the current system. Pull Requests are normally thought of as a way to manage code across repositories. This is especially true in the open-source community. Pull Requests make it easy for developers to contribute to repositories without requiring write-access. At Viget, we have the advantage of giving every contributor write-access. So, how do we use Pull Requests?</p>
<p>
	While working on <a href="http://viget.com/work/puma">Puma</a>, I create topic branches for each ticket. I push the topic branch to the remote server: Github. When I am confident that my topic branch is ready to be merged into master, I issue a Pull Request and notify the team. The other developers can review, comment, and decide whether my changes are ready or whether more work is required. As a new hire, this process has been a worthwhile experience.</p>

					<h3>
	Consistent Style</h3>
<p>
	A code base with several different styles is a nightmare to read and maintain. Ideally, every new person on a project will continue using the established conventions. This allows for current (and future) maintainers to easily navigate and make changes. Pull Requests allow experienced developers to review the changes stylistically and comment on a line or block of code that does not fit. Style changes are considered minor in the grand scheme of things; but, they go a long way toward getting a new hire comfortable with what has been written.</p>
<h3>
	Unknown Methods</h3>
<p>
	During a code review via a Pull Request, the other developers point out an existing method that helps tidy up the code. Without the Pull Request, a new hire would not have known the method existed. <em>Wouldn&#39;t documentation help in this matter?</em> Not necessarily. Documentation is great, if the search criteria is known. The code review, however, brings the unknown method to light and gives the new hire better insight into the project.</p>
<h3>
	Feedback</h3>
<p>
	When joining a project, there are times when the scope of a requested feature is not fully understood. An experienced developer can help; but, a Pull Request can be issued to keep the conversation unobtrusive. This conversation is now documented with the code. It can be referenced in the future to better understand the context around the implementation of a feature.</p>
<h3>
	Automated Tests</h3>
<p>
	Adding tests to a change is very important at Viget. Making certain additional tests belong with existing ones is also very important. For instance, if context blocks are being used to organize unit testing class methods from instance methods, then new tests should continue to use this convention. This follows the same reasoning of keeping a consistent style within a project. Pull Requests allow the veteran developers to confirm the tests added conform to what has been established in the test suite.</p>
<p>
	Pull Requests also provide a channel to receive feedback on additions to the test suite. Developers can determine if tests are behaving as expected. They may find that a piece of the acceptance criteria is missing or that the method behaves correctly when nil is passed in as an argument. Without this feedback, the code is not tested properly and is not guaranteed to maintain behavior when a refactoring is done in the future.</p>
<h2>
	Conclusion</h2>
<p>
	Pull Requests have been beneficial to me as I ramp up with larger Rails projects at Viget. Code consistency, unknown methods, and feedback are just a few of the ways in which they helped me. In what ways have Pull Requests helped you? What else do you find beneficial when ramping up on a larger application?</p>

				
			]]></description>
			<dc:subject>Extend</dc:subject>
			<dc:date>2012-05-22T19:37:36+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>Project Managers in Boulder Mentoring Group</title>
			
				<link>http://viget.com/flourish/project-managers-in-boulder-mentoring-group</link>
				<guid>http://viget.com/flourish/project-managers-in-boulder-mentoring-group#When:13:59:41Z</guid>
			
			<dc:creator>Jason Sperling</dc:creator>
			<description><![CDATA[ 
		    
					<p>
	Confession: I&rsquo;ve got Meetup jealousy. There are gobs of Meetups for developers, designers and even marketers. In Boulder, there&rsquo;s an average of 2.35 Ruby on Rails Meetups per developer*. But for Project Managers working in our industry? Feels like Meetups zero. Now that&rsquo;s just something that must change.</p>
<p>
	Thinking back to my early days as a Project Manager in the client-services business, I would have loved to have tapped into a tribe of PMs to glean wisdom from the elders and get special potions from the medicine man. So, I&rsquo;ve started to prototype this idea along with a couple of other locals.</p>
<p>
	Here&rsquo;s the concept:</p>

					<h1>
	PM Mix UP (working title)</h1>
<p>
	<strong>High-Frequency</strong><br />
	We want a high-frequency event that allows us to really get to know each other. We&rsquo;ll share current and ongoing challenges and solutions. We plan to meet monthly for lunch downtown.</p>
<p>
	<strong>Strong Community</strong><br />
	We want to build a community with deep roots that will be sustainable over years. To accomplish this, we are starting with a small group and growing slowly. This will allow us to develop an intimate nucleus of trust and expand from there.</p>
<p>
	<strong>Wisdom Transfer</strong><br />
	Our initial crew is pretty senior, but we&rsquo;re all still learning. We want a forum where we can share our experiences and what we&rsquo;ve learned to help each other (cue British accent) raise, raise, raise the bar. Ultimately, we&rsquo;ll include a wide range of silverbacks and newbies. We&rsquo;re looking at ways to best share information during our lunches as well as asynchronously.</p>
<p>
	<strong>Valuable Insight</strong><br />
	Some of the key questions we&rsquo;ll likely cover in our meetings:</p>
<ul>
	<li>
		What tools are useful in managing resources, budgets, and project plans?</li>
	<li>
		What is the best approach for time management when juggling multiple projects?</li>
	<li>
		How do different pricing models impact management strategy?</li>
	<li>
		What have you found effective in navigating diverse personalities and work styles of internal and client teams?</li>
	<li>
		How do you delegate and manage internal communications?</li>
	<li>
		When all else fails, what strategies have proven valuable in keeping the project on track?</li>
</ul>
<p>
	<strong>Our First Iteration</strong><br />
	In April, 2012, we tried the first PM Mix UP. <a href="http://www.google.com/url?q=http%3A%2F%2Fwww.linkedin.com%2Fpub%2Fstephanie-loring%2F7%2F277%2Fb77&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNFGJ4rVaaQW4xn0JheSo25q-UAhdA" target="_blank">Stephanie Loring</a>, Client Services Director at Imulus, <a href="http://www.google.com/url?q=http%3A%2F%2Fwww.linkedin.com%2Fpub%2Fpaul-knipe%2F6%2Fa17%2Fa34&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNFf8anS_gm0c2VY5rU7fPM67gTxFw" target="_blank">Paul Knipe</a>, Senior Account Manager at Vermillion, and I met at <a href="http://www.shineboulder.com/" target="_blank">Shine</a>. Everyone was very appreciative of the idea and enthusiastic about working together to develop a resource for our industry and peers. Our conversation naturally drifted to a discussion about different budgeting tools, pricing models (Time and Materials versus Fixed Bid), and tactics we&rsquo;ve used to keep a project on track. We all do things a little differently and discovered some great insights!</p>
<p>
	<strong>Our Next Iteration</strong><br />
	We&rsquo;ve got another lunch planned and I&rsquo;m looking forward to it. During this one, we&rsquo;ll continue to refine the PM Mix UP model. We&rsquo;re not sure what that will look like, but we&rsquo;re excited.</p>
<p>
	<strong>Spreading the Love</strong><br />
	<a href="http://www.google.com/url?q=http%3A%2F%2Fviget.com%2Fabout%2Fteam%2Fmrobison&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNFqJGU1sHclb7TmLTP12JxzmFRbBA" target="_blank">Melissa Robison</a>, Senior Project Manager at Viget in our Falls Church, VA, office heard about the PM Mix UP idea and was inspired to do something similar. She has recruited a number of PMs to date and will be scheduling her first meeting in a few weeks! Reach out to her if you are interested in being involved.</p>
<p>
	<strong>Other Resources</strong></p>
<ul>
	<li>
		Are you a local Product Manager? Check out<a href="http://www.google.com/url?q=http%3A%2F%2Fwww.meetup.com%2FBoulder-Product-Meetup%2Fevents%2F62994792%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGZRdlhmgXSO6FZT0NcZgEYptu6dA" target="_blank"> Boulder Product Meetup</a> - a networking group where you can connect with other Product Managers in Boulder.</li>
	<li>
		If you&rsquo;re a Project Manager working in web/software development for a client-services business and you&rsquo;re interested in joining us for lunch one of these months -- drop me a line.</li>
	<li>
		Love this idea, but aren&rsquo;t local to Boulder or in the DC area? Why not copy me and start a PM Mix UP in your home city? Just be sure to let us know how it goes and what you learn.</li>
</ul>
<p>
	*Ok, I made that up, but it seems accurate.</p>

				
			]]></description>
			<dc:subject>Flourish</dc:subject>
			<dc:date>2012-05-21T13:59:41+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>Accepting Donations Online, and How Stripe Can Help (Freebie Included)</title>
			
				<link>http://viget.com/advance/accepting-donations-online-and-how-stripe-can-help</link>
				<guid>http://viget.com/advance/accepting-donations-online-and-how-stripe-can-help#When:20:24:46Z</guid>
			
			<dc:creator>Tommy Marshall</dc:creator>
			<description><![CDATA[ 
		    
					<p>
	Accepting payments directly from your site is a great way to maintain user experience, lend credibility to your organization and have greater control over data.&nbsp;However, becoming your own online merchant comes with a slew of headaches. Setting aside days to find the best rates, fretting about monthly and per-transaction fees, testing for PCI compliance, and dealing with multiple 3rd party vendors when a problem arise are all common occurrences that must be dealt with.</p>

					<p>
	Luckily, major brands like Paypal and Google stepped up to help alleviate those headaches. And though both of these tech giants allow processing donations, more companies have cropped up with the model of catering specifically to Nonprofits. Start ups like <a href="http://piryx.com" target="_blank">Piryx</a>, <a href="http://razoo.com" target="_blank">Razoo</a> and <a href="http://firstgiving.org" target="_blank">FirstGiving</a>&nbsp;sprouted up with an even greater focus on empowering Nonprofits with greater marketing and social media tools to spread their message. But even though these services offer great social networking features, are easy to implement, and will securely and quickly process incoming donations, they still suffer from two crucial pitfalls:</p>
<ul>
	<li>
		Higher transaction fees. (Sometimes much, much higher)</li>
	<li>
		User must leave your site.</li>
</ul>
<p>
	Now, this is not an article about why you should stop using the third-party payment processing service you are currently using. This is an article about why you should consider collecting donations directly on your site, too, and how <a href="http://stripe.com" target="_blank">Stripe</a> can help.</p>
<p>
	Arguably the most popular payment processor is Paypal. But, because Paypal can be easily added to any and all websites, we can tend to think of it as unimpressive and some say <a href="https://www.google.com/search?q=paypal+unprofessional" target="_blank">unprofessional</a> when it is the only option when making a transaction. Additionally, if someone is confused by the Paypal checkout process, had a poor experience with them in the past, or for another reason chooses not to use them, that donation is either delayed or lost completely.</p>
<h2>
	So, Why Am I Focusing On Nonprofits?</h2>
<p>
	Nonprofits can use the most help. In the early stages, <strong>success or failure can be determined by a single donor</strong>. And although <a href="http://vimeo.com/20290657" target="_blank">money does not warrant </a>success, making sure that those who do want to donate can have a memorable experience certainly helps. And just having the ability to take money from people over the internet is not good enough. There&rsquo;s more to it than that.</p>
<p>
	You need to inspire people to realize your cause can make a difference -- and encourage them to be curious, comfortable, and happy to support it. <strong>There is a serious disconnect when you are forced to move someone away from your site in order to support you.&nbsp;</strong>That needs to stop.</p>
<h2>
	Welcome Stripe Payments</h2>
<p>
	<a href="http://stripe.com" target="_blank">Stripe</a> is an online payment processor that makes it incredibly easy to start accepting payments directly on your website -- today. There&rsquo;s no sign up. No monthly minimum transaction amount. There&rsquo;s no catch. With Stripe you can:</p>
<ul>
	<li>
		Securely accept donations directly on your website<sup>1</sup></li>
	<li>
		Funds deposited into a bank account on a seven-day rolling basis</li>
	<li>
		Incredibly powerful and developer-friendly API</li>
	<li>
		No multiple third-party vendors to deal with</li>
	<li>
		Unmatched customer support</li>
	<li>
		Attractive and easy to use Dashboard (<a href="https://manage.stripe.com/anonymous" target="_blank">Live demo</a>)</li>
	<li>
		More representative credit card statements&nbsp; (ie. DONATION TO YOUR ORGANIZATION)</li>
	<li>
		Same or lower fees than Paypal<sup>2</sup></li>
	<li>
		Keep the user on your site and maintain the site experience</li>
</ul>
<p>
	<a href="http://stripe.com" target="_blank">Stripe</a> lets you easily and securely add a donation form directly on your site -- no iframes, javascript embeds, nuttin&rsquo;. This allows you to maintain the user experience, design the form however you wish, add and record custom fields, and convey a level of seriousness that many Nonprofits lack.</p>
<p>
	Aside from the brand image and <a href="http://www.amazon.com/Common-Approach-Usability-Circle-Com-Library/dp/0789723107" target="_blank">user experience</a> reasons to keep the user on your site, Stripe makes the life of the developer building your site stress-free. With a <a href="https://stripe.com/docs/api" target="_blank">powerful API</a>, <a href="https://stripe.com/docs" target="_blank">thorough documentation</a>, plenty of <a href="https://stripe.com/docs/examples" target="_blank">example applications</a>, and <a href="https://github.com/search?q=Stripe.com&amp;repo=&amp;langOverride=&amp;start_value=1&amp;type=Repositories&amp;language=" target="_blank">many more on github</a>, they&rsquo;ll have ample access and references for integrating Stripe into their site or app. And since Stripe is actually processing the donation, you do not have to worry about PCI Compliance.</p>
<p>
	<a href="http://stripe.com" target="_blank">Stripe</a> also offers more advanced features that allow accessing customer details (non-billing) so you can set up recurring billing, retrieve transaction details, update and save customer details, and more.</p>
<p>
	If you are interested in using Stripe and want to test drive the Stripe Dashboard before making any promises, <a href="https://manage.stripe.com/anonymous" target="_blank">click here</a>. If you are impressed and may want to use the service in the future, click on the Save Account link at the top of the screen. After entering an email and password login you&rsquo;ll be moved to another screen to enter your bank account information. Once you hit submit, you can start accepting donations.</p>
<h2>
	What About That Freebie</h2>
<p>
	I put together a simple script that uses Stripe to process a donation, forward the user to a &ldquo;Thank You&rdquo; page, and send a receipt to both the administrator and the donor.&nbsp;</p>
<p style="text-align:center;">
	<b><a href="https://stripedonationtest.phpfogapp.com" target="_blank">View the Demo</a>&nbsp; | &nbsp;</b><strong><a href="https://github.com/tommymarshall/Stripe-Donation-Form/zipball/master" target="_blank">Download Script</a></strong></p>
<p>
	To get started just open up the <a href="https://github.com/tommymarshall/Stripe-Donation-Form/blob/master/README.md" target="_blank">Readme</a> and follow the instructions. If you are a developer, feel free to <a href="https://github.com/tommymarshall/Stripe-Donation-Form">check out the source on Github</a>.</p>
<p>
	For testing purposes Stripe does not require an SSL Certificate. However, once you go Live, you&rsquo;ll need the certificate.</p>
<p>
	<a href="https://stripe.com/gallery" target="_blank">Thousands of notable companies and nonprofits</a> are already using Stripe to save money and impress their users. Why not do the same?</p>
<p style="font-size:12px;">
	<sup>1</sup> With the help of an SSL Certificate. SSL Certificates encrypt sensitive data, and is required to work with Stripe. Ask your web administrator or host to install an SSL Certificate for you. Prices should range between $100 and $350 annually.</p>
<p style="font-size:12px;">
	<sup>2</sup> While both Stripe and Paypal offer 2.9% + $0.30 per transaction, Paypal charges 3.5% for AMEX. And while Paypal does offer a discount rates for registering your 501(c)(3) with them, you lose all the added benefits of using Stripe and, even worse, possibly donors who would have contributed had you not been using only Paypal.&nbsp;</p>

				
			]]></description>
			<dc:subject>Advance</dc:subject>
			<dc:date>2012-05-17T20:24:46+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>Making, Using, &amp;amp; Bulletproofing Icon Fonts</title>
			
				<link>http://viget.com/inspire/icon-fonts</link>
				<guid>http://viget.com/inspire/icon-fonts#When:13:33:49Z</guid>
			
			<dc:creator>Doug Avery</dc:creator>
			<description><![CDATA[ 
		    
					<p>
	Icons have always been a web design staple, but mobile interfaces have changed how we think about them - icons are no longer decorations; they&#39;re powerful cues that tie interfaces together.</p>
<p>
	Unfortunately, the demands placed on icons can make them difficult to use on large projects. The variations required (size, color, pixel density, texture) can bloat your icon pool to an unmanageable size pretty quickly, requiring extra bandwidth and front-end development time.</p>
<p>
	The best fix at the moment? <a href="http://css-tricks.com/using-fonts-for-icons/">Chris Coyier&#39;s Icon Font</a> method. If you haven&#39;t seen this going around, it suggests using the @font-face at-rule to serve vector icons to your users. Advantages:</p>
<ul>
	<li>
		Widely supported (@font-face works on a huge number of platforms and browsers)</li>
	<li>
		Scaleable</li>
	<li>
		Colorable</li>
	<li>
		Animateable(!)</li>
	<li>
		Works with effects like text-shadow and background-clip: text</li>
	<li>
		Easy to serve in retina and standard pixel density</li>
	<li>
		Competitive filesize, especially when compared to icon sets with lots of variations</li>
</ul>

					<h2>
	<a href="http://css-tricks.com/examples/IconFont/"><img alt="" src="http://viget.com/uploads/image/blog/csstricks-screenshot.png" style="width: 570px; height: 445px; " /></a></h2>
<p>
	<small><em>Icon playground from CSS-tricks.com</em></small></p>
<hr />
<h2>
	Acquiring a font</h2>
<p>
	Many icon designers are already selling icon fonts as part of their packages. Some great examples:</p>
<ul>
	<li>
		<a href="http://pictos.cc/">Pictos</a></li>
	<li>
		<a href="http://fico.lensco.be/">Fico</a></li>
	<li>
		<a href="http://keyamoon.com/icomoon/">Icomoon</a></li>
	<li>
		<a href="https://www.shifticons.com/">ShiftIcons</a></li>
	<li>
		<a href="http://www.ikhanfont.com/">iKhahnfont</a></li>
</ul>
<p>
	There are also excellent free sets out there:</p>
<ul>
	<li>
		<a href="http://fortawesome.github.com/Font-Awesome/">Font&nbsp;Awesome</a></li>
	<li>
		<a href="http://medialoot.com/item/signify-free-icon-font/">Signify</a></li>
	<li>
		<a href="http://somerandomdude.com/work/iconic/">Iconic</a></li>
</ul>
<p>
	Rolling your own icon fonts is another option. You can use font creation software like FontLab or Glyphs, or for a free alternative, try the <a href="http://www.webdesignerdepot.com/2012/01/how-to-make-your-own-icon-webfont/">Inkscape method</a>&nbsp;or <a href="http://github.com/averyvery/hieroglyph">Hieroglyph</a>, a script I wrote for generating SVG fonts from a single folder of icons.</p>
<p>
	Before you generate your own font, make sure the icon license doesn&#39;t disallow embedding. Serving your icons as a font makes vector paths available to web-savvy users, so be careful that you&#39;re not accidentally redistributing someone else&#39;s work.</p>
<hr />
<h2>
	Implementing</h2>
<p>
	There are a few competing methods for actually placing your icons on the page once you have a font:</p>
<ul>
	<li>
		<a href="http://css-tricks.com/examples/IconFont/">Chris&#39;s original proposal</a> uses pseudo-elements.</li>
	<li>
		<a href="http://24ways.org/2011/displaying-icons-with-fonts-and-data-attributes">Jon Hicks</a> suggests combining pseudo-elements with a data-icon property.</li>
	<li>
		You can also just place your icons on-page as an element like a &lt;span&gt;. At the moment, this is the only way you&#39;ll be able to apply animations to them in Webkit browsers.</li>
	<li>
		BONUS: <a href="http://viget.com/inspire/icon-fonts#dsq-comment-body-535970379">Check out Patrick Haney&#39;s "best of both worlds" idea</a>, which uses Jon Hicks&#39; approach on spans to create animateable icons.</li>
</ul>
<p>
	With all of these methods, you need to worry about accessibility: sprinkling random letters through your document can be confusing to users with screenreaders.</p>
<ul>
	<li>
		If you&#39;re using pseudo-elements, you can use glyphs that are <a href="http://www.fileformat.info/info/unicode/block/supplementary_private_use_area_a/index.htm">mapped to supplementary private use areas</a>, which won&#39;t be read to screen-readers &mdash;&nbsp;the downside being that these characters are harder to remember and type, and you have to find a font that uses them.</li>
	<li>
		According to Hicks, the "data-icon" method will read your icon names to screenreaders, but the convenience of the method might outweigh the accessibility issues.</li>
	<li>
		Finally, if you include icons onpage as spans, you&#39;ll need to go out of your way to treat them for screenreaders. One suggestion:</li>
</ul>
<pre>
&lt;span class="icon" aria-role="presentation"&gt;&#10;  &lt;b&gt;Icon:&lt;/b&gt; F&#10;&lt;/span&gt;</pre>
<p>
	This method hides the icon from most screenreaders, but leaves a cue as to the element&#39;s purpose when a page is viewed without CSS.</p>
<hr />
<h2>
	Hieroglyph</h2>
<p>
	<a href="https://github.com/averyvery/hieroglyph/">A quick plug for the Hieroglyph ruby gem:</a></p>
<p>
	<strong>Easy to install</strong> &mdash;&nbsp;on many systems, &#39;gem install hieroglyph&#39; is enough</p>
<p>
	<strong>Repeatable</strong> &mdash;&nbsp;&nbsp;unlike the Inkscape method, Hieroglyph works from a dir of icons and doesn&#39;t require tedious pasting into additional files.</p>
<p>
	<strong>Flexible</strong> &mdash;&nbsp;Supports private use unicode chars and special characters</p>
<p>
	<strong>Helpful </strong>&mdash; Generates a character sheet PNG</p>
<p>
	If you want to test it out on a system with ruby installed, just run:</p>
<pre>
gem install hieroglyph &amp;&amp; hieroglyph -e &amp;&amp; hieroglyph</pre>
<p>
	This sequence installs Hieroglyph, creates a folder of example glyphs (including two &#39;bad&#39; glyphs for comparison), and finally generates an SVG font from the folder.</p>
<p>
	Hieroglyph can&#39;t generate a full set of fonts on its own - for that, you&#39;ll need to upload your font to a service like <a href="http://www.fontsquirrel.com/fontface/generator">FontSquirrel</a> or <a href="http://www.freefontconverter.com/">FreeFontConverter</a>. If you try out Hieroglyph and run into any problems, <a href="https://github.com/averyvery/hieroglyph/issues">make sure to let me know on GitHub.</a></p>
<hr />
<h2>
	Wrap Up</h2>
<p>
	Have you seen any great icon font resources I should include in this post? Have any new info about this technique? Let me know <a href="http://twitter.com/averydistracted">over Twitter</a> or in the comments.</p>

				
			]]></description>
			<dc:subject>Inspire</dc:subject>
			<dc:date>2012-05-17T13:33:49+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>Building a Nested Responsive Grid with Sass &amp;amp; Compass</title>
			
				<link>http://viget.com/inspire/building-a-nested-responsive-grid-with-sass-compass</link>
				<guid>http://viget.com/inspire/building-a-nested-responsive-grid-with-sass-compass#When:13:16:24Z</guid>
			
			<dc:creator>Trevor Davis</dc:creator>
			<description><![CDATA[ 
		    
					<p>
	Whether you are a hater of the technique or not, <a href="http://www.abookapart.com/products/responsive-web-design">Responsive Design</a> is one of the most important things happening on the web right now. I am finally getting a chance to work on a project where we are taking a responsive approach to the site, and it&rsquo;s been great, but I have definitely come across a few gotchas here and there.</p>

					<p>
	The one issue that definitely took some thinking to figure out was how to deal with nested columns. What the heck do I mean by that? The following image should demonstrate what exactly I mean:</p>
<p>
	<img alt="Screenshot of design using a nested responsive grid" src="http://viget.com/uploads/image/blog/responsive-grid.png" /></p>
<p>
	For the site I am building, we are using a 12 column grid. To build the layout pictured above, we are looking at two 6-column-width columns, and the second column would have 2 rows with two 3-column-width columns in it. Kinda confusing in words, but here it is in markup:</p>
<pre>
&lt;div class="row"&gt;&#10;&#9;&lt;div class="span6"&gt;&#10;&#9;&#9;Left Column&#10;&#9;&lt;/div&gt;&#10;&#9;&#10;&#9;&lt;div class="span6"&gt;&#10;&#9;&#9;Right Column&#10;&#9;&#9;&#10;&#9;&#9;&lt;ul class="row"&gt;&#10;&#9;&#9;&#9;&lt;li class="span3"&gt;Sub Column&lt;/li&gt;&#10;&#9;&#9;&#9;&lt;li class="span3"&gt;Sub Column&lt;/li&gt;&#10;&#9;&#9;&lt;/ul&gt;&#10;&#9;&#9;&#10;&#9;&#9;&lt;ul class="row"&gt;&#10;&#9;&#9;&#9;&lt;li class="span3"&gt;Sub Column&lt;/li&gt;&#10;&#9;&#9;&#9;&lt;li class="span3"&gt;Sub Column&lt;/li&gt;&#10;&#9;&#9;&lt;/ul&gt;&#10;&#9;&lt;/div&gt;&#10;&lt;/div&gt;</pre>
<p>
	If we take fluid grids out of the picture, that would all work fine. But, since we are using percentages, that would look like crap, and here&rsquo;s why.</p>
<pre>
.span6 {&#10;&#9;width: 49%;&#10;}&#10;&#10;.span3 {&#10;&#9;width: 23.5%;&#10;}</pre>
<p>
	Here are the pixel equivalents if our design were 1000px wide:</p>
<p>
	span6: 1000 * 0.49 = <strong>490</strong><br />
	span3: 1000 * 0.235 = <strong>235</strong><br />
	span3 inside of a span6: 490 * 0.235 = <strong>115.15</strong></p>
<p>
	So clearly that approach won&rsquo;t work.</p>
<h2>
	How does Twitter Bootstrap handle it?</h2>
<blockquote>
	<p>
		Nesting with fluid grids is a bit different: the number of nested columns doesn&#39;t need to match the parent. Instead, your columns are reset at each level because each row takes up 100% of the parent column.</p>
</blockquote>
<p>
	Ok, so they are recommending that the markup should look like this:</p>
<pre>
&lt;div class="row"&gt;&#10;&#9;&lt;div class="span6"&gt;&#10;&#9;&#9;Left Column&#10;&#9;&lt;/div&gt;&#10;&#9;&#10;&#9;&lt;div class="span6"&gt;&#10;&#9;&#9;Right Column&#10;&#9;&#9;&#10;&#9;&#9;&lt;ul class="row"&gt;&#10;&#9;&#9;&#9;&lt;li class="span6"&gt;Sub Column&lt;/li&gt;&#10;&#9;&#9;&#9;&lt;li class="span6"&gt;Sub Column&lt;/li&gt;&#10;&#9;&#9;&lt;/ul&gt;&#10;&#9;&#9;&#10;&#9;&#9;&lt;ul class="row"&gt;&#10;&#9;&#9;&#9;&lt;li class="span6"&gt;Sub Column&lt;/li&gt;&#10;&#9;&#9;&#9;&lt;li class="span6"&gt;Sub Column&lt;/li&gt;&#10;&#9;&#9;&lt;/ul&gt;&#10;&#9;&lt;/div&gt;&#10;&lt;/div&gt;</pre>
<p>
	Weird, but ok. Let&rsquo;s look at how our columns calculate out in pixels.</p>
<p>
	span6: 1000 * 0.49 = <strong>490</strong><br />
	span3: 1000 * 0.235 = <strong>235</strong><br />
	span6 inside of a span6: 490 * 0.49 = <strong>240.1</strong></p>
<p>
	Hmmmm, close, but that value is a bit different from what the design is calling for. Here&rsquo;s where we could argue about sites not having to be pixel perfect to the design and blah blah blah. But, this is potentially a larger problem because we need to have images big enough to fill those sub-columns.</p>
<h2>
	My Solution</h2>
<p>
	My solution involves &ldquo;resetting&rdquo; the values of each sub-column&rsquo;s width inside of every column. Sure, that sounds like a lot of work, but <a href="http://sass-lang.com/">Sass</a>&nbsp;and <a href="http://compass-style.org/">Compass</a> can help with that.</p>
<h3>
	Variables and Mixins</h3>
<pre>
$cols: 12;&#10;$gutter: 2%;&#10;&#10;$one_col: (100% - ($gutter * ($cols - 1))) / $cols;&#10;&#10;@mixin cols($num) {&#10;&#9;width: ($one_col * $num) + ($gutter * ($num - 1));&#10;}&#10;&#10;@mixin sub_cols($num_child, $num_parent) {&#10;&#9;$parent_size: ($one_col * $num_parent) + ($gutter * ($num_parent - 1));&#10;&#9;$child_size: ($one_col * $num_child) + ($gutter * ($num_child - 1));&#10;&#9;margin-left: ($gutter / $parent_size) * 100%;&#10;&#9;width: ($child_size / $parent_size) * 100%;&#10;}</pre>
<p>
	<strong>$cols</strong> and <strong>$gutter</strong> are variables that you would want to adjust to match whatever grid your designer is using. The rest are things you shouldn&rsquo;t have to change.</p>
<h3>
	Generate the grid</h3>
<p>
	Next, we need to utilize these mixins and generate our grid.</p>
<pre>
.row {&#10;&#9;#{enumerate(&#39;.span&#39;, 1, $cols, &#39;&#39;)} {&#10;&#9;&#9;float: left;&#10;&#9;&#9;margin-left: $gutter;&#10;&#9;}&#10;&#10;&#9;@for $i from 1 through $cols {&#10;&#9;&#9;.span#{$i} {&#10;&#9;&#9;&#9;@include cols($i);&#10;&#10;&#9;&#9;&#9;@for $j from 1 through ($i - 1) {&#10;&#9;&#9;&#9;&#9;.span#{$j} {&#10;&#9;&#9;&#9;&#9;&#9;@include sub_cols($j, $i);&#10;&#9;&#9;&#9;&#9;}&#10;&#9;&#9;&#9;}&#10;&#9;&#9;}&#10;&#9;}&#10;&#10;&#9;&gt; :first-child,&#10;&#9;.row &gt; :first-child {&#10;&#9;&#9;margin-left: 0;&#10;&#9;}&#10;}</pre>
<p>
	A sample of our output would look something like this:</p>
<pre>
.row .span6 {&#10;  width: 49%;&#10;}&#10;&#10;.row .span6 .span1 {&#10;  margin-left: 4.0816326531%;&#10;  width: 13.2653061224%;&#10;}&#10;&#10;.row .span6 .span2 {&#10;  margin-left: 4.0816326531%;&#10;  width: 30.612244898%;&#10;}&#10;&#10;.row .span6 .span3 {&#10;  margin-left: 4.0816326531%;&#10;  width: 47.9591836735%;&#10;}&#10;&#10;.row .span6 .span4 {&#10;  margin-left: 4.0816326531%;&#10;  width: 65.306122449%;&#10;}&#10;&#10;.row .span6 .span5 {&#10;  margin-left: 4.0816326531%;&#10;  width: 82.6530612245%;&#10;}</pre>
<p>
	So, if we take our new width for a 3 sub-column inside of a 6, 47.9591836735%, and do some math, this is what we get:</p>
<p>
	span6: 1000 * 0.49 = <strong>490</strong><br />
	span3: 1000 * 0.235 = <strong>235</strong><br />
	span3 inside of a span6: 490 * 0.479591836735 = <strong>235</strong></p>
<p>
	<em><strong>Hot.</strong></em></p>
<p>
	I&rsquo;ve got a <a href="http://davist11.github.com/nested-responsive-grid/">repo up on github</a> with all this stuff in it, <a href="http://davist11.github.com/nested-responsive-grid/bootstrap.html">along</a> with <a href="http://davist11.github.com/nested-responsive-grid/demo.html">some</a> <a href="http://davist11.github.com/nested-responsive-grid/all.html">demos</a>. I also put together a <a href="http://jsfiddle.net/trevor_davis/jURUG/">fiddle</a> if you just want to mess around with it.</p>
<h2>
	One More Thing</h2>
<p>
	I had to increase the number of decimal places to get more precise percentages. You can do that by throwing this into your config file:</p>
<pre>
Sass::Script::Number.precision = 10</pre>
<h2>
	A Caveat</h2>
<p>
	This only solves the problem two levels deep. If you tried to go another level down, you would encounter the same problem, but two levels was deep enough for me.</p>
<p>
	<strong>So how have you all solved this problem before?</strong></p>

				
			]]></description>
			<dc:subject>Inspire</dc:subject>
			<dc:date>2012-05-15T13:16:24+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>Boulder Startup Week 2012: May 16th &#45; 20th</title>
			
				<link>http://viget.com/flourish/boulder-startup-week-2012-may-16th-20th</link>
				<guid>http://viget.com/flourish/boulder-startup-week-2012-may-16th-20th#When:20:27:40Z</guid>
			
			<dc:creator>Jason Sperling</dc:creator>
			<description><![CDATA[ 
		    
					<p>
	<img alt="Boulder Startup Week May 16-20, 2012" src="http://viget.com/uploads/image/blog/BSW2012-logo3.png" style="width: 150px; height: 146px; " /></p>
<p>
	Next week our local businesses, restaurants, bars, coffee shops, streets and foothills will be packed full of folks celebrating the awesome startup culture of Boulder. It&rsquo;s time again for the annual 5-day event: <a href="http://boulderstartupweek.com/">Boulder Startup Week</a>!</p>
<p>
	We at Viget are psyched to show our support of Boulder Startup Week by hosting an event featuring speakers and insight from the local community. Our event is called Startups + Great UX = Great Success and it&rsquo;s a topic close to our heart. Besides an enticing alphasymbolic title, we hope the lineup of speakers (see below) will be able to drop some wisdom on ya. Here are the details:</p>

					<h2>
	<a href="http://plancast.com/p/asy8/startups-great-ux-great-success">Startups + Great UX = Great Success</a></h2>
<p>
	<a href="http://www.facebook.com/BoulderAbsintheHouse">Absinthe House</a>&nbsp;- Thursday, May 17, 2012, 2-3:30pm</p>
<p>
	It&#39;s no secret that creating a great experience for users is critical to a successful startup. But doing that in a startup environment can be challenging. Limited resources, small teams, and the pressure to get something, anything, out the door can sink even the best intentions. We&#39;ll hear from people working inside local startups and at agencies that work with startups on how they try to overcome those challenges to creating a great product. Speakers will briefly share their experiences and work, then we&rsquo;ll have a moderated Q&amp;A. First drink complimentary. Light snacks provided.</p>
<h3>
	Moderator</h3>
<p>
	Andy Montgomery, User Experience Designer<br />
	<a href="http://viget.com/">Viget</a></p>
<h3>
	Speakers</h3>
<p>
	Jackson Fox, Senior User Experience Designer<br />
	<a href="http://viget.com/">Viget</a><br />
	<br />
	Dave Pitman, Designer<br />
	<a href="http://hci4.me/">Lab Cogs Co.</a><br />
	<br />
	Andrew Cohen, Lead Designer<br />
	<a href="http://nextbigsound.com/">Next Big Sound</a><br />
	<br />
	Kevin Menzie, Founder &amp; CEO<br />
	<a href="http://www.sliceoflime.com/">Slice of Lime</a></p>
<h3>
	Register</h3>
<p>
	If you&rsquo;d like to register,&nbsp;<a href="http://plancast.com/p/asy8/startups-great-ux-great-success">click here</a>.&nbsp;</p>
<p>
	&nbsp;</p>

				
			]]></description>
			<dc:subject>Flourish</dc:subject>
			<dc:date>2012-05-09T20:27:40+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>Outlaws &amp;amp; Bravery: A Gravity Free 2012 Recap</title>
			
				<link>http://viget.com/inspire/gravity-free-2012-recap</link>
				<guid>http://viget.com/inspire/gravity-free-2012-recap#When:14:06:15Z</guid>
			
			<dc:creator>Tom Osborne</dc:creator>
			<description><![CDATA[ 
		    
					<p>
	For some time now, <a href="http://viget.com/about#team">we</a>&#39;ve been kicking around the idea of attending conferences that talk more about big ideas and less about the nuts and bolts of designing for the web. <a href="http://www.exhibitoronline.com/gravityfree/">Gravity Free</a>, a two-day multidisciplinary design conference in Chicago, provided just that for myself and my trusty companion, <a href="http://viget.com/about/team/msteinruck">Mark</a>. The theme this year was <em>"Outlaws and Icons"</em> which I originally read as "Outlaws OR Icons." What I didn&#39;t realize beforehand was how important the "AND" part of the theme would become. While I was attracted to the conference by the 20+ "icons" of design that were listed as speakers, it became clear very quickly that the conference "icons" were more comfortable as "outlaws." Therefore, the first takeaway for me became the very notion that these design icons were outlaws first and foremost and that they might not have ever been icons if not for their outlaw nature.&nbsp;</p>
<p>
	<img alt="Gravity Free badge" src="http://viget.com/uploads/image/blog/gf-badge.jpg" style="width: 600px; height: 803px; " /></p>
<p>
	<em>Conference schedule</em></p>

					<p>
	Some themes from <em>Gravity Free 2012: Outlaws and Icons</em>:</p>
<h3>
	Sustainable vs. Green vs. Nature</h3>
<p>
	There was general consensus that just because something is sustainable doesn&#39;t necessarily mean it&#39;s green and vice versa. <a href="http://smithgill.com/">Gordon Gill</a> shared the work of his visionary architecture firm that explained how thinking about how wind travels through and around buildings is far more important to sustainability than finding ways to support trees and greenery in the structures. Put simply, finding ways for wind to penetrate structures easily means lighter and fewer materials are needed to build taller buildings. Contrasting slightly, <a href="http://raadstudio.com/">James Ramsey</a> cited the importance of greenery to human comfort, health, and happiness as he described how he and his partners are working to build a subterranean park in an abandoned underground railway terminal in Lower Manhattan. <a href="http://www.margieruddick.com/">Margie Ruddick</a> explained the importance of natural "mess" which is essentially designing around nature so that nature can thrive the way it is supposed to &ndash; naturally. In essence, she described how nature allows for both order and chaos and how we, as humans, walk a fine line between the two.</p>
<p>
	<img alt="Chip Kidd" src="http://viget.com/uploads/image/blog/gf-kidd.jpg" style="width: 600px; height: 448px; " /></p>
<p>
	<em>Chip Kidd speaks about his graphic novel.</em></p>
<h3>
	Pencil, Pen &amp; Paper</h3>
<p>
	Big ideas often come from the simplest of tools. Opening speaker, <a href="http://goodisdead.com/">Chip Kidd</a>, right off the bat referenced the pencil as an important tool for creative thinking. Conference organizer, <a href="http://www.exhibitoronline.com/">Lee Knight</a>, described <a href="http://www.mariscal.com/en/">Javier Mariscal</a> as a pen and paper designer before introducing him to the audience through video conferencing. While Mariscal didn&#39;t specifically reference pen and paper, it was clear very quickly how important the two tools are to the sketch-like quality of the design he&#39;s become known for. In the epic closing remarks from <a href="http://www.georgelois.com/">George Lois</a>, he was quick to tell us not to expect a clever idea to come out of a computer. He went further to say that collaboration was far less important than individual creative thinking. He calls the resistance to collaboration "rejecting group grope."</p>
<p>
	<img alt="Panel discussion" src="http://viget.com/uploads/image/blog/gf-javier.jpg" style="width: 600px; height: 448px; " /></p>
<p>
	<em>Panel discussion led by Jonathan Alger featuring Brian Collins, Margie Ruddick and Javier Mariscal.</em></p>
<h3>
	Persistence&nbsp;</h3>
<p>
	Cartoonist&nbsp;<a href="http://en.wikipedia.org/wiki/Ivan_Brunetti">Ivan Brunetti</a>&nbsp;stated&nbsp;"Remain unreasonable until the world bends to your will." Reflecting back on all of the speakers, it was clear that none of them gave in easily on their ideas. Good ideas require confidence first, then persistence to ever see the light of day. Lois backed this up by saying, "There is no such thing as a cautious creative" and that "Designers don&#39;t need to learn how to design. They need to learn how to sell their ideas."</p>
<p>
	<img alt="Ivan Brunetti" src="http://viget.com/uploads/image/blog/gf-ivan.jpg" style="width: 600px; height: 448px; " /></p>
<p>
	<em>Ivan Brunetti speaks about his persona and approach to comics.&nbsp;</em></p>
<h3>
	Bravery, Courage &amp; Risk</h3>
<p>
	Perhaps the biggest takeaway for me was the importance of courage as it relates to design on a day-to-day basis. This includes everything from the courage to try new things to the courage to fight for the best ideas and to never compromise what you feel strongly about. <a href="http://en.wikipedia.org/wiki/Neville_Brody">Neville Brody</a> reminded us that&nbsp;"Possibility grows out of risk." If we don&#39;t take risks, we limit what is possible. <a href="http://www.jamesvictore.com/">James Victore</a> shared a story about how the Museum of Modern Art wrote a letter to his mom in reference to his upcoming exhibition just because he asked them to. The lesson being that if you want something, just ask for it. Finally, George Lois built a career on courage. Every sentence out of his mouth in his closing remarks was either directly or indirectly a reference to bravery, courage, or fearlessness. An excerpt from his book (a gift to all attendees) sums it up best:</p>
<blockquote>
	<p>
		The courage to create only superb work, through thick and thin, and to fight to protect it at all cost, is not generated in the head &hellip; it comes from your very heart and soul.&nbsp;<br />
		--George Lois, <a href="http://www.georgelois.com/pages/Books/DGA.html">Damn Good Advice (for people with talent!)</a></p>
</blockquote>
<p>
	<img alt="George Lois" src="http://viget.com/uploads/image/blog/gf-lois.jpg" style="width: 600px; height: 448px; " /></p>
<p>
	<em>Keynote George Lois spouts good advice.</em></p>
<p>
	The beauty in Gravity Free was in the broad brush strokes. While there are plenty of conferences out there with more narrow nib focus, it&#39;s good to use different size brushes from time to time. I&#39;m glad I went.&nbsp;</p>
<p>
	Be brave. Make design that matters.&nbsp;</p>

				
			]]></description>
			<dc:subject>Inspire</dc:subject>
			<dc:date>2012-05-08T14:06:15+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>Gravity Free: A Moment with George Lois</title>
			
				<link>http://viget.com/inspire/gravity-free-a-moment-with-george-lois</link>
				<guid>http://viget.com/inspire/gravity-free-a-moment-with-george-lois#When:13:47:26Z</guid>
			
			<dc:creator>Mark Steinruck</dc:creator>
			<description><![CDATA[ 
		    
					<p>
	The 9th floor of the Spertus Institute was filled with circular tables draped in white tablecloths. In the middle of each table sat a sign with names like <a href="http://www.jamesvictore.com/">James Victore</a>, <a href="http://www.42entertainment.com/alex.html">Alex Lieu</a>, and <a href="http://www.briancollins1.com/">Brian Collins</a>; each famous in their own fields of design. Groups of people poured out of the elevators and crowded around the tables to talk with their favorite designers. This was the scene last week in Chicago at the multidisciplinary <a href="http://www.exhibitoronline.com/gravityfree/">Gravity Free</a> design conference.</p>
<p>
	As I debated which table to join, a crowd quickly gathered in the back corner. Weaving through the maze of people and tables, I heard laughter from the circle of people that surrounded the table. Clearly this was the place to be, so I took my place in the standing room only crowd. On one side of the table sat an older man. His circular stainless steel framed glasses and sharp black suit sharply contrasted his otherwise grandfatherly look. The crowd hung on every word of the stories that he told in a thick Bronx accent. This table certainly was special, because the sign on the table read <a href="http://georgelois.com/">George Lois</a>.</p>

					<p>
	<img alt="George Lois at Gravity Free conference" src="http://viget.com/uploads/image/blog/george-lewis2.jpg" style="margin-left: 5px; margin-right: 5px; margin-top: 5px; margin-bottom: 5px; float: right; width: 300px; height: 300px; " />The theme of the 2012 Gravity Free conference was Outlaws &amp; Icons. Many of the presenters fit into one, or both, of those categories. But George Lois has secured spots near the top of both lists. His lifetime of work challenged culture and changed minds during a pivotal time in American history. In the 1960s, Lois designed some of the most controversial covers of <em>Esquire</em> magazine. Under the editorial leadership of Howard Hayes, he is credited in part for increasing the magazine subscriber base from 400,000 to over 1,000,000. Everyone wanted to get close enough to hear him speak, and even CBS showed up with a camera crew.</p>
<p>
	Leaning forward, Lois peered over the top of his thick glasses and recounted the events that led to the creation of the &ldquo;<em>I want my MTV!</em>&rdquo; slogan in 1982. &ldquo;I told them that we&rsquo;d get Mick Jagger to do the commercial. They said it would never work.&rdquo; At a time when the network was struggling to get cable networks to include MTV in the lineup, it was Lois who rebranded the network causing it to soar in popularity. &ldquo;I called Mick and talked for three minutes. I finally stopped and said, &lsquo;Mick, you there?&rsquo;&rdquo; &ldquo;Yeah, yeah...keep going,&rdquo; Jagger replied. Lois slumped back in his chair with a look of amazement as he remembered Jagger saying, &ldquo;I&rsquo;ll be in New York next week. Where do you want me?&rdquo; Lois continued, &ldquo;He came to the studio an hour late, we shot the commercial with Mick picking up the phone saying, &lsquo;<em>I want my MTV!</em>&rsquo;, and that&rsquo;s how it all started.&rdquo; He finished with a broad smile that only comes from telling a story that will never get old.</p>
<p>
	The hour disappeared with Lois telling one story after another. Every so often he would stop mid-thought and offer a piece of sage wisdom from working at his craft for so many years.</p>
<ul>
	<li>
		&ldquo;Create big ideas, not designs.&rdquo;</li>
	<li>
		&ldquo;There&#39;s no such thing as a cautious creative.&rdquo;</li>
	<li>
		&ldquo;The word comes first, then the big idea.&rdquo;</li>
	<li>
		&ldquo;Never work for bad people. If you do, you&#39;re mediocre.&rdquo;</li>
	<li>
		&ldquo;Designers don&#39;t need to learn how to design. They need to learn how to sell their ideas.&rdquo;</li>
	<li>
		&ldquo;Present your ideas without saying &lsquo;yeah&rsquo;, &lsquo;like&rsquo;, and &lsquo;um&rsquo; every other the word.&rdquo;</li>
	<li>
		&ldquo;You can&#39;t let anybody make you do bad work.&rdquo;</li>
</ul>
<p>
	In the end, this polarizing figure in the world of advertising sold me. Lois sold me on his work, his big ideas, and himself. I left Gravity Free feeling energized about my own work, and excited to learn more about Lois. I realized that I&rsquo;m guilty of focusing solely on studying web design because that&rsquo;s what I do day-to-day. The principles of good design are ubiquitous and translate to every design discipline including the web. Big ideas are still out there. The opportunity to be unique isn&#39;t dead. Go do good work for good people and avoid mediocrity at every cost.&nbsp;</p>
<h4>
	Resources about George Lois</h4>
<ul>
	<li>
		<a href="http://georgelois.com/">GeorgeLois.com</a></li>
	<li>
		<a href="http://en.wikipedia.org/wiki/George_Lois">Wikipedia</a></li>
	<li>
		<a href="http://www.amazon.com/Damn-Good-Advice-People-Talent/dp/0714863483/ref=la_B001HMOCAO_1_1?ie=UTF8&amp;qid=1336403189&amp;sr=1-1">Book:&nbsp;<em>Damn Good Advice</em></a></li>
	<li>
		<a href="http://bigthink.com/search?utf8=%E2%9C%93&amp;q=george+lois">Big Think</a></li>
</ul>

				
			]]></description>
			<dc:subject>Inspire</dc:subject>
			<dc:date>2012-05-07T13:47:26+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>UX Scavenger Hunt—Pinterest Style</title>
			
				<link>http://viget.com/advance/ux-scavenger-huntpinterest-style</link>
				<guid>http://viget.com/advance/ux-scavenger-huntpinterest-style#When:13:45:08Z</guid>
			
			<dc:creator>Jason Toth</dc:creator>
			<description><![CDATA[ 
		    
					<p>
	One of the most enjoyable aspects of user experience design is the opportunity to observe human behavior and interactions directly within the user&rsquo;s environment. I like to picture user experience designers on reconnaissance missions, quietly gathering user behavior intel while covertly recording the interactive patterns and dialogs we observe. Melodramatic? Sure. Romantic? Possibly. Intriguing? Most definitely.</p>
<p>
	Working on these skills is like brain pilates. Observational exercises are great avenues to recharge our professional spirit, but honing our skills in observation requires training. It demands we slow down and reflect&mdash;it requires patience, passivity, and a willingness to table our personal bias. This type of empathic design will help you produce more innovative solutions and create a strong communal association with the behavior of users. It&#39;s a gentle reminder that our role is one of advocacy, trust, and facilitation.</p>
<p>
	Considering the need for this kind of professional development, our UX team has actively created &ldquo;training&rdquo; exercises that specifically focus on refining our observational skills. One recent opportunity we created took place at the <a href="http://www.vmfa.state.va.us/default.aspx">Virginia Museum of Fine Art</a> in conjunction with a <a href="http://viget.com/flourish/celebrating-vigets-12th-birthday">team offsite</a> event in Richmond, Virginia.</p>
<p>
	<img alt="VMFA" src="http://viget.com/uploads/image/blog/MuseumInterior.png" style="width: 580px; height: 386px; " /></p>
<p>
	<em>Image <a href="http://www.vmfa.state.va.us/templates/Detail.aspx?id=19327353339">courtesy of VMFA</a>. Photography by <a href="http://www.bdphotography.com/">Bilyana Dimitrova</a>.</em></p>
<p>
	Our goal was simple&mdash;create an engaging team exercise to challenge our ability to observe and record behaviors, usability patterns, or interactions. The museum provided a great setting for this type of exercise since it contains visitors of all ages, interactive exhibits, wayfinding/traffic flows, and wasn&rsquo;t too large or too small.</p>
<p>
	We determined that a digital scavenger hunt would provide a recognizable game structure for teams to understand. Using our smartphones as a recording device, teams were given an hour to photograph examples of interactive-related behaviors. We created 11 categories modeled after <a href="http://usabilityhunt.tumblr.com/">a hunt</a> created by the Computer-Human Interaction Forum of Oregon (CHIFOO). Each category included instructions to capture both a good and bad example of each category. These included tasks such as:</p>
<ul>
	<li>
		Capture an arrangement of controls that make it easy to perform a task</li>
	<li>
		Capture physical feedback that interferes with a user&rsquo;s ability to use a system</li>
	<li>
		Capture an interactive sequence with an intuitive user flow</li>
	<li>
		Capture an example of an agent that negatively affects the user&rsquo;s behavior</li>
	<li>
		Capture an example where color is successfully used to convey meaning</li>
	<li>
		Capture an experience that users enjoy.</li>
</ul>
<p>
	We also wanted to have a shared online repository where every team could record the observations they captured within each category. Our smartphones were an efficient and unobtrusive way to record our observations, and we discovered that the Pinterest app&rsquo;s interface suited our requirements better than many applications specifically built for scavenger hunts. Pinterest allowed us to create shared pinboards for each usability category and pin our images to the appropriate board immediately after they were captured. <a href="http://pinterest.com/tothy/">Our boards</a> could then be used for any future exercises, morphing into a long-term collection of good and bad usability examples.</p>
<p>
	One final aspect that was particularly interesting to the team was how observations or notations around spatial properties in the physical world reflect similar usability concerns in online environments. Could the observation of a flow or sequence in an environment such as a museum influence any future interactive patterns we develop for our clients? I&rsquo;ve listed a few of our observations below.</p>
<p>
	The transition from the balcony to stairs was further cued in a floor texture change from tile to carpet. While this decision likely served a practical material purpose, the subtle reinforcement of the upcoming transition prepared visitors for their descent down the stairs.</p>
<p>
	<img alt="" src="http://viget.com/uploads/image/blog/Hunt_StairTransition.png" style="width: 580px; height: 326px; " /></p>
<p>
	<br />
	Matching the background of the exhibit description labels to the wall paint color allowed the boards to be legible when in the immediate vicinity of the object, but not distracting (and fairly invisible) when panning or surveying the entire exhibit. This allowed the art, rather than the supportive objects to be the primary focus of sight.</p>
<p>
	<img alt="" src="http://viget.com/uploads/image/blog/Hunt_RedLabel.png" style="width: 580px; height: 472px; " /></p>
<p>
	<img alt="" src="http://viget.com/uploads/image/blog/Museum7.png" style="width: 580px; height: 365px; " /></p>
<p>
	<em>Image courtesy of VMFA. Photography by Bilyana Dimitrova.</em></p>
<p>
	The success of pushing the elevator button is further reinforced by a visual cue of highlighting the button&#39;s outline.</p>
<p>
	<img alt="" src="http://viget.com/uploads/image/blog/Hunt_Elevator.png" /></p>
<p>
	Poor user flows and navigation were not typical of the museum except in this one example where the visitor encounters a dead-end and must retrace their steps back out of the exhibit. The physical experience of dissatisfaction and confusion is not dissimilar to user flows which provide little evidence of further interactions.</p>
<p>
	<img alt="" src="http://viget.com/uploads/image/blog/Hunt_DeadEnd.png" style="width: 300px; height: 533px; " /></p>
<p>
	<br />
	Listing the upcoming exhibits at this scale and location on this 3rd floor wall removed any ambiguity or confusion around the exhibits in this distant space, even for a user 2 floors below.</p>
<p>
	<img alt="" src="http://viget.com/uploads/image/blog/Hunt_WallLabel.png" /></p>
<p>
	<br />
	Example of a perspective where key pieces of art are visible from various points during your progression. Besides providing a sense of anticipation and wonder, the pattern of using art to mark the beginning or end of a path was established. This navigation strategy became a useful mental model for a visitor to understand progression through the museum.</p>
<p>
	<img alt="" src="http://viget.com/uploads/image/blog/Hunt_Perspective.png" /></p>
<p>
	A few challenges we noted were not being able to capture video for time-based observations like sequences and not having an efficient means to provide context or descriptions around the captured images. Given the limitations around mobile typing, the static image and subsequent label did not always adequately reflect the context for the observation.</p>
<p>
	Overall, the exercise was a success and provided a good opportunity for the team to practice our observational-based skills. The game-like mechanics and competition of the scavenger hunt made the exercise enjoyable while providing some categorical structure and focus to the behaviors we were looking to capture. It was also beneficial to pin our observations to a central location so all the groups could reference the images after completing the exercise .</p>
<p>
	We&rsquo;d love to hear if other teams have found success in any observational exercises. In the meantime, check out our <a href="http://pinterest.com/tothy/">Pinterest boards</a> or download the<a href="https://www.dropbox.com/s/ivonniq84ambs7m/Viget-UXScavengerHunt.pages"> list of categories and tasks</a> we used in our hunt.</p>

					
				
			]]></description>
			<dc:subject>Advance</dc:subject>
			<dc:date>2012-05-07T13:45:08+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>Translating Viget&#8217;s History to Facebook Timeline</title>
			
				<link>http://viget.com/advance/translating-vigets-history-to-facebook-timeline</link>
				<guid>http://viget.com/advance/translating-vigets-history-to-facebook-timeline#When:23:46:37Z</guid>
			
			<dc:creator>Anjali Merchant</dc:creator>
			<description><![CDATA[ 
		    
					<p>
	Recently, I took on the task of updating our Viget Facebook account to the new Timeline layout. Now, I don&rsquo;t just mean clicking the &ldquo;Get Timeline Now&rdquo; button, but actually using it to its fullest potential by updating it with various facts, photos, and videos from our company&rsquo;s history. What I initially expected to be a tedious, content-gathering chore turned out to be quite an informative and even enjoyable little project.</p>
<p>
	Over the past couple of weeks, I&rsquo;ve been consulting with various folks across the company from co-founders, Brian and Andy, to Cindy, our first employee (whom I&rsquo;ve now classified as our Resident Historian since she either remembers or has access to information about almost anything from Viget&rsquo;s past), to Jason, who more recently helped start our Boulder office. I stumbled upon hilarious photos from TTT events going way back, heard stories about previous employees, and got a chance to flip through binders of our old internal weekly Lab Reports (updates on projects, sales, and other Viget info).</p>

					<p>
	In the end, I was able to capture Viget&rsquo;s history in a visually-compelling timeline and showcase how Viget has changed and grown both professionally and as a family over the last 12 years. All of this without having to worry about finding design or development resources.</p>
<p>
	<img alt="Viget Facebook Timeline" src="http://viget.com/uploads/image/blog/facebook-timeline.png" style="width: 573px; height: 1239px; " /></p>
<p>
	A lot of organizations have switched to the Timeline, but have chosen not to backdate it with information from the past. I&rsquo;d encourage those of you who have already switched over or those who are still thinking about it to explore your company&rsquo;s history and put some time into piecing together a complete timeline -- you won&rsquo;t be disappointed with the journey or the result. In the meantime, check out <a href="https://www.facebook.com/vigetlabs">our Facebook Timeline</a> and feel free to tell us what you think!</p>

				
			]]></description>
			<dc:subject>Advance</dc:subject>
			<dc:date>2012-04-30T23:46:37+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>Viget Blogs by the Numbers [INFOGRAPHIC]</title>
			
				<link>http://viget.com/flourish/viget-blogs-by-the-numbers-infographic</link>
				<guid>http://viget.com/flourish/viget-blogs-by-the-numbers-infographic#When:21:58:09Z</guid>
			
			<dc:creator>Zach Robbins</dc:creator>
			<description><![CDATA[ 
		    
					<p>
	One of my first exposures to Viget several years ago was reading a blog post on the (now) &ldquo;Flourish&rdquo; blog. I then found myself following not only the Flourish posts, but the Inspire (design), Extend (development), Engage (marketing), and Advance (UX) posts, even if the topic was outside of my skill set or interest. I found it fascinating that a company would dedicate so much time to sharing their process, insights, and ideas with their community. I ate up what they had to share, which had a lot to do with me eventually seeking a job at Viget.</p>

					<p>
	Now I find myself writing posts for the same blogs that I once followed so intently. But, why is it that Viget sought to dedicate time to sharing?&nbsp; Our CEO wrote about the <a href="http://viget.com/flourish/all_new_vigetcom_and_blogging_strategy">original blog strategy back in 2008</a>.&nbsp; With the launch of the new Viget.com in March of this year, Brian <a href="http://viget.com/flourish/the-new-viget">commented on the success of the blogs</a>.&nbsp; We&rsquo;re big on data here, though, so we decided to dig into the numbers to figure out what kind of impact our blogging strategy has had over the past four years.</p>
<p>
	While we knew that the blogs had led to some great recruits, a good amount of industry attention, and several key clients, we weren&rsquo;t sure what to expect when we looked at the numbers. Below is a visualization of some of our findings. This graphic was originally created for an internal meeting, but we figured that since we&rsquo;ve been sharing all this time, why not share some of the numbers behind the sharing too?</p>
<p>
	<img alt="Viget Blogs by the Numbers" src="http://viget.com/uploads/image/blog/blog-infographic.png" /></p>

				
			]]></description>
			<dc:subject>Flourish</dc:subject>
			<dc:date>2012-04-30T21:58:09+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>Celebrating Viget&#8217;s 12th Birthday</title>
			
				<link>http://viget.com/flourish/celebrating-vigets-12th-birthday</link>
				<guid>http://viget.com/flourish/celebrating-vigets-12th-birthday#When:18:45:39Z</guid>
			
			<dc:creator>Khanh Stenberg</dc:creator>
			<description><![CDATA[ 
		    
					<p>
	<a href="http://www.flickr.com/photos/viget/6941487012/in/set-72157629830612137"><img alt="" src="http://farm8.staticflickr.com/7113/6941487012_b84ba51272.jpg" style="width: 500px; height: 333px; " /></a></p>
<p>
	In the last year we have added a dozen new faces to our team, several of them to our Boulder office. And, since this was our opportunity to celebrate Viget being another year older and a TTT where we were all in one place, it needed to be special. &nbsp;The whole Boulder team and <a href="http://viget.com/about/team/davery">Doug</a> flew to the East Coast for the week and we all met halfway in Richmond, VA for our Quarterly Progress Meeting.</p>
<p>
	<a href="http://www.flickr.com/photos/viget/6941488182/in/set-72157629830612137/"><img alt="" src="http://farm8.staticflickr.com/7042/6941488182_c0c1ef17be.jpg" style="width: 500px; height: 333px; " /></a></p>

					<p>
	After our meeting, we mosied on down to The Capital Ale House where we rented out their private Music Hall for the night. Introductions and speeches were given and we took the time to recognize <a href="http://viget.com/about/team/kvigneault">Kevin</a>, <a href="http://viget.com/about/team/davery">Doug</a>, and <a href="http://viget.com/about/team/ebloom">Emily</a> for being with Viget for 5 years, and <a href="http://viget.com/about/team/pcrump">Peyton</a> for his 10 years of service.</p>
<p>
	We ate delicious food, consumed multiple drinks, reflected on the last year with an amazing <a href="http://www.flickr.com/photos/viget/6941510510/in/set-72157629830612137">video</a> by <a href="http://viget.com/about/team/zrobbins">Zach</a>, and <a href="http://www.flickr.com/photos/viget/7087582133/in/set-72157629830612137">laughed</a> a lot (mostly <strike>at</strike> with <a href="http://viget.com/about/team/dtello">Dan</a>).</p>
<p>
	<a href="http://www.flickr.com/photos/viget/6941510320/in/set-72157629830612137"><img alt="" src="http://farm6.staticflickr.com/5198/6941510320_3c2cfaffc3.jpg" style="width: 500px; height: 333px; " /></a></p>
<p>
	After dinner we played our annual game of Vigetry where there were moments of joy and humilty.</p>
<p>
	<a href="http://www.flickr.com/photos/viget/7087585163/in/set-72157629830612137"><img alt="" src="http://farm8.staticflickr.com/7086/7087585163_c04c4a2367.jpg" style="width: 500px; height: 333px; " /></a></p>
<p>
	<a href="http://www.flickr.com/photos/viget/6941514784/in/set-72157629830612137"><img alt="" src="http://farm8.staticflickr.com/7254/6941514784_f1dc44bef9.jpg" style="width: 500px; height: 333px; " /></a></p>
<p>
	With our own private stage, we couldn&#39;t pass up the opportunity to showcase some of our talents, some more serious than others.</p>
<p>
	<a href="http://www.flickr.com/photos/viget/7087588655/in/set-72157629830612137"><img alt="" src="http://farm8.staticflickr.com/7248/7087588655_61669eb403.jpg" style="width: 500px; height: 333px; " /></a></p>
<p>
	<a href="http://www.flickr.com/photos/viget/7087589331/in/set-72157629830612137"><img alt="" src="http://farm6.staticflickr.com/5197/7087589331_84604dac68.jpg" style="width: 500px; height: 333px; " /></a></p>
<p>
	<a href="http://www.flickr.com/photos/viget/6941926816/in/set-72157629830612137"><img alt="" src="http://farm8.staticflickr.com/7204/6941926816_4835ea068f.jpg" style="width: 500px; height: 281px; " /></a></p>
<p>
	<a href="http://www.flickr.com/photos/viget/6941520916/in/set-72157629830612137"><img alt="" src="http://farm8.staticflickr.com/7097/6941520916_364b039d15.jpg" style="width: 333px; height: 500px; " /></a></p>
<p>
	The rest of the night was filled with mingling and catching up with our friends.</p>
<p>
	We couldn&#39;t have asked for better weather on Saturday morning which got us pumped to go rafting with <a href="http://riversideoutfitters.net/">Riverside Outfitters</a>. After all, what better way to recover from a late night than a face full of cold river water? With our <a href="http://www.flickr.com/photos/viget/6941492702/in/set-72157629830612137">rafting-themed gifts</a>&nbsp;from Viget, we were ready!&nbsp;We filled up 10 rafts and hit the white water on the James River which offers the only Class III and IV rapids through an urban setting.</p>
<p>
	<a href="http://www.flickr.com/photos/viget/7087607597/in/set-72157629830612137"><img alt="" src="http://farm8.staticflickr.com/7075/7087607597_44a3eeb9a4.jpg" style="width: 500px; height: 333px; " /></a></p>
<p>
	<a href="http://www.flickr.com/photos/viget/7087615001/in/set-72157629830612137"><img alt="" src="http://farm8.staticflickr.com/7122/7087615001_5f3c9ae644.jpg" style="width: 500px; height: 375px; " /></a></p>
<p>
	The morning water was calm and gave us the opportunity to wake and warm up. We took a quick lunch break and then it was back on the river for the more vigorous rapids.</p>
<p>
	<a href="http://www.flickr.com/photos/viget/7087616741/in/set-72157629830612137"><img alt="" src="http://farm8.staticflickr.com/7117/7087616741_7dcc7060d7.jpg" style="width: 500px; height: 375px; " /></a></p>
<p>
	<a href="http://www.flickr.com/photos/viget/7087614537/in/set-72157629830612137"><img alt="" src="http://farm6.staticflickr.com/5443/7087614537_c0c3c54948.jpg" style="width: 500px; height: 375px; " /></a></p>
<p>
	Before we knew it, the trip was over and it was time to head home. It&#39;s memorable events like these that help remind us of how hard we work during the year that allow us to spend a few days to play even harder. Happy birthday, Viget! And, here&#39;s to another great year.</p>
<p>
	Any suggestions on what we should do for Viget&#39;s 13th birthday?</p>

				
			]]></description>
			<dc:subject>Flourish</dc:subject>
			<dc:date>2012-04-27T18:45:39+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>Three Magical Git Aliases</title>
			
				<link>http://viget.com/extend/three-magical-git-aliases</link>
				<guid>http://viget.com/extend/three-magical-git-aliases#When:21:12:45Z</guid>
			
			<dc:creator>David Eisinger</dc:creator>
			<description><![CDATA[ 
		    
					<p>
	Git is an enormously powerful tool, but certainly not the most beginner-friendly. The basic commands are straightforward enough, but until you wrap your head around its internal model, it&rsquo;s easy to wind up in a jumble of merge commits or worse. Here are three aliases I use as part of my daily workflow that help me avoid many of the common pitfalls.</p>

					<h3>
	GPP (<code>git pull --rebase &amp;&amp; git push</code>)</h3>
<p>
	<strong>I can&rsquo;t push without pulling, and I can&rsquo;t pull without rebasing.</strong> I&rsquo;m not sure this is still a point of debate, but if so, let me make my side known: I hate hate <em>hate</em> merge commits. And of course, what does Git tell you after an unsuccessful push?</p>
<pre>
<code>Merge the remote changes (e.g. &#39;git pull&#39;) before pushing again.&#10;</code></pre>
<p>
	This will create a merge commit, regardless of whether there are any conflicts between your changes and the remote. There are ways to prevent these merge commits <a href="http://viget.com/extend/only-you-can-prevent-git-merge-commits">at the configuration level</a>, but they aren&rsquo;t foolproof. This alias is.</p>
<h3>
	GMF (<code>git merge --ff-only</code>)</h3>
<p>
	<strong>I can&rsquo;t create merge commits.</strong> Similar to the last, this alias prevents me from ever creating merge commits. I do my work in a topic branch, and when the time comes to merge it back to the mainline development branch, I check that branch out and pull down the latest changes. At this point, if I were to type <code>git merge [branchname]</code>, I&rsquo;d create a merge commit.</p>
<p>
	Using this alias, though, the merge fails and I receive a warning that this is not a <a href="http://365git.tumblr.com/post/504140728/fast-forward-merge">fast-forward merge</a>. I then check out my topic branch, rebase master, and then run the merge successfully.</p>
<h3>
	GAP (<code>git add --patch</code>)</h3>
<p>
	<strong>I can&rsquo;t commit a code change without looking at it first.</strong> Running this command rather than <code>git add .</code> or using a commit flag lets me view individual changes and decide whether or not I want to stage them. This forces me to give everything I&rsquo;m committing a final check and ensure there isn&rsquo;t any undesirable code. It also allows me to break a set of changes up into multiple commits, even if those changes are in the same file.</p>
<p>
	What <code>git add --patch</code> doesn&rsquo;t do is stage new files, so you&rsquo;ll have to add those by hand once you&rsquo;re done patching.</p>
<hr />
<p>
	Hope you find one or more of these aliases helpful. These <em>and more!</em> available in my <a href="https://github.com/dce/dotfiles/blob/master/.aliases#L7">dotfiles</a>.</p>

				
			]]></description>
			<dc:subject>Extend</dc:subject>
			<dc:date>2012-04-25T21:12:45+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>Introducing Single Entry &#45; Viget&#8217;s First Commercial ExpressionEngine Add&#45;on</title>
			
				<link>http://viget.com/extend/single-entry</link>
				<guid>http://viget.com/extend/single-entry#When:15:40:38Z</guid>
			
			<dc:creator>Blake Walters</dc:creator>
			<description><![CDATA[ 
		    
					
					<p>
    Have you ever had a channel in an ExpressionEngine installation that required its own set of custom fields, but only needed one entry? Perhaps a homepage or an &#8220;About Us&#8221; section that needed its own custom content but wasn&#39;t a traditional list of posts? &nbsp;<a href="http://devot-ee.com/add-ons/single-entry">Single Entry</a> can help.</p>

<p>
    Once configured, Single Entry moves your single entry channels out of EE&#39;s standard publish and edit workflow and into a new section of your content dropdown.&nbsp; From there, you&#39;ll have quick access to creating and editing the individual entries in those channels without the hassle of navigating through the standard EE edit workflow or accidentally creating a new entry in a channel that can&#39;t use one.</p>

<p>
    Best of all, your data and development workflow aren&#39;t changed in any way. Single entry channels are still completely native and can be assigned custom field groups, category groups and statuses, and used in templates just like always. And through the configuration panel, even the name of the new section in the content dropdown can be customized.</p>

<p>
    Single Entry is available starting today on Devot:ee for just $5. <a href="http://devot-ee.com/add-ons/single-entry">Grab it here</a>.</p>

				
			]]></description>
			<dc:subject>Extend</dc:subject>
			<dc:date>2012-04-19T15:40:38+00:00</dc:date>
	      </item>
	    
	      <item>
			<title>CSS pointer&#45;events and a pure CSS3 animating tooltip</title>
			
				<link>http://viget.com/inspire/css-pointer-events-and-a-pure-css3-animating-tooltip</link>
				<guid>http://viget.com/inspire/css-pointer-events-and-a-pure-css3-animating-tooltip#When:17:42:56Z</guid>
			
			<dc:creator>Dan Tello</dc:creator>
			<description><![CDATA[ 
		    
					<h2>
	Today&rsquo;s program is brought to you by:</h2>
<pre>
.example {&#10;  pointer-events: none;&#10;}&#10;</pre>
<h3>
	What the property does:</h3>
<p>
	The <a href="https://developer.mozilla.org/en/CSS/pointer-events"> <code>pointer-events</code></a> property allows you to specifiy how the mouse interacts with the element it is touching. Although it was originally intended for SVG elements, <a href="http://caniuse.com/pointer-events">browser support</a> for <code>pointer-events</code> on other elements is pretty good, except for IE, which in some cases may not matter (I&#39;ll explain why towards the end of this post). The most common use case is to set an element&rsquo;s <code>pointer-events</code> to <code>none</code>, <strong>which allows clicks to pass through the element, or hover actions on the element to be ignored</strong>.</p>

					<h3>
	How it made my tooltips sweet:</h3>
<p>
	<iframe frameborder="0" height="165" name="result" src="http://fiddle.jshell.net/greypants/zgCb7/show/" width="390"></iframe></p>
<p>
	<em>You can view and <a href="http://jsfiddle.net/greypants/zgCb7/">play with the code here.</a> (And yes, it degrades gracefully for IE.)</em></p>
<p>
	I was creating a CSS-only tooltip and I wanted to fade it in and out using the CSS3 <code>transition</code> property. Fading the <code>opacity</code> to <code>0</code> works great, except that the tooltip is technically still there (just invisible), blocking mouse interaction with content below it and growing the <code>:hover</code> area of its parent to include itself. Boo. I couldn&rsquo;t just toggle <code>display:block</code> and <code>display:none</code>on<code>:hover</code> because that would hide the element before it had a chance to smoothly transition out.</p>
<p>
	<strong>Setting <code>pointer-events</code> to <code>none</code> solves the issue by making our invisible tooltip invisible to the mouse as well.</strong> You can now mouse all around the button without hitting our hidden tooltip. When the tooltip is showing, I set <code>pointer-events</code> back to <code>auto</code> so that the tooltip stays visible while I&rsquo;m hovering over it in addition to its parent.</p>
<p>
	For Internet Explorer (lte9 - I haven&#39;t tested 10 yet), rather than animating opacity and translating the position, I&rsquo;m just toggling <code>display:block</code> and <code>display:none</code> since the CSS3 animations aren&#39;t supported anyway. So in this case, we don&rsquo;t need <code>pointer-events</code> (which is unsupported in IE) because <code>display:none</code> removes the element completely.</p>
<h3>
	Other fun stuff in the CSS:</h3>
<ul>
	<li>
		<strong>CSS generated content:</strong> Check out <a href="http://viget.com/inspire/css-generated-content">Trevor&rsquo;s post</a> if you don&rsquo;t understand where that cute lil&rsquo; triangle on the tooltip is coming from.</li>
	<li>
		<strong>Bridging the gap:</strong> If you were to mouse up from the tooltip link and into the tooltip bubble, normally your mouse would be leaving your hovered element, and the tooltip would disappear. We want the user to be able to mouse over the tooltip as well, so using generated content again, I created an invisible block beneath the tooltip that bridges the gap between it and its parent. Now you can safely mouse into the tooltip without it disappearing.</li>
	<li>
		<strong>Webkit display fixes:</strong> <code>-webkit-transform:translateZ(0)</code> fixes the <a href="http://viget.com/inspire/webkit-transform-kill-the-flash">infamous flicker</a> I&rsquo;ve written about previously, and <code>-webkit-font-smoothing:antialiased</code> fixes another webkit-only display issue where the text flickers as it momentarily changes antialiasing modes while animating.</li>
	<li>
		<strong>IE conditional classes:</strong> If you&rsquo;re unfamiliar with this best practice, see <a href="http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/">Paul Irish&rsquo;s post</a>. (It&rsquo;s even got <a href="http://viget.com/about/team/davery">Doug&rsquo;s</a> two cents thrown in!)</li>
</ul>
<h2>
	Internet Explorer Oddities:</h2>
<p>
	Like I said, the <code>pointer-events</code> property is not supported in Internet Explorer, at least through IE 9. There are <a href="http://www.vinylfox.com/forwarding-mouse-events-through-layers/">javascript workarounds</a>, however it&rsquo;s good to note that IE handles transparent elements differently, and you may not need the property at all in some instances.</p>
<h3>
	Check out this example in IE and compare it to other browsers. It&#39;s really odd behavior.</h3>
<p>
	<iframe frameborder="0" height="270" name="result" src="http://fiddle.jshell.net/greypants/sMVPU/show/" width="420"></iframe><br />
	<em>You can view and <a href="http://jsfiddle.net/greypants/sMVPU/">play with the code here</a>.</em></p>
<p>
	Crack open IE and hover in and out of the text, "HOVER HERE (div-2)". In Internet Explorer (all versions through at least 9), if div-1 has a height and a width, and is positioned on top of div-2 , but does not have a background-color or background-image, you can interact with (hover in this case) div-2 <em>wherever there is content showing through</em>. So when you hover over the text, "HOVER HERE (div-2)", div-2 gets hovered, and div-1 loses hover. Weird! Anywhere else within the bounds of div-1 it does not. If you wanted to make div-1 act like normal browsers and truly cover the content below it, you can give it a transparent background png or gif. All other browsers (to my knowledge), div-1 would block the mouse events on div-2 whether or not it was filled with something.</p>
<h3>
	Moral of the story:</h3>
<p>
	In certain instances, you can use this to your advantage as an IE workaround for <code>pointer-events:none</code> that lets you click or hover on elements behind another element.</p>
<h2>
	In conclusion:</h2>
<p>
	I hope you and <code>pointer-events</code> have a wonderful future together. Had you heard of or used the property before? Do you have a different way of accomplishing the same thing? Share you knowledge!</p>

				
			]]></description>
			<dc:subject>Inspire</dc:subject>
			<dc:date>2012-04-18T17:42:56+00:00</dc:date>
	      </item>
	    
    </channel>
</rss>
