<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The Phuse</title>
	
	<link>http://thephuse.com</link>
	<description />
	<lastBuildDate>Mon, 13 May 2013 22:21:54 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/thephuse" /><feedburner:info uri="thephuse" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Make your own accordion with jQuery</title>
		<link>http://feedproxy.google.com/~r/thephuse/~3/84j88IQX-FU/</link>
		<comments>http://thephuse.com/development/make-your-own-accordion-with-jquery/#comments</comments>
		<pubDate>Mon, 22 Apr 2013 16:08:55 +0000</pubDate>
		<dc:creator>Jenna Boese</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://thephuse.com/?p=2051</guid>
		<description><![CDATA[This is a tutorial for beginners with some basic knowledge of HTML and CSS. If you’re more advanced, you might want to look at this one, too. In this example, let’s say we have a list of questions and answers that we want to show as an accordion. An accordion usually works like this: only&#8230;]]></description>
				<content:encoded><![CDATA[<p>This is a tutorial for beginners with some basic knowledge of HTML and CSS. If you’re more advanced, you might want to look at <a href="http://thephuse.com/development/you-dont-need-a-jquery-plug-in-for-that/">this one</a>, too.</p>
<p>In this example, let’s say we have a list of questions and answers that we want to show as an accordion. An accordion usually works like this: only the questions are seen, and when you click on one, the answer expands below it. When you click on a different question, the previously shown answer hides and the new answer expands.</p>
<p><img src="http://thephuse.com/cms/wp-content/uploads/2013/04/acc.png" alt="acc" width="529" height="220" class="alignnone size-full wp-image-2070" /></p>
<h2>Write the markup</h2>
<p>For a list of questions and answers, you can use the oft-overlooked <a href="https://developer.mozilla.org/en-US/docs/HTML/Element/dl">definition list element</a>. Any similar markup pattern will work; this one is handy since it’s not often used for other things.</p>
<pre><code class="html">&lt;dl class="accordion"&gt;
  &lt;dt&gt;Why is the sky blue?&lt;/dt&gt;
  &lt;dd&gt;Because lorem ipsum&lt;/dd&gt;

  &lt;dt&gt;Why is grass green?&lt;/dt&gt;
  &lt;dd&gt;Because lorem ipsum&lt;/dd&gt;
&lt;/dl&gt;</code></pre>
<p>Use whatever questions you want in thes and whatever content you want for the answers in the corresponding. Repeat the <code>&lt;dt&gt;</code> and <code>&lt;dd&gt;</code><br />
sets as many times as needed.</p>
<h2>Include jQuery and a script file</h2>
<p>Before the closing body tag of your html file, include a script link to the latest version of <a href="http://jquery.com/">jQuery</a> and to a blank script.js file that you create. It’s good to get in the practice of keeping your scripts separate, maybe even in their own directory.</p>
<h2>In your script file</h2>
<p>Create a blank function and call it from inside the jQuery <a href="http://api.jquery.com/ready/">ready method</a>. Nothing will happen yet!</p>
<pre><code class="js">var accordion = function() {
  
};

jQuery(function($) {
  accordion();
});</code></pre>
<p>The following lines go in your empty accordion function:</p>
<pre><code class="js">// first, hide all the answers:
$('.accordion dd').hide();

$('.accordion dt').click(function(){
  // after clicking a question, close any open answers in the list:
  $(this).siblings('dd').slideUp();

  // show the answer (item directly after the question) if it is currently hidden
  if($(this).next().is(':hidden')) {
    $(this).next().slideDown();
  }
});</code></pre>
<p>And that’s it! Now it will work as described above. Here’s the <a href="http://thephuse.com/demos/accordion">full example</a> without code comments.</p>
<h2>Extra credit</h2>
<p>You should probably make the questions look clickable so people will know to click them. The bare minimum would be to add this to your CSS, which will change the cursor when hovering the question so it looks like a link:</p>
<pre><code class="css">.accordion dt {
  cursor: pointer;
}</code></pre>
<p>You could also wrap the questions in a link, but this will require some other changes to your markup and jQuery.</p>
<p>You might also notice that the questions are visible for a second or so when first opening the page. That’s because we are hiding the questions with jQuery which is called after the page loads. Viewers without javascript will see the fully expanded question list. Avoid this flash of unstyled content by adding <code>display:none;</code> to a <code>.accordion dd</code> CSS rule, and you can get rid of the first line in the accordion function.</p>
<p>Have fun <img src='http://thephuse.com/cms/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/thephuse/~4/84j88IQX-FU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thephuse.com/development/make-your-own-accordion-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thephuse.com/development/make-your-own-accordion-with-jquery/</feedburner:origLink></item>
		<item>
		<title>SCSS Code Organization and Abstraction</title>
		<link>http://feedproxy.google.com/~r/thephuse/~3/ZDNmiOsCFWs/</link>
		<comments>http://thephuse.com/development/scss-code-organization-and-abstraction/#comments</comments>
		<pubDate>Mon, 15 Apr 2013 15:13:36 +0000</pubDate>
		<dc:creator>Tessa Thornton</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Sass]]></category>

		<guid isPermaLink="false">http://thephuse.com/?p=2019</guid>
		<description><![CDATA[A recent quest to come up with a definitive project template for organizing my .scss files led to a lot of thinking about how I approach coding designs, reading articles, trying out techniques, and reflecting on what actually makes the most sense for the kinds of projects I work on. The result of my pondering&#8230;]]></description>
				<content:encoded><![CDATA[<p>A recent quest to come up with a definitive project template for organizing my .scss files led to a lot of thinking about how I approach coding designs, reading articles, trying out techniques, and reflecting on what actually makes the most sense for the kinds of projects I work on.</p>
<p>The result of my pondering and research ended up being both a template of .scss files that go into each project, and a concept for defining the elements that make up a web design. So here’s what I’ve come up with: it’s nothing revolutionary, but I like seeing how other developers do things, so maybe you will too!</p>
<h2>Core Concept: Modules and Components</h2>
<p>You hear a lot of developers talk about <em>modules</em> in all kinds of development. Modules are re-usable bits of <em>something</em>. In CSS, you might have a button module or a breadcrumb module, or anything that you might use multiple times within a site or app. Now, modules are great, and it&#8217;s always good to be as DRY as possible, but I&#8217;ve come to acknowledge that not everything is a reusable module, and if I start treating every element on my page as something I&#8217;m going to use again in another context, I&#8217;m usually just fooling myself and spending too much time trying to abstract something for the sake of abstracting.</p>
<p>I now recognize that the sites and apps I work on tend to comprise both <em>modules</em> and what I&#8217;m calling <em>components</em>. Components may not be the most accurate term here, but it&#8217;s what I&#8217;ve come up with. Components are all the bits that make up your web site or app that occur only once, or only in one context. Things like your page header or footer or sidebar. Sure, you <em>could</em> have multiple headers or sidebars or footers, but in a lot of cases, you know that you won&#8217;t. You might still have multiple instances of a component, but you&#8217;re only using it in the one context. If you need to use a component in more than one context, you should turn that into a module. I the main difference between a module and a component is context: a component is context-dependent, a module is not.</p>
<h2>Markup</h2>
<p>I&#8217;ve never been all that vigilant about commenting my code, but I&#8217;m really pushing myself to change that. Since I know I&#8217;ll have coworkers working on the same code that aren&#8217;t familiar with my little system, I know I have to make everything as clear as possible. I use a system of corresponding HTML and SCSS comments to make it clear to anyone reading the HTML where in the SCSS they can find those styles:<br />
<script src="http://gist.github.com/d57ea481a2835b9b37df.js"></script></p>
<h2>File Structure</h2>
<p>I always have a main.scss file that imports all other scss files and compiles to main.css, the files I include are fairly consistent, but sometimes change a bit depending on the project:<br />
<script src="http://gist.github.com/a70eb2d975fad7d170bc.js"></script></p>
<p>The order here is important, both for css specificity reasons and scss inheritance reasons!</p>
<h2>Example: Space Apps Toronto</h2>
<p>The team at The Phuse is working on something pretty exciting this spring: we&#8217;re helping organize a hackathon here in Toronto called the <a href="http://spaceappstoronto.com">Toronto Space Apps Challenge</a>, and my coworkers and I have been developing the event website.</p>
<div id="attachment_2029" class="wp-caption aligncenter" style="width: 567px"><a href="http://thephuse.com/cms/wp-content/uploads/2013/04/Screen-Shot-2013-04-06-at-6.04.33-PM.png"><img class=" wp-image-2029 " alt="Props to my coworker Tom for the awesome design." src="http://thephuse.com/cms/wp-content/uploads/2013/04/Screen-Shot-2013-04-06-at-6.04.33-PM.png" width="557" height="296" /></a><p class="wp-caption-text">Props to my coworker Tom for the awesome design.</p></div>
<p>It&#8217;s a fairly simple website in that it&#8217;s only 3 pages, but there&#8217;s a lot of content, a lot of images, and a somewhat unusual grid system going on (18-columns instead of the usual 12 or 16).</p>
<h3>Component: Schedule</h3>
<p>To illustrate my component/module distinction, I&#8217;ll go over an example of each. In the ‘Schedule’ section of the Space Apps Toronto website, there are 3 schedule tables, one for each day of the hackathon.</p>
<p style="text-align: center;"><a href="http://thephuse.com/cms/wp-content/uploads/2013/04/Screen-Shot-2013-04-06-at-6.06.40-PM.png"><img class="aligncenter  wp-image-2032" alt="Screen Shot 2013-04-06 at 6.06.40 PM" src="http://thephuse.com/cms/wp-content/uploads/2013/04/Screen-Shot-2013-04-06-at-6.06.40-PM-1024x466.png" width="717" height="326" /></a></p>
<p>The <code>.schedule-table</code> element is repeated: there is one for each day, but it is context-specific: this layout is specific to displaying this kind of content. I <em>could</em> abstract this out to something more generic (and maybe later I will), but at this point that isn&#8217;t necessary and makes the code harder to navigate.</p>
<p>The code looks something like this:</p>
<h3>HTML</h3>
<script src="http://gist.github.com/98ec16323c8fe30181bc.js"></script>
<h3>SCSS</h3>
<script src="http://gist.github.com/e22b4bbbc84cfb286992.js"></script>
<h2>Module: Callout</h2>
<p>On the Space Apps website, I have several areas that are visually similar though semantically unrelated: the schedule for the pre-event party, the lists of media links on the press page, and the schedule for the NASA Youth Space Challenge page. This sounds like a good example of a module! I decided to call it &#8216;callout&#8217; because it visually emphasizes the content inside it.</p>
<p style="text-align: center;"><a href="http://thephuse.com/cms/wp-content/uploads/2013/04/Screen-Shot-2013-04-06-at-6.08.41-PM.png"><img class="aligncenter  wp-image-2035" alt="Screen Shot 2013-04-06 at 6.08.41 PM" src="http://thephuse.com/cms/wp-content/uploads/2013/04/Screen-Shot-2013-04-06-at-6.08.41-PM.png" width="642" height="323" /></a></p>
<p>The code looks pretty much the same as it does for a component, but it lives in a different file:</p>
<h3>HTML</h3>
<script src="http://gist.github.com/6bd84635b5373034c1dc.js"></script>
<h3>CSS</h3>
<p><script src="http://gist.github.com/e43659ba6a9b51d357f5.js"></script><br />
On the Youth page, the schedule element is both a module and a component: It shares the callout styles with the press and pre-party schedule elements, but also has it&#8217;s own context-specific styles associated with the <code>schedule</code> component. (I’m re-using the schedule element here, but it remains a component and not a module because the <em>context</em> is the same).<br />
<script src="http://gist.github.com/5bde5c3183accfc142b5.js"></script></p>
<h2>Conclusion</h2>
<p>I’m aware that this approach can seem backwards: treat elements as context-specific and abstract as needed, as opposed to abstracting everything and then adding specificity. I don’t have anything against the latter approach in theory, but in practice, I find I often end up with much messier code, because inevitably my re-usable modules need to be altered in one place but not another, a client or designer points out that <em>actually</em> those two elements should have different padding, or the text shouldn’t be bold in module instance #2, and suddenly the instances of my module are more different than they are similar, and at that point why even bother?</p>
<p>Surprisingly, I’ve found it easier to abstract out a component into a module as needed than to add increasingly specific styles to each instance of a module as a design grows and changes, and it leaves me with modules that exist out of necessity, rather than just for the sake of abstraction.</p>
<p>I’ve only been using this approach for 3-4 months, but it’s working well for me so far, and considering that after about a month of coding something I usually look at it and think it’s garbage, this is holding up fairly well. I’m always looking for ways to optimize my technique, and I’m currently experimenting with making heavier use of the Sass <code>@extend</code> function to create components as extensions of modules (but that’s another blog post&#8230;). I&#8217;m always looking for feedback with my coding techniques and methods, so feel free to leave your thoughts!</p>
<img src="http://feeds.feedburner.com/~r/thephuse/~4/ZDNmiOsCFWs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thephuse.com/development/scss-code-organization-and-abstraction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thephuse.com/development/scss-code-organization-and-abstraction/</feedburner:origLink></item>
		<item>
		<title>CSS Specificity Crash Course</title>
		<link>http://feedproxy.google.com/~r/thephuse/~3/9_f9V_dVKG8/</link>
		<comments>http://thephuse.com/development/css-specificity-crash-course/#comments</comments>
		<pubDate>Thu, 04 Apr 2013 20:37:16 +0000</pubDate>
		<dc:creator>Flip Stewart</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[styles]]></category>
		<category><![CDATA[stylesheets]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[websites]]></category>

		<guid isPermaLink="false">http://thephuse.com/?p=2009</guid>
		<description><![CDATA[Rendered styles are no coincidence; there's a specific order of precedence. Let's get you back in control.]]></description>
				<content:encoded><![CDATA[<p><img src="http://thephuse.com/cms/wp-content/uploads/2013/04/important-all-the-things.jpg" alt="Important All The Things meme" width="552" height="414" class="alignright size-full wp-image-2011" />Styling new elements or restyling old elements can take a bit of extra effort on large web applications, especially if you’re jumping into an existing code base instead of starting from scratch.</p>
<p>Imagine this scenario: you pop your new declarations into one of your stylesheets and reload the browser expecting things to be perfect, and they would be because you&#8217;re a kick ass developer, but nope, not so fast! Your elegant and masterful styles aren&#8217;t even showing up! So you pull up web inspector and see seven selector chains and their styles fighter for supremacy over the style of your elements. Not cool.</p>
<p>It&#8217;s alright though, you&#8217;ve got this. It&#8217;s not rocket surgery. It&#8217;s internets math! </p>
<p>Rendered styles are no coincidence; there&#8217;s a specific order of precedence. Let&#8217;s get you back in control.</p>
<h2>1. !important</h2>
<p>`!important` is a trump card. It will always win over any declarations, even inline declarations, but you should avoid using it at all costs, unless you’re up against CSS from an imported framework. When you find yourself wanting to use `!important`, a much better option is to refactor your styles to eliminate the conflict.</p>
<h2>2. Inline CSS</h2>
<p>Inline styles, styles applied within a HTML document,  win over everything in your stylesheets. They should be avoided like the plague, though, as you don’t want to mix the styles with the content, and having styles in two places is confusing. HTML is concerned with content and CSS is concerned with styling. Let’s let both of those files do their jobs.</p>
<h2>3. IDs</h2>
<script src="http://gist.github.com/f47f11bb0e96aa3a3603.js"></script>
<p>Even though `a.bar` targets a more specific type of link, the specifier with two IDs in the chain will override the first snippet.</p>
<h2>4. Classes</h2>
<p>Yep. Same thing as the IDs. Most of your miscellaneous fancy selectors, `.foo:not(.bar)` for example, also fall into this level of effectiveness. It&#8217;s important to note that selectors containing IDs will always win out over selectors that don’t, so even 100 classes won&#8217;t override an ID. 256 classes will in some browsers, but&#8230; please don&#8217;t do that.</p>
<h2>5. Elements</h2>
<p>For the sake of this discussion, that leaves basic element selectors. </p>
<script src="http://gist.github.com/6d5af7192a8703de8c39.js"></script>
<p>Classes can cut out a lot of the pain that comes with nested elements, so don’t be afraid to name all the things!</p>
<h2>Go Forth and Style!</h2>
<p>Hopefully this gives you a better comprehension of the order of precedence styles take in your projects. With this rough outline, you’ll finally be able to get things looking how you’d like without any extra clutter or conflicts.</p>
<img src="http://feeds.feedburner.com/~r/thephuse/~4/9_f9V_dVKG8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thephuse.com/development/css-specificity-crash-course/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thephuse.com/development/css-specificity-crash-course/</feedburner:origLink></item>
		<item>
		<title>Forming Good Work Habits</title>
		<link>http://feedproxy.google.com/~r/thephuse/~3/wmc3pLOLcdw/</link>
		<comments>http://thephuse.com/business/productivity/forming-good-work-habits/#comments</comments>
		<pubDate>Fri, 29 Mar 2013 15:33:08 +0000</pubDate>
		<dc:creator>Jenna Boese</dc:creator>
				<category><![CDATA[Creativity]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[freelancing]]></category>
		<category><![CDATA[habits]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[remote]]></category>
		<category><![CDATA[tasks]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[to-do lists]]></category>
		<category><![CDATA[todo]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[working from home]]></category>
		<category><![CDATA[working remotely]]></category>

		<guid isPermaLink="false">http://thephuse.com/?p=1972</guid>
		<description><![CDATA[Here are ideas that are especially important if you work from home, but can also help you in any work situation. Stay organized, productive and motivated!]]></description>
				<content:encoded><![CDATA[<p><img src="http://thephuse.com/cms/wp-content/uploads/2013/03/checklist.jpg" alt="checklist with a ticked box and a pen" width="425" height="282" class="alignright size-full wp-image-1987" />More and more people are working from home, trying to strike the ideal balance between work and life. Working from home is a lifestyle adjustment that isn’t always easy, so we’ve previously published <a href="http://thephuse.com/business/productivity/make-working-at-home-work-for-you/" title="Make Working at Home Work for You">some points</a> to help you on the way. Here are some more ideas that are especially important if you work from home, but can also help you in any work situation.</p>
<h2>Stay Organized</h2>
<p>Everyone will find their own system that works best for them, but here’s what I do: to-do lists. Whenever a new task or something to remember pops up, I write it down. I used to keep to-do lists in my head, or not go into as much detail, but putting a bit more in writing clears up brain space for other things, and greatly decreases the likelihood of forgetting something.</p>
<p>Each morning I look at what I can tackle for the day and put those tasks at the top of the list in priority order. It may take a while to learn to gauge how long certain tasks will take for you, but by tracking your time you can get a better feel for it. I usually prioritize by deadline and move tasks around to fit into work hours for the day.</p>
<p>I also keep a simple text file with details (like milestones, logins) for all projects I’m currently on as an overview. The different levels of organization help me keep a big picture view and zoom in for details. Project management apps can do that too, but if you use them with your team or clients, they can get cluttered. Not only does keeping my own lists keep me organized, I find that the simple act of writing things down helps with remembering them.</p>
<h2>Stay Productive</h2>
<p>The best way to be productive is to just do the work. Sounds simple, but sometimes it can be hard. How do you feel when you put off work, or avoid doing things you know you should be doing? You might have the nagging feeling that there is something you should be doing, or something that you are forgetting. The more you put things off, the more the pressure builds. Simple little tasks start to look overwhelming. Procrastination is a downward spiral and, like with any habit, the more you repeat it the harder it is to break. Imagine how good it will be to have the weight your to-do list lifted, and start actually doing those items. Form a new habit of doing, and you will feel happier and healthier.</p>
<p>Sometimes, even with the best of intentions, you may find yourself dreading some important task or wanting to put off work. In that case, I suggest <a href="http://www.lifeclever.com/how-to-procrastinate-more-productively/" title="How to Procrastinate More Productively">productive (or structured) procrastination.</a></p>
<h2>Stay Motivated</h2>
<p><img src="http://thephuse.com/cms/wp-content/uploads/2013/03/Chocolate.jpg" alt="Chocolate rewards" width="770" height="599" class="alignright size-full wp-image-1974" />My daily to-do lists are essentially daily goals. Sometimes I celebrate reaching those goals with little rewards! It doesn’t have to cost money or be something you do every day. For example, a nice warm bubble bath at the end of a long day feels like a reward. Keeping a box of bite-sized chocolates around to snack on after crossing off a to-do works, too.</p>
<p>When you enjoy your work, just knowing you’re doing a good job is enough. Other times, you may give yourself a little push to accomplish things by telling yourself you can have ___ if you complete your tasks. If you have a hard time keeping yourself accountable, enlist the help of a friend or family member.</p>
<hr />
<p>Stay organized, productive and motivated! It sounds simple, but really requires some self-discipline that, if you don’t have, you can learn.</p>
<p>What challenges have you faced regarding working from home or any of the above points? </p>
<img src="http://feeds.feedburner.com/~r/thephuse/~4/wmc3pLOLcdw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thephuse.com/business/productivity/forming-good-work-habits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thephuse.com/business/productivity/forming-good-work-habits/</feedburner:origLink></item>
		<item>
		<title>Effective Collaboration Through Design Audits</title>
		<link>http://feedproxy.google.com/~r/thephuse/~3/6A9eiKEWZbE/</link>
		<comments>http://thephuse.com/design-and-usability/effective-collaboration-through-design-audits/#comments</comments>
		<pubDate>Tue, 26 Mar 2013 15:42:04 +0000</pubDate>
		<dc:creator>Tom Neal</dc:creator>
				<category><![CDATA[Creativity]]></category>
		<category><![CDATA[Design and Usability]]></category>
		<category><![CDATA[audits]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[websites]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://thephuse.com/?p=1992</guid>
		<description><![CDATA[Any breakdown in the communication process could potentially cause disruptions with the client’s timescale and budget, and that’s what should ultimately be avoided.]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/63195643@N00/4184705426/"><img class="size-full wp-image-1993 alignnone" alt="Eyeglass" src="http://thephuse.com/cms/wp-content/uploads/2013/03/eyeglass.jpg" width="640" height="424" /></a></p>
<p>Working on the Internet has many perks. One of them is that we work remotely. The Phuse has team members in Canada, The United States and England, which means we have the ability to work on our own schedules, using our own techniques, in whichever chair we choose to sit.</p>
<p>However, in this line of work, communication is absolutely critical. Taking a project from concept to completion requires a solid connection between all team members. Without a physical office and the ability to shout annoyingly across it to a teammate, we must take great care to ensure our communication is consistent and top-notch. Any breakdown in the communication process could potentially cause disruptions with the client’s timescale and budget, and that’s what should ultimately be avoided.</p>
<blockquote><p>“We are not self-made. We are dependent on one another. Admitting this to ourselves isn&#8217;t an embrace of mediocrity and derivativeness, it&#8217;s a liberation from our misconceptions.” &#8211; Kirby Ferguson</p></blockquote>
<h2>Why Have Audits?</h2>
<p>Our developers have carried out code-audits for a while now. They prove to be extremely useful as it ensures they are using optimal techniques to create a website or application which is built to last. It’s a chance to share, learn and collaborate.</p>
<p>So, if it works so well for them, surely it should work for designers? Therefore we recently started a series of weekly design audits. These are essentially short meetings in which our design group can get together on Skype and share what we have been working on during the past week. We start off by discussing the projects we’ve been hacking on and any problems we may have faced. Then we take turns to share screenshots of design work and ask around for critique. This is in addition to weekly kick-off meetings and an almost constant line of communication whilst working.</p>
<p>This new method of communication allows us to develop our critical thinking and improve the way we express ourselves through other people’s work. Also, as any other web designer will tell you, the longer you work on something, the easier it is to see your design through rose-tinted spectacles. Using another set of eyes gives us the chance to discover potential flaws in our design, which a client or another team-member may not have initially noticed.</p>
<p>This has improved our work process by opening up our own little project eco-systems to the rest of the team. It re-enforces the knowledge that, despite living thousands of miles apart, we can still work together, help each other and enjoy doing what we love the most &#8211; design kickass web stuff!</p>
<img src="http://feeds.feedburner.com/~r/thephuse/~4/6A9eiKEWZbE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thephuse.com/design-and-usability/effective-collaboration-through-design-audits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thephuse.com/design-and-usability/effective-collaboration-through-design-audits/</feedburner:origLink></item>
		<item>
		<title>Metaphor for the Design Process</title>
		<link>http://feedproxy.google.com/~r/thephuse/~3/itxyosjKCQY/</link>
		<comments>http://thephuse.com/business/metaphor-for-the-design-process/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 22:30:55 +0000</pubDate>
		<dc:creator>Matt Herron</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[client services]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[metaphor]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[sales]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://thephuse.com/?p=1964</guid>
		<description><![CDATA[A successful project starts with a complete understanding of the design process on both sides. If you’ve ever had trouble explaining your design process to clients, using a metaphor will help you get to a deep understanding quickly, without having to go into too much confusing technical detail.]]></description>
				<content:encoded><![CDATA[<div id="attachment_1965" class="wp-caption alignright" style="width: 510px"><img class="size-full wp-image-1965" alt=" Global Jet via Compfight cc" src="http://thephuse.com/cms/wp-content/uploads/2013/03/indywinner.jpg" width="500" height="333" /><p class="wp-caption-text"><a href="http://www.flickr.com/photos/28143282@N00/518612529/">Global Jet</a> via <a href="http://compfight.com">Compfight</a> <a href="http://creativecommons.org/licenses/by/2.0/">cc</a></p></div>
<p>A successful project starts with a complete understanding of the design process on both sides. If you’ve ever had trouble explaining your design process to clients, using a metaphor will help you get to a deep understanding quickly, without having to go into too much confusing technical detail.</p>
<p>So far I’ve only found one metaphor that fits. When explaining the design process to clients, I begin by telling them, “We’re the race car, and you’re the driver.” This establishes our roles early in the discussion. The details follow from that.</p>
<p>To swiftly reach a deep understanding, nothing is better than a good metaphor.</p>
<h2>Don’t Bore Them with Details</h2>
<p>In the past, when I wanted to explain the design process to a new client, I dove straight into agile methodologies, <a title="Iterating on Process" href="http://thephuse.com/design-and-usability/iterating-on-process/">the iterative process</a>, <a title="Storytelling, Personas, and How to Improve Your Deliverables" href="http://thephuse.com/design-and-usability/storytelling-personas-and-how-to-improve-your-deliverables/">personas</a>, wireframes vs. mockups, frontend vs. backend, bla bla bla. I could barely listen to myself talk without nodding off!</p>
<p>Now, when a client asks about our process, or what to expect when working with a design studio like The Phuse, I start with the metaphor.</p>
<blockquote><p>“We’re the race car, and you’re the driver.”</p></blockquote>
<p>One short sentence acquaints them with their role in the process. We can then use that as a jumping-off point to elaborate on their understanding.</p>
<p>“We’re the race car.” <em>We</em> keep the project on course. The studio’s purpose, as the vehicle of the driver’s success, is to move us swiftly towards the finish line.</p>
<p>“You’re the driver.” <em>You</em> define the goals. The client’s duty, as the driver of the vehicle, is to define the rules and milestones of the race.</p>
<h2>The Race Car and Driver Metaphor</h2>
<p>To further flesh out the metaphor, here’s a little sketch. I hardly ever repeat this story in its entirety, although I may use a sentence or two as appropriate. Good communication is about going with the flow, not reading from a script.</p>
<p>For the purposes of this article, however, I find it educational to see how well the metaphor matches up with our process.</p>
<blockquote><p>“We’re the sleek exterior, the power steering wheel, the curving headlights illuminating the road’s next bend. We’re the anti-lock breaks, the record-breaking response time, the suspension that absorbs any imperfection in the road.</p>
<p>This automobile is smart. It’s made of many moving parts that all work together. It’s also adaptable—it can change directions with ease and stop on a dime.</p>
<p>But we’re nothing without our clients. Without YOU. You’re the most important part. If we’re the race car, you’re the driver. You tell us which track to drive on and how far to go. We can tell you how many miles (hours) we’re getting per gallon (out of retainer), but it’s your job to put fuel in the tank, turn the key, and step on the gas pedal.</p>
<p>Your goal as driver is to get us to the finish line. We’ll get you there in record time—and with style—but it’s up to you to determine where the race starts, and how to tell when we’ve reached the finish line.</p>
<p>What’s at the finish line? Good question. Your users are there, waiting to admire the work we’ve done together.</p>
<p>And at the finish line, when the MVP meets your users—that’s where the team finds its glory.”</p></blockquote>
<h2>Completing the Circuit</h2>
<p>Nothing beats that car metaphor to convey a full understanding of our respective roles and responsibilities in the project. We want to empower clients, to work with them as a team, which is why the race car metaphor works for us.</p>
<p>We put the client in the driver’s seat, and our job is to take them swiftly and safely to their final destination, but we work best as a team. The best car in the world won’t win the Indy 500 without a capable driver behind the wheel. Similarly, the driver needs a top-notch machine that can handle the curves and carry them across the finish line without breaking down on the way there.</p>
<img src="http://feeds.feedburner.com/~r/thephuse/~4/itxyosjKCQY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thephuse.com/business/metaphor-for-the-design-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thephuse.com/business/metaphor-for-the-design-process/</feedburner:origLink></item>
		<item>
		<title>jQueryTO 2013 Highlights</title>
		<link>http://feedproxy.google.com/~r/thephuse/~3/-41xq6Bp58g/</link>
		<comments>http://thephuse.com/development/jqueryto-2013-highlights/#comments</comments>
		<pubDate>Mon, 04 Mar 2013 02:23:24 +0000</pubDate>
		<dc:creator>Tessa Thornton</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[highlights]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jqueryto]]></category>
		<category><![CDATA[talks]]></category>

		<guid isPermaLink="false">http://thephuse.com/?p=1941</guid>
		<description><![CDATA[jQueryTO just wrapped up in my hometown of Toronto, and though it was my first ever developer conference and I don't have anything to compare it to, I'm pretty sure all that attended would agree it was AWESOME. ]]></description>
				<content:encoded><![CDATA[<p>What a weekend! <a href="http://jqueryto.com">jQueryTO</a> just wrapped up in my hometown of Toronto, and though it was my first ever developer conference and I don&#8217;t have anything to compare it to, I&#8217;m pretty sure all that attended would agree it was AWESOME. I learned more than I&#8217;d ever be able to cover in one blog post, but here are some highlights of what I learned in some of my favourite talks:</p>
<h2>The State Of jQuery—Dave Methvin</h2>
<p>The conference kicked off with jQuery Foundation president Dave Methvin giving his &#8216;State of the Union&#8217; address about jQuery in 2013, which was great timing, since <a href="http://blog.jquery.com/2013/03/01/jquery-2-0-beta-2-released/">jQuery 2.0 Beta 2</a> was just realeased on Friday. Key takeaways:</p>
<ul>
<li>jQuery 2.0 <em>does not</em> support IE 6, 7, or 8. It&#8217;s being developed alongside jQuery 1.x (currently at 1.9.1) and maintains an identical API. They&#8217;re not expecting people to be using jQuery 2.x in production any time soon, but they <em>really</em> would like people to test out the beta!</li>
<li>I&#8217;d somehow never heard of the newish <a href="https://github.com/jquery/jquery-migrate">jQuery Migrate Plugin</a>, which can detect and restore deprecated features that are being referenced in your code when you&#8217;re running 1.9. Though intended as a tool to help you bring your code up to date with jQuery 1.9.x, it will also just patch in missing functionality to save the day if you&#8217;re *<em>gasp*</em> using deprecated functionality like <code>.live()</code> and <code>$.browser</code> (but you&#8217;re not, right?)</li>
<li>jQuery now supports modularized custom builds that can get you down to just 17kb if you can live without Sizzle, animations, event aliases, and css. If you&#8217;re using plugins, don&#8217;t do this, as they most likely depend on something you might exclude.</li>
</ul>
<blockquote><p>That’s right, reject any module in our jQuery reality and substitute your own.<br />
— <a href="http://blog.jquery.com/2013/03/01/jquery-2-0-beta-2-released/">Dave Methvin</a></p></blockquote>
<h2>Hardware Access and Device APIs with JavaScript and HTML5—Wes Bos</h2>
<p>Toronto JavaScript guru Wes Bos gave a fun talk about accessing hardware APIs on mobile devices using JavaScript and HTML5. He talked about speedometer, accelerometer, camera, and file access, and showed us how he built a super cool security/mail camera with a live feed to his computer using WebRTC, node.js, socket.io, and a Nexus S.</p>
<p>It was cool to see how easy it is to access device hardware these days, but my favourite part of Wes&#8217; talk was how cleverly he managed to solve his first-world problem (home office in back of house, mail comes to front of house) using the technology he already had and knew. I&#8217;ve often thought about attempting this kind of project myself, but always thought I&#8217;d need to obtain an Arduino and learn C. Now I&#8217;m planning on turning my old Galaxy S into a next-bus-display in my kitchen using my local transit system&#8217;s API.</p>
<p>Check out the <a href="https://jqueryto.hackpad.com/Hardware-Access-and-Device-APIs-with-JavaScript-and-HTML5-y1RrGP9A8rC">HackPad</a> and the <a href="http://wesbos.com/talks/jqueryto/">slides</a></p>
<h2>Bower and Grunt</h2>
<p>Conveniently, after I spent Friday playing around with <a href="http://yeoman.io/">Yeoman</a>, I attended two talks about two of Yeoman&#8217;s main tools: Ralph Holzmann of Twitter talked about <a href="http://twitter.github.com/bower/">Bower</a> and other client-side package managers, and Dan Heberden gave a talk about <a href="http://gruntjs.com/">Grunt</a> for running tasks. I was already leaning towards trying out these tools for some of my projects, but now I&#8217;m more solidly convinced and feel like I have a good starting point.</p>
<h2>Awesome Chrome Dev Tools</h2>
<p>Paul Irish&#8217;s highly-anticipated &#8220;Front-end Dispora 2013&#8243; talk covered a lot of ground, from CSS selector optimization (hint: don&#8217;t bother) to Chrome&#8217;s new <code>requestAutocomplete()</code> feature. My favourite part of his talk was watching him demo some awesome new and not-so-new features in Chrome&#8217;s dev tools (most only present in Canary). Some favourites:</p>
<ul>
<li>He didn&#8217;t seem to think it was a huge deal, but the &#8216;un-minify&#8217; button got a huge reaction from the crowd, and I&#8217;m pretty excited about it.</li>
</ul>
<div id="attachment_1942" class="wp-caption aligncenter" style="width: 440px"><a href="http://thephuse.com/cms/wp-content/uploads/2013/03/magic.png"><img class="size-full wp-image-1942" alt="This button un-minifies production code!" src="http://thephuse.com/cms/wp-content/uploads/2013/03/magic.png" width="430" height="259" /></a><p class="wp-caption-text">This button un-minifies production code!</p></div>
<ul>
<li>Pressing <strong>H</strong> when you have a DOM element selected in the web inspector will toggle <code>visibility:hidden</code> for the element. This feature is actually present in Chrome Stable, and I&#8217;m sure it&#8217;s going to be super handy</li>
<li>Pressing <strong>?</strong> brings up a list of keyboard shortcuts for dev tools, as well as links to settings</li>
<li>Check out the &#8216;Overrides&#8217; settings: you can play with user agent, as well as set screen resolution and orientation, override geolocation, emulate CSS media types, and emulate touch events with click</li>
<li>Enable dev tools experiments by heading to about://flags, then pick which experiments to try from dev tools settings.</li>
<li>Cool dev tool experiment: Snippets. Snippets gives you a multi-line console to run code within your browser and lets you create and save various named scripts. Once you&#8217;ve enabled Snippets support, you can access your snippets from the Sources panel, in the Snippets tab. Right-click to create a new snippet, then just click &#8216;Run&#8217; to run it. Save a snippet with <strong>CMD+S</strong> from within the editor. You can also run single lines of code within a snippet by highlighting the line, right-clicking, and selecting &#8220;Evaluate in Console&#8221;. Sweet!</li>
</ul>
<div id="attachment_1954" class="wp-caption aligncenter" style="width: 610px"><a href="http://thephuse.com/cms/wp-content/uploads/2013/03/snippets1.png"><img class="size-full wp-image-1954" alt="Create and run multi-line scripts from the browser using Snippets" src="http://thephuse.com/cms/wp-content/uploads/2013/03/snippets1.png" width="600" height="305" /></a><p class="wp-caption-text">Create and run multi-line scripts from the browser using Snippets</p></div>
<ul>
<li>Another experiment he went over was Inspect Canvas. Enable this experimet from dev tools settings, then head over to the Profiles panel and select &#8220;Capture Canvas Frame&#8221; and click &#8220;Start&#8221;. The resulting trace log gives you a play-by-play of all the canvas calls recorded and lets you replay them step-by-step.</li>
</ul>
<div id="attachment_1955" class="wp-caption aligncenter" style="width: 610px"><a href="http://thephuse.com/cms/wp-content/uploads/2013/03/canvas1.png"><img class="size-full wp-image-1955" alt="Inspecting the canvas of a shooting-stars experiment I did. " src="http://thephuse.com/cms/wp-content/uploads/2013/03/canvas1.png" width="600" height="422" /></a><p class="wp-caption-text">Inspecting the canvas of a shooting-stars experiment I did.</p></div>
<h2>Gone in 60 Frames Per Second—Addy Osmani</h2>
<p>Addy Osmani&#8217;s talk about framerates, scrolling performance, and paint/repaint times was worth the price of admission itself, and the many audible gasps and &#8216;wow&#8217;s from the audience suggest I&#8217;m not the only developer whose mind was blown. This talk was a huge eye-opener and will definitely change the way I approach performance. Some key points:</p>
<ul>
<li>Framerate is extermely important not only to site usability and the perception of speed, but also to user engagement. A framerate of about 60 frames per second creates the appearance of a seamless, smooth experience, while lower framerates give you the appearance of &#8216;jank&#8217;, where you can see frames changing. Facebook did tests with lowering the framerate of their native iOS app, and saw user engagement plummet.</li>
<li>Framerates tend to be dramatically lower on mobile devices, so if you&#8217;re hovering just below 60 frames per second on desktop, you&#8217;re likely under on mobile.</li>
<li>Chrome has an advanced selection of tools for visualizing and monitoring framerate, go to the Timeline panel, select Frames, and hit record for a couple seconds. Scroll up and down a bunch to record behaviour, then check out the results.</li>
<li>In the resulting graph, tall, coloured bars indicate your expensive processes. Click on a frame to see what&#8217;s going on, and drill down through the listed events to see what&#8217;s costing you. The most costly events are layout and paint/repaint. Things like resizing and decoding images, recalculating sizes and positions, using some CSS3 properties (box-shadow is shockingly brutal), putting too much JS functionality in your event handlers (especially scroll), and using position:fixed will really kill your framerate and scroll performance.</li>
</ul>
<div id="attachment_1956" class="wp-caption aligncenter" style="width: 610px"><a href="http://thephuse.com/cms/wp-content/uploads/2013/03/timeline1.png"><img class="size-full wp-image-1956" alt="This website's main offenders: costly image resizes " src="http://thephuse.com/cms/wp-content/uploads/2013/03/timeline1.png" width="600" height="336" /></a><p class="wp-caption-text">This website&#8217;s main offenders: costly image resizes</p></div>
<ul>
<li>When you can&#8217;t avoid things like fixed positioning, you can improve performance on desktop by forcing GPU acceleration with null-transform hacks like <code>-webkit-transform: translateZ(0)</code>. <a href="http://aerotwist.com/blog/on-translate3d-and-layer-creation-hacks/">There are a lot of caveats</a> to doing this, and it won&#8217;t help you out on mobile, but it can be handy in some cases.</li>
</ul>
<p>Addy went over much, much more in his talk and covered exactly how to find and fix your performance problems in devtools, and you can read all about it in the <a href="http://dl.dropbox.com/u/70775642/talks/performance/jqueryto/slides/index.html#1">slides for his presentation</a>.The presentation was full of practical advice on debugging and improving performance, and I <em>highly</em> recommend you go through the slides.</p>
<h2>Conclusion</h2>
<p>There were many, many other awesome presentations, and I&#8217;d never be able to summarize all the valuable information I&#8217;ve absorbed over the weekend, but a huge thanks to all the presenters for sharing their vast knowledge. Slides and HackPads for all the presentations shold be posted on the jQueryTO website in a couple days, they&#8217;re all definitely worth a look.</p>
<img src="http://feeds.feedburner.com/~r/thephuse/~4/-41xq6Bp58g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thephuse.com/development/jqueryto-2013-highlights/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://thephuse.com/development/jqueryto-2013-highlights/</feedburner:origLink></item>
		<item>
		<title>You Don’t Need a jQuery Plugin for That</title>
		<link>http://feedproxy.google.com/~r/thephuse/~3/qG2wmpQspDs/</link>
		<comments>http://thephuse.com/development/you-dont-need-a-jquery-plug-in-for-that/#comments</comments>
		<pubDate>Mon, 25 Feb 2013 21:45:28 +0000</pubDate>
		<dc:creator>Tessa Thornton</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[websites]]></category>

		<guid isPermaLink="false">http://thephuse.com/?p=1901</guid>
		<description><![CDATA[While jQuery's extensibility is one of its greatest strengths, and the many brilliant plugins available often solve a lot of problems and open up a world of options to the novice developer, if you're an experienced front-end or back-end developer looking to hack together an interface, plugins are not for you.]]></description>
				<content:encoded><![CDATA[<p>I was recently working on a web app with a very, very clever Rails developer who needed to add a a series of hierarchically nested lists (a &#8216;tree view&#8217;), the deepest level of which contained checkboxes to control the data displayed on a graph. Like most good Rails devs, he thought &#8220;I bet there&#8217;s a Gem for this,&#8221; and 2 minutes later, a monstrosity of third-party scripts and awkward icons were cluttering up our young app.</p>
<p>As it turns out, the functionality he wanted could be added with 6 lines of jQuery (5 lines with CoffeeScript):</p>
<script src="http://gist.github.com/4970028.js"></script>
<p>While jQuery&#8217;s extensibility is one of its greatest strengths, and the many brilliant plugins available often solve a lot of problems and open up a world of options to the novice developer, if you&#8217;re an experienced front-end or back-end developer looking to hack together an interface, <em>plugins are not for you</em>.</p>
<p>jQuery plugins for common interface elements like slideshows, dropdown menus, tabs, and the like are a fantastic resource for beginners and hobbyists trying to add functionality to their websites, but if you think of yourself as a developer, you&#8217;re better than that. jQuery plugins try to be all things to all people, but if you just need a simple tabbed content box, you&#8217;re going to be loading in a lot of code that you&#8217;ll never even use.</p>
<p>If you have a basic understanding of JavaScript DOM manipulation, you can easily roll your own re-usable solution with only a short time investment. The benefits of writing your own jQuery modules are extensive: you&#8217;ll save thousands of lines of code, avoid version compatibilty issues, and dramatically speed up debugging through your familiarity with the code. Write your code flexibly and modularly, save it as a <a href="http://gist.github.com">Gist</a> and next time you need it, you&#8217;ll spend even less time than you would have including and referencing a plugin.</p>
<h2>Some Common Examples</h2>
<p>I keep a library of GitHub Gists that includes snippets of copy-and-pastable jQuery interactivity modules, and using the <a href="https://github.com/bgreenlee/sublime-github">Sublime Text Gist Package</a>, I include them wherever I need them and often share them with coworkers and fellow developers. You&#8217;ll notice that none of these snippets contain any exceptionally clever customization options or fancy CSS. They&#8217;re meant as a baseline to give you the interactivity you need without adding any styling or behaviour you don&#8217;t.</p>
<p>Rather than thinking of these snippets as &#8216;plugins&#8217;, I think of them more as &#8216;modules&#8217;, and try to keep them in my modules.scss and modules.js files for easy debugging and reference.</p>
<h3>Tabs</h3>
<div id="attachment_1908" class="wp-caption aligncenter" style="width: 310px"><a href="http://thephuse.com/cms/wp-content/uploads/2013/02/Screen-Shot-2013-02-16-at-1.31.19-PM.png"><img class="size-medium wp-image-1908" alt="This kind of thing. " src="http://thephuse.com/cms/wp-content/uploads/2013/02/Screen-Shot-2013-02-16-at-1.31.19-PM-300x110.png" width="300" height="110" /></a><p class="wp-caption-text">This kind of thing.</p></div>
<p>Just a simple unordered list with same-page links to the associated divs. Just match the IDs to the hrefs and you&#8217;re good to go.<br />
<script src="http://gist.github.com/4967667.js"></script></p>
<h3>Vertical Accordion</h3>
<p>This one is pretty much exactly the same as the tabs, using the href attribute of a link to target an element.</p>
<p><a href="http://thephuse.com/cms/wp-content/uploads/2013/02/Screen-Shot-2013-02-16-at-1.56.22-PM.png"><img class="size-medium wp-image-1913" alt="Something like this" src="http://thephuse.com/cms/wp-content/uploads/2013/02/Screen-Shot-2013-02-16-at-1.56.22-PM-300x231.png" width="300" height="231" /></a></p>
<script src="http://gist.github.com/4968218.js"></script>
<h3>Multi-Level Navigation</h3>
<p><a href="http://thephuse.com/cms/wp-content/uploads/2013/02/Screen-Shot-2013-02-16-at-1.35.43-PM.png"><img class="size-medium wp-image-1910" alt="Looks sorta like this" src="http://thephuse.com/cms/wp-content/uploads/2013/02/Screen-Shot-2013-02-16-at-1.35.43-PM-300x65.png" width="300" height="65" /></a></p>
<p>Supports up to 2 levels of nested unordered lists, sub-navigation appears on hover, but could easily be altered to work on click with some javascript.<br />
<script src="http://gist.github.com/4968058.js"></script></p>
<h3>Dropdowns</h3>
<p>Just a simple show/hide element attached to a click event. Click the trigger to show the dropdown, then click off the dropdown to hide it.<br />
<script src="http://gist.github.com/4968149.js"></script></p>
<h2>Work Smart Not Hard</h2>
<p>There are many situations in which a jQuery plugin can save you a lot of time dealing with cross-browser compatibilty issues or responsive design, and help keep you under budget when you&#8217;re facing time pressure. For many complex interactions and features, using a plugin is often the most sensible choice. However, if you&#8217;re looking to add some basic interactivity to your project, it doesn&#8217;t hurt to ask yourself a couple questions before dropping in that popular new plugin: could I code this myself in the next 20 minutes? How much of the code in this plugin will I actually be using? How many lines of CSS will I have to override to make this fit into my design?</p>
<p>If you&#8217;ve got some handy little scripts of your own you&#8217;d like to share, link them up in the comments and I&#8217;ll add them to the list!</p>
<img src="http://feeds.feedburner.com/~r/thephuse/~4/qG2wmpQspDs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thephuse.com/development/you-dont-need-a-jquery-plug-in-for-that/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://thephuse.com/development/you-dont-need-a-jquery-plug-in-for-that/</feedburner:origLink></item>
		<item>
		<title>Storytelling, Personas, and How to Improve Your Deliverables</title>
		<link>http://feedproxy.google.com/~r/thephuse/~3/ni_4fpvn-O0/</link>
		<comments>http://thephuse.com/design-and-usability/storytelling-personas-and-how-to-improve-your-deliverables/#comments</comments>
		<pubDate>Fri, 25 Jan 2013 20:07:58 +0000</pubDate>
		<dc:creator>James Costa</dc:creator>
				<category><![CDATA[Design and Usability]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[personas]]></category>
		<category><![CDATA[storytelling]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[ux]]></category>
		<category><![CDATA[websites]]></category>

		<guid isPermaLink="false">http://thephuse.com/?p=1888</guid>
		<description><![CDATA[To avoid the confusion caused by conflicting terminology and unclear roles, we use storytelling as a tool in our design process. What we’ve found is that including storytelling in our mockups improves the communication between us and our clients.]]></description>
				<content:encoded><![CDATA[<p><div id="attachment_1890" class="wp-caption alignright" style="width: 234px"><img src="http://thephuse.com/cms/wp-content/uploads/2013/01/3387024476_a71c857fc6_m.jpg" alt="A storyteller" title="3387024476_a71c857fc6_m" width="224" height="240" class="size-full wp-image-1890" /><p class="wp-caption-text">Photo: <a href="http://www.flickr.com/photos/23837403@N03/3387024476/">Pip R. Lagenta</a> via <a href="http://compfight.com">Compfight</a> <a href="http://creativecommons.org/licenses/by/2.0/">cc</a></p></div>A while ago I wrote <a href="http://www.uxbooth.com/articles/personas-putting-the-focus-back-on-the-user/" title="Personas: Putting the Focus Back on the User">an article for my friends at UX Booth</a> that discussed the importance of personas in user experience practices, and how simply using personas in design can improve the user experience drastically. After writing that article I realized that just creating personas and bringing them into design discussions isn’t enough to make the most of them.</p>
<p>Personas get complicated very quickly as different types of users are added with different objectives. This complexity makes it tough for designers and clients to be on the same page in conversations and leads to a great deal of confusion as the project evolves.</p>
<p>To avoid this confusion, we started using storytelling as a tool. What we’ve found is that including storytelling in our mockups improves the communication between us and our clients.</p>
<p>By using storytelling, we’re creating a consistency between words and images that has allowed both clients and designers to be specific about what is being shown for who, ask relevant questions about specific user types, and be show precisely how changes to the design can affect users’ decisions. But before we do any of this, we need to make sure we’ve got the terminology clear so there isn’t any confusion.</p>
<h2>Terminology: Laying the groundwork</h2>
<p>When scoping out a project, we make sure to know who will be accessing it. Everything we can find out, from demographical information like age and gender, to usability information like device and access point is collected. </p>
<p>We also make note of a user’s objectives based on their role. For example, is the user selling an item, or are they shopping? Defining these roles early is important because it gives us insight into functionality that needs to be sorted out in the work we’re doing.</p>
<p>Once we know the different roles and objectives, defining them with consistent terminology is something we advocate strongly with our clients. In personas this means names for different users (“Joe Seller” and “Bob Buyer”), but this can be as simple as “Buyer” and “Seller”. The majority of our team’s communication with clients is over Basecamp messages, so getting this terminology down right away makes everyone’s lives easier. Not to mention if a client asks to see what a “Seller” sees when they access a dashboard, our designer knows right away what the client is referring to.</p>
<p>Having different people refer to the same role in two different ways or referring to the same page in multiple terms is when things get confusing. Right at the point of confusion we pause and get the terminology clear. Forcing everyone to stop and do this makes everyone sharpen up. Most times we only need to have this happen once in any project for everyone to remember that other people need to understand what they’re saying.</p>
<p>An example of this on a recent project we’ve been working on was the terminology between Learning Events and Learning Materials. Learning Events were “containers” that held Learning Materials. Having these two terms thrown around in conversations while defining hierarchies and looking for iterations to designs got messy initially. After defining them properly across the team, we were able to better understand the needs of the users, as well as engage in understandable conversations with our clients.</p>
<p>Even better, on that same project: Classes and Courses mean different things in the UK than they do in Canada and the U.S., so defining even what would seem like the simplest things can help avoid confusion down the road.</p>
<h2>Storytelling: Putting designs in the real world</h2>
<p>A good designer is a good storyteller. And like any good storyteller, referencing imagery in the text is important. Usually this is done by explaining interactions or thoughts, but tying in personas to designs to explain how the user would complete an action is powerful. By simply integrating personas into your designs and delivering them using proper terminology and making reference to the personas, suddenly they’re relevant.</p>
<p>We can do this by using the personas’ names in designs (e.g. if you’re creating a profile for a Buyer, use “Bob Buyer” and stay consistent for all pages related to Bob’s experience), and referencing the terminology we’ve all agreed on in the designs. Now when clients see Bob Buyer’s face and name, they know right away that the screen was designed for Buyers.</p>
<p>Using storytelling as a tool improves how clients perceive our designs by making sure more complex concepts are broken down into digestible chunks. When clients come with drawings of the way they imagine things to work, it can be tough to explain to them that there are better ways of completing a certain task. But by using storytelling, the client is forced to stand in the shoes of their users and imagine their path to complete that same task.</p>
<h2>Delivery: Making designs make sense</h2>
<p>All of the above is about execution, and the combination of the two strategies (personas and storytelling) to make designs make sense. Weaving both design and explanation together allows our designs to have their own stories and be more than just bullets on a page. When problems arise in design, things can be explained in a straightforward way by making reference to the personas and terminology created so that it can be understood in the design.</p>
<p>These stories help shape the user’s experience because everyone isn’t just focused on getting all of the elements on the page: they’re focused on creating something that is well thought-out and intuitive for the users.</p>
<h2>Bringing it all together</h2>
<p>While this article references the importance of storytelling with special regards to distributed teams, this is equally as important in a product-driven team, and teams that are working alongside their clients. Whether you’re delivering your designs in a project management tool like we are, over email or in a boardroom, how you explain your designs determines the kind of feedback you’ll receive.</p>
<p>By adding storytelling to your discussions and making use of personas in them, you allow terminology that you’ve created to be used and live throughout the design process. Breaking things down in steps is important for any team, and how you bring it together towards delivery is crucial to a smooth project.</p>
<img src="http://feeds.feedburner.com/~r/thephuse/~4/ni_4fpvn-O0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thephuse.com/design-and-usability/storytelling-personas-and-how-to-improve-your-deliverables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thephuse.com/design-and-usability/storytelling-personas-and-how-to-improve-your-deliverables/</feedburner:origLink></item>
		<item>
		<title>You Are Who You Hire</title>
		<link>http://feedproxy.google.com/~r/thephuse/~3/-A7sAwyDrKM/</link>
		<comments>http://thephuse.com/business/you-are-who-you-hire/#comments</comments>
		<pubDate>Wed, 05 Dec 2012 20:12:26 +0000</pubDate>
		<dc:creator>James Costa</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[consistency]]></category>
		<category><![CDATA[creative]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[people]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[team]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://thephuse.com/?p=1879</guid>
		<description><![CDATA[Hiring isn’t just about bottom lines and getting work done, it’s about raising the bar in your work and maintaining trust with your clientele.]]></description>
				<content:encoded><![CDATA[<p>For the past year or so I&#8217;ve been going to a hair salon that opened across the street from my condominium building. On my first visit the owner of the salon was my hairdresser, and after the successful transformation of “bed head” to something a little more Ryan Gosling-looking, I knew I was in the right place.</p>
<p><div id="attachment_1880" class="wp-caption alignright" style="width: 224px"><img src="http://thephuse.com/cms/wp-content/uploads/2012/12/ryan-goslingjames.jpg" alt="" title="Ryan Gosling has awesome hair" width="214" height="314" class="size-full wp-image-1880" /><p class="wp-caption-text">James&#8217; hair looks like this.</p></div>This past weekend I got a chance to go to the same salon and a completely new hair dresser was waiting for me. I grinned and bared through it, and was once again pleasantly surprised. You see, over the course of the year I’d had different hairdressers as the salon grew. And each time I got a new person, I realized that they not only did a great job, but they consistently did an even better job than the owner.</p>
<p>Like most other people, I get nervous with the thought of new hairdressers as the negative effects (e.g. terrible looking hair) are things you have to live with for weeks afterwards. Finding a good hairdresser for most of us is not only tough, but takes a lot of trust. I couldn’t tell you how much money I’ve spent at high-end salons to get my hair done, still never finding a place that did a consistently good job.</p>
<p>It started getting me to think about the position I was in <a href="http://thephuse.com/business/how-the-phuse-hires/" title="How The Phuse Hires">hiring people for The Phuse</a>, and how meticulous small businesses especially have to be when selecting the people they hire to do the work they do. Hiring isn’t just about bottom lines and getting work done, it’s about raising the bar in your work and maintaining trust with your clientele.</p>
<p>When I first started The Phuse, I was the sole designer and front end developer, and clients not only knew who I was, but had my personal phone number and full trust that I would do the best job out there. Every hire I made past that point was an extension of the work I was doing, and as such I had (and continue to have) a very important responsibility in choosing the right people.</p>
<p>Every hire we make at The Phuse is as much a reflection of ourselves as the work we produce. We&#8217;re super picky about who we hire because we know our clients expect a consistently high standard from us. Our clients are buying into the trust they have of the leadership of the company as much as the work we&#8217;ve done in the past, and we don&#8217;t take that for granted.</p>
<p>Sitting down at the salon afterwards to get my eyebrows waxed (I&#8217;m Portuguese, I have bushy eyebrows, don&#8217;t judge me), I noticed a lady who came in and refused to have the new hairdresser touch her hair, and it made me realize how lucky we are to have clients who trust us.</p>
<p>We know when clients come to us they have a certain level of nervousness. They’re working with a team that they truly believe will determine a part of their product or service’s success or failure and are spending money out of their (or their investors’) pockets that they need to be careful with. Building trust is an important part of the work we do and it starts from the first experience the client has with us.</p>
<p>We’re strong believers that the best form of marketing we do is by doing amazing work for our clients, so when the people they refer to us walk through our virtual doors they already have built trust. Throughout our process we don’t take this for granted as we know when working with a distributed team, trust is crucial to a successful execution of our process. Little things like having kickoff calls with the team or setting expectations on timezones and feedback loops show that we believe as much in what they’re doing as they believe in us.</p>
<p>We don’t hire “B” team members that we put on smaller, less important projects because every project we work on is as important as the next. We take the quality of our work seriously because that’s what we know our clients want. Therefore, hiring is just as important—if not more so—than the work we do every day. If we didn’t do it properly, we would not only have gaps in our process but have issues throughout it with quality and everything else. Our work is a reflection of the quality of the people we hire, and as long as we continue to have referrals I know we’re doing it right.</p>
<p>So as we hire more and more frequently with the amazing growth we’ve seen throughout the last year, I know I’ll always think back to my friendly neighborhood hair salon and the owner who really knows what she’s doing, because I <em>love</em> my Ryan Gosling hair.</p>
<img src="http://feeds.feedburner.com/~r/thephuse/~4/-A7sAwyDrKM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://thephuse.com/business/you-are-who-you-hire/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thephuse.com/business/you-are-who-you-hire/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.398 seconds. --><!-- Cached page generated by WP-Super-Cache on 2013-05-14 21:58:51 -->
