<?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/" version="2.0">

<channel>
	<title>Darren Hoyt Dot Com</title>
	
	<link>http://www.darrenhoyt.com</link>
	<description>A Blog, Portfolio and Personal Website</description>
	<lastBuildDate>Wed, 10 Mar 2010 16:40:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/darrenhoytcom" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="darrenhoytcom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><link>http://www.darrenhoyt.com/</link><url>http://www.darrenhoyt.com/imagedump/feedimage.jpg</url><title>Darren Hoyt Dot Com</title></image><item>
		<title>Obama Theme, Republican Candidate</title>
		<link>http://www.darrenhoyt.com/2010/03/10/obama-theme-republican-candidate/</link>
		<comments>http://www.darrenhoyt.com/2010/03/10/obama-theme-republican-candidate/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 16:39:00 +0000</pubDate>
		<dc:creator>Darren</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.darrenhoyt.com/?p=2080</guid>
		<description><![CDATA[Today <a href="http://www.geofffox.com/MT/archives/2010/03/09/what-my-facebook-friend-running-for-congress-probably-didnt-know-until-now.php">Geoff Fox</a> tipped me off to something ironic: <a href="http://novakforcongress.com/">the website for Republican congressional candidate Daria Novak</a> is using <a href="http://www.darrenhoyt.com/2008/03/11/a-wordpress-theme-for-barack-obama-supporters/">a WordPress theme</a> I designed back in 2008 for Obama supporters.]]></description>
			<content:encoded><![CDATA[<div id="featured">
<p>Today <a href="http://www.geofffox.com/MT/archives/2010/03/09/what-my-facebook-friend-running-for-congress-probably-didnt-know-until-now.php">Geoff Fox</a> tipped me off to something ironic: <a href="http://novakforcongress.com/">the website for Republican congressional candidate Daria Novak</a> is using <a href="http://www.darrenhoyt.com/2008/03/11/a-wordpress-theme-for-barack-obama-supporters/">a WordPress theme</a> I designed back in 2008 for Obama supporters.</p>
</div>
<p><a class="noborder" href="http://www.geofffox.com/MT/archives/2010/03/09/the-probama-saga-small-changes.php"><img src="http://www.darrenhoyt.com/wp-content/uploads/probama.gif" alt="Image courtesy of Geoff Fox" title="probama" width="580" height="266" class="size-full wp-image-2084" /></a></p>
<p>What&#8217;s interesting is that soon after <a href="http://www.geofffox.com/MT/archives/2010/03/09/what-my-facebook-friend-running-for-congress-probably-didnt-know-until-now.php">Geoff made the observation</a>, Novak&#8217;s web team <a href="http://www.geofffox.com/MT/archives/2010/03/09/the-probama-saga-small-changes.php">removed all references to Obama</a> from the CSS and templates, even changing the name of the /theme/ directory.</p>
<p>Keep in mind, Novak is a candidate <a href="http://libertycandidates.org/node/4">who previously said</a>:</p>
<blockquote><p>Obama is the most dangerous official in our history, in my opinion. He is a globalist, an elitist and appears to be trying to drag this great nation down until it resembles a third world country.</p></blockquote>
<p>But to look at the bigger picture, <strong>should the theme out of context really matter?</strong> Geoff wrote:</p>
<blockquote><p>I knew Ms Novak (or any Republican candidate) wouldn’t want to be associated with anything having anything to do with Barack Obama no matter how tenuous the connection&#8230;What she was using was well designed and suited her (and I assume approved by her)–it just made a positive reference to Obama.</p>
<p>Why does that mere fact make it bad?</p></blockquote>
<p>Fair enough. No reason design elements from a Pro-Obama theme can&#8217;t reasonably be remixed for an anti-Obama candidate&#8217;s purposes. The result is invisible to most visitors, save for those like Geoff who peek at the source code.</p>
<p>But if the point is to remove yourself from any Obama associations, why not choose a different WordPress theme altogether? Why knowingly choose a widely-distributed theme that plenty of bloggers already associate with Obama?  </p>
<p>As Geoff mentions, it shouldn&#8217;t matter necessarily&mdash;but evidently it <strong>did</strong> to Novak&#8217;s web team, who made extra efforts to cover it up.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.darrenhoyt.com/2010/03/10/obama-theme-republican-candidate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dribbble, Meritocracy and the Open Web</title>
		<link>http://www.darrenhoyt.com/2010/03/09/dribbble-meritocracy-and-the-open-web/</link>
		<comments>http://www.darrenhoyt.com/2010/03/09/dribbble-meritocracy-and-the-open-web/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 16:25:03 +0000</pubDate>
		<dc:creator>Darren</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.darrenhoyt.com/?p=1960</guid>
		<description><![CDATA[Last month I was lucky to be drafted  into <a href="http://dribbble.com">Dribbble</a> by a fellow designer. It's a private beta site with a lot of buzz. It will eventually grow and go public which got me thinking about the ramifications.]]></description>
			<content:encoded><![CDATA[<div id="featured">
<p>Last month I was lucky to be drafted  into <a href="http://dribbble.com">Dribbble</a> by a fellow designer. It&#8217;s a private beta site with a lot of buzz. It will eventually grow and go public which got me thinking about the ramifications.</p>
</div>
<p>If you haven&#8217;t heard about it, Dribbble is a community created last year by <a href="http://simplebits.com">Dan Cederholm</a> and <a href="http://thornett.com/">Rich Thornett</a>. Designers can upload and share 400&#215;300 samples of whatever they&#8217;re working on, kind of a visual corollary to Twitter&#8217;s &#8220;<a href="http://blog.twitter.com/2009/11/whats-happening.html">What&#8217;s happening?</a>&#8221; Just like Twitter, you can follow others&#8217; updates, comment on their work, mark favorites, and view the whole thing in a stream: </p>
<p><img class="blogpic" src="http://www.darrenhoyt.com/wp-content/uploads/dribbble.png" alt="dribbble" title="dribbble" width="500" height="581" class="aligncenter size-full wp-image-1976" /></p>
<h2>Notes about Dribbble</h2>
<ul>
<li><strong>Uploads</strong>. There&#8217;s a basketball theme so it counts as a &#8220;shot&#8221; on goal every time you upload something. 20 shots per month are allowed. Most are &#8220;leaks&#8221; or sneak peeks of upcoming design projects. You can also make &#8220;rebounds&#8221; which are visual responses to others&#8217; designs.</li>
<li><strong>Streams</strong>. You can filter shots according to People You Follow, Most Popular, or Everything at once. This means that no matter how big it gets, you still have control over what you see. But there are downsides too, discussed below.
<li><strong>Quantity</strong>. There are currently about 1000 members.</li>
<li><strong>Quality</strong>. The quality of designs on Dribbble is very very high. Nearly everything in my stream makes me click to view the details. Most any shot gets favorited a handful of times. I&#8217;m currently following 70 designers, almost 10% of Dribbble&#8217;s whole user base.
<p>True, you can&#8217;t deduce much from 400px crops.  You don&#8217;t have insight into the projects they&#8217;re for. Many things can look great out of context but still not serve their project well. But there&#8217;s something addictive about seeing the sheer variety of styles in all these designers. So in terms of quantity and quality, Dribbble has them both in spades.</p>
<li><strong>Discovery</strong>. Dribbble has also introduced me to designers who are seemingly unknown in the blogging and Twitter world. Yet looking deeper into their work, it&#8217;s better than nearly anything you&#8217;ll find from the A-list designers we all follow.
<li><strong>Discussion</strong>. Because the crops are small and somewhat inconclusive, Dribbble isn&#8217;t always ideal for workshopping an idea. Discussion is about 95% compliments, which is great for designer self-esteem, but doesn&#8217;t do much for critical thinking or the mutual back-patting that folks like <a href="http://maxvoltar.com/archive/stop-being-so-fucking-polite">Tim Van Damme noticed</a> has gone on way too long in our industry.
<p>At the same time, certain feedback from a few great designers can open your eyes. It recently gave me the confidence to try out a radically new masthead idea for a project, which got approved by the client, against the odds. </li>
<li><strong>Openness</strong>. There are currently no third-party services or APIs until beta testing is complete.</li>
<li><strong>Privacy</strong>. I spoke with <a href="http://simplebits.com">Dan</a> this week who mentioned the public Dribbble will be visible to the public, but membership is required for participation. Facebook-style privacy filtering is not yet in the cards.</li>
</ul>
<h2>Intimacy</h2>
<p>Finding intimacy among groups of friends and colleagues online isn&#8217;t always about limited numbers. Sometimes it&#8217;s just a matter of finding the <strong>right people</strong>. But once you&#8217;ve found an intimate place, how long can it last?</p>
<p>At some point in 2008-2009 everyone I&#8217;ve met in my entire 35 years got a Facebook account. Instead of trusted recent friends, my circle expanded to acquaintances from high school. People who I never intended on re-establishing contact  were now privy to my every silly status update. I got self-conscious and had to create filters so that certain people didn&#8217;t get certain updates. This idea of <strong>relationship-filtering</strong> will continue being an uncomfortable part of our lives as social media grows.</p>
<p>Currently, Dribbble feels pretty intimate. Among the nearly 1000 members, there are still clusters of friends that form little subgroups. Within your trusted circle, you can be yourself and post private/client work without worrying much about it.</p>
<p>This intimacy is important as many of us designers spend our time maintaining an airtight wall of professionalism on our personal/portfolio sites. We publish only the most pixel-perfect portfolio samples. We still use the royal &#8220;we&#8221; when describing the work done at our one-man design studios. The web allows us to contrive whatever identity we want for ourselves. </p>
<p><strong>Dribbble is a nice escape.</strong> You can be loose and be yourself. It&#8217;s more personal. There is no veil of professionalism. Because it is private, people post wacky stuff they might not share otherwise. There is less noise, more focus. You don&#8217;t feel lost in the shuffle.</p>
<p>Currently only a select group can offer invites and &#8220;draft&#8221; others into Dribbble. But eventually there will be more. And then&#8230;.</p>
<h2>The Public Dribbble</h2>
<p>Some questions that come to mind:</p>
<ul>
<li>Will the feeling of intimacy disappear when Dribbble expands?</li>
<li>Will the signal-to-noise ratio suffer?</li>
<li>Will users feel less private and start thinking twice about what they post, re: client work and privacy?</li>
<li>Will users feel obligated or subconsciously guilted into following people who follow them, as with Twitter? Will their stream become diluted, and eventually, less useful? Will Dan need to build in relationship filtering, like with Facebook?</li>
</ul>
<p>It&#8217;s natural to get protective over an online community when you sense it&#8217;s changing. Same with bands and companies and media sources&mdash;there&#8217;s an impression that <strong>once they get big, they start to suck</strong>. Sometimes it feels genuinely true. Sometimes it&#8217;s a myth that the magic has gone. Sometimes, it&#8217;s you yourself that has mentally moved on.</p>
<p>Back in 2002, the <a href="http://metafilter.com">MetaFilter</a> community experienced a popularity surge. Up to that point, MeFi conversations had a reputation for being meaty and substantial. Users were overwhelmingly a smart bunch. There were lots of in-jokes and meetups. The mods closed memberships for awhile. When they opened them again, charging $5 for a membership, there were surges of new members. In the next few years, the site  went from 10,000 to 60,000. Loyal community members complained that the level of conversation had changed and too many newbs spoiled the experience.</p>
<p>On the surface, that sounds like a snobby and short-sighted reaction. Should communities <strong>perpetually expand</strong> to include everyone? What happens if they don&#8217;t?</p>
<p>I&#8217;m curious what would happen if Dribbble went the Metafilter route and &#8220;pre-qualified&#8221; many of their existing members while slowly allowing in additional members for a small price, reminding people with that $5 fee that what they&#8217;re getting is not <strong>Just Another Social Network</strong>. <a href="http://suemedha.wordpress.com/2010/02/05/conversation-with-metafilter-founder-matt-haughey/">Metafilter&#8217;s successful model</a> has done wonders for that site&#8217;s manageability. It would be a monetary reminder that Dribbble is not for spamming, causing trouble, and so on.</p>
<h2>Merit Systems and The Open Web</h2>
<p>Any follower of Dan Cederholm knows his reputation as a very nice guy and brilliant designer. I doubt anyone believes he envisions  Dribbble as an ivory tower where elite designers interact  without sharing with the greater public. </p>
<p>Granted, the only invites in Dribbble&#8217;s early days were given to the top designers in the industry. Judging from comments of non-members, there was a perception of exclusivity, though really this crowd was simply beta-testing. I sympathize with Dan trying to make this distinction clear to the general public.</p>
<p>In the real world, there are exclusive restaurants, prestigious universities, private clubs and other institutions that require money, merits or influence to even gain acceptance. No one is trying to hide it&mdash;<strong>exclusivity is the entire point</strong>. Those institutions seek small numbers of like-minded people to qualify based on stringent standards. Some charge them with elitism.</p>
<p><strong>The web is a  different animal.</strong> Many services and communities are free and don&#8217;t require application, unlike universities. Can you imagine YouTube telling you you couldn&#8217;t use their software because your father was not a YouTube user and, considering the poor quality of your videos, you<strong> just weren&#8217;t YouTube material?</strong> The internet in 2010 has such a strong philosophical undercurrent of populism and open access, the idea of &#8220;applying&#8221; to a website is unthinkable.</p>
<p>Many think forward progress depends on the philosophies of the Open Web. Namely, sites should aspire to be transparent, decentralized, hackable and accessible to all. These notions are so overwhelmingly supported by pundits, I sympathize with the pressure anyone feels to abide by them, especially when trying to keep a community small and retain its intimacy. </p>
<p>In order to be all-inclusive while maintaining quality, there need to be more <strong>faders, filters and switches to tune your web experience</strong> more finely, or people will abandon ship and go elsewhere.</p>
<h2>Maintaining Control</h2>
<p>Just to be clear, I don&#8217;t want to imply the sky is falling when sites like Dribbble go public. And I&#8217;m not saying it&#8217;s net loss for the design community if the quality control at Dribbble gets a little muddy and the site becomes hard to sift through and feels a little less special. </p>
<p>Also I don&#8217;t think anyone consciously wants to discourage new, young designers from participating. But it is tough to reckon masses of people joining <strong>just to join</strong>. Following others, not because they&#8217;re fans of their design, but in hopes of being followed&mdash;joining for all the wrong reasons.</p>
<p>Think of when you get a new Twitter follower. You view their profile and see they&#8217;re also following 35,000 other people. They are clearly not there to exchange information or make intimate relationships. They&#8217;re <strong>serial networkers</strong>. They want a microphone and a gigantic audience. When they follow others, it&#8217;s merely an overture <strong>for you to follow them back</strong>. Which I never do. I would hate to see this kind of mentality invade Dribbble.</p>
<p>I think I&#8217;m just having a reaction to the general loss of control. This is why tools like <a href="http://lab.arc90.com/experiments/readability/">Readability</a> get created. A more calm web experience. More raw content. Less compulsive networking and and &#8220;me-too!&#8221; commenting. <strong>Smaller tribes</strong> rather than one tidal wave of unfiltered humanity.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.darrenhoyt.com/2010/03/09/dribbble-meritocracy-and-the-open-web/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Animal Collective</title>
		<link>http://www.darrenhoyt.com/2010/02/21/animal-collective/</link>
		<comments>http://www.darrenhoyt.com/2010/02/21/animal-collective/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 23:42:57 +0000</pubDate>
		<dc:creator>Darren</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://www.darrenhoyt.com/?p=2061</guid>
		<description><![CDATA[A photo my wife and I took and blogged about respectively reached its peak of internet fame before completing its life-cycle and appearing on a Tumblr making fun of bad tattoos.
]]></description>
			<content:encoded><![CDATA[<p>A photo my wife and I took and <a href="http://www.darrenhoyt.com/2008/09/01/all-the-way-down/">blogged about</a> <a href="http://www.onestarwatt.com/?p=467">respectively</a> reached its <a href="http://www.darrenhoyt.com/2009/01/07/update-spider-frog-and-turtle/">peak of internet fame</a> before completing its life-cycle and appearing on <a href="http://loltatz.wordpress.com/2010/02/19/they-make-good-music/">a Tumblr making fun of bad tattoos</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.darrenhoyt.com/2010/02/21/animal-collective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TrustoCorp</title>
		<link>http://www.darrenhoyt.com/2010/02/13/trustocorp/</link>
		<comments>http://www.darrenhoyt.com/2010/02/13/trustocorp/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 06:44:38 +0000</pubDate>
		<dc:creator>Darren</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://www.darrenhoyt.com/?p=2027</guid>
		<description><![CDATA[No one knows if TrustoCorp is more than one person, but s/he/it makes street art in the form of signage which I recently spotted on Houston Street in NYC. 
]]></description>
			<content:encoded><![CDATA[<p>No one knows if TrustoCorp is more than one person, but <a href="http://www.flickr.com/groups/trustocorp/pool/">s/he/it makes street art in the form of signage</a> which I recently spotted on Houston Street in NYC. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.darrenhoyt.com/2010/02/13/trustocorp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>World’s Most Influential Designers</title>
		<link>http://www.darrenhoyt.com/2010/02/10/worlds-most-influential-designers/</link>
		<comments>http://www.darrenhoyt.com/2010/02/10/worlds-most-influential-designers/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 20:10:43 +0000</pubDate>
		<dc:creator>Darren</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://www.darrenhoyt.com/?p=2025</guid>
		<description><![CDATA[Business Week profiles &#8220;27 luminaries who represent a diverse cross-section of design disciplines&#8221;.
]]></description>
			<content:encoded><![CDATA[<p><em>Business Week</em> <a href="http://images.businessweek.com/ss/10/02/0201_worlds_most_influential_designers/index.htm">profiles</a> &#8220;27 luminaries who represent a diverse cross-section of design disciplines&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.darrenhoyt.com/2010/02/10/worlds-most-influential-designers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>InstantWatcher</title>
		<link>http://www.darrenhoyt.com/2010/02/07/instantwatcher/</link>
		<comments>http://www.darrenhoyt.com/2010/02/07/instantwatcher/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 07:09:04 +0000</pubDate>
		<dc:creator>Darren</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://www.darrenhoyt.com/?p=1994</guid>
		<description><![CDATA[If you need suggestions for Netflix movies and are set up to stream, InstantWatcher aggregates from NY Times and Rotten Tomatoes, and breaks them down by genre. 
]]></description>
			<content:encoded><![CDATA[<p>If you need suggestions for Netflix movies and are set up to stream, <a href="http://instantwatcher.com/">InstantWatcher</a> aggregates from NY Times and Rotten Tomatoes, and breaks them down by genre. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.darrenhoyt.com/2010/02/07/instantwatcher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ChatRoulette</title>
		<link>http://www.darrenhoyt.com/2010/02/06/chatroulette/</link>
		<comments>http://www.darrenhoyt.com/2010/02/06/chatroulette/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 02:14:08 +0000</pubDate>
		<dc:creator>Darren</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://www.darrenhoyt.com/?p=1961</guid>
		<description><![CDATA[After an afternoon spent on ChatRoulette, Sam Anderson of NYMag, felt &#8220;socially trampled, excluded and e-viscerated&#8221;. This is a social web I&#8217;m not ready for.
]]></description>
			<content:encoded><![CDATA[<p>After an afternoon spent on <a href="http://chatroulette.com/">ChatRoulette</a>, <a href="http://nymag.com/news/media/63663/">Sam Anderson of NYMag</a>, felt &#8220;socially trampled, excluded and e-viscerated&#8221;. This is a social web I&#8217;m not ready for.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.darrenhoyt.com/2010/02/06/chatroulette/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design Versatility</title>
		<link>http://www.darrenhoyt.com/2010/01/07/design-versatility/</link>
		<comments>http://www.darrenhoyt.com/2010/01/07/design-versatility/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 20:23:04 +0000</pubDate>
		<dc:creator>Darren</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.darrenhoyt.com/?p=1933</guid>
		<description><![CDATA[At the beginning of each new year, I do some navel-gazing about where I should be career-wise. I look over my portfolio and take note of things I could have done differently.]]></description>
			<content:encoded><![CDATA[<div id="featured">
<p>At the beginning of each new year, I do some navel-gazing about where I should be career-wise. I look over my portfolio and take note of things I could have done differently.</p>
</div>
<p>This year I designed for some new platforms (iPhone, Symfony) that interested me. I considered whether I should learn to design on platforms which <strong>don&#8217;t</strong> interest me to diversify my skills or surprise myself. </p>
<p>I also considered whether it was smarter to market myself as a designer of WordPress-based sites, specifically, or a jack-of-all trades open to anything. I thought about what clients like to see in a portfolio vs. what I wanted to show. </p>
<p>One question I wonder each year is this:</p>
<h3><em>Is it more attractive when designers can&#8230;</em></h3>
<p><strong>a) design like a chameleon in any style or genre appropriate to the project</strong>, or<br />
<strong>b) design over a period of years in a consistent, signature style</strong></p>
<p>What designers out there qualify for each of these categories? Which marry the two effectively? I&#8217;d love to know what others think, from the perspective of both fellow designers and people who have been in a client&#8217;s position.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.darrenhoyt.com/2010/01/07/design-versatility/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Complication</title>
		<link>http://www.darrenhoyt.com/2009/12/29/complication/</link>
		<comments>http://www.darrenhoyt.com/2009/12/29/complication/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 05:05:22 +0000</pubDate>
		<dc:creator>Darren</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://www.darrenhoyt.com/?p=1915</guid>
		<description><![CDATA[How do you explain a truly disruptive band like The Monks? Someone played them for me back in college and I refused to believe they&#8217;d existed in 1965. 
]]></description>
			<content:encoded><![CDATA[<p>How do you explain a truly <a href="http://www.youtube.com/watch?v=rwO71Jfz0Z4">disruptive band like The Monks</a>? Someone played them for me back in college and I refused to believe they&#8217;d existed in 1965. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.darrenhoyt.com/2009/12/29/complication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating Custom WordPress Widgets</title>
		<link>http://www.darrenhoyt.com/2009/12/22/creating-custom-wordpress-widgets/</link>
		<comments>http://www.darrenhoyt.com/2009/12/22/creating-custom-wordpress-widgets/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 18:26:41 +0000</pubDate>
		<dc:creator>Darren</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.darrenhoyt.com/?p=1830</guid>
		<description><![CDATA[With each new version of WordPress, the argument whether or not it qualifies as a CMS gets a little quieter. 
In the WordPress core we have widgets, custom fields, custom taxonomies, and with version 2.9, an expansion of get_post_type. Add a few plugins and all sorts of post-types and custom write panels become a reality.
All [...]]]></description>
			<content:encoded><![CDATA[<p>With each new version of WordPress, the argument <strong>whether or not it qualifies as a CMS</strong> gets a little quieter. </p>
<p>In the WordPress core we have <strong>widgets, custom fields, custom taxonomies</strong>, and with version 2.9, an expansion of <a href="http://codex.wordpress.org/Function_Reference/get_post_type">get_post_type</a>. Add a few plugins and all sorts of <a href="http://www.kevinleary.net/6-ways-to-create-custom-write-panels-in-wordpress/">post-types and custom write panels</a> become a reality.</p>
<p>All this functionality is great so long as you, the developer, implement it in a way that is <strong><a href="http://www.darrenhoyt.com/2008/10/21/wordpress-as-a-cms-making-your-content-unbreakable/">tough to break</a></strong>. Because once in the hands of the client, anything goes.</p>
<h2>Flexible Layout</h2>
<p>Then there is the issue of layout. For clients, moving content from one column to the other can be a technical hurdle, particularly for dynamic sites which rearrange content frequently to satisfy advertisers, audience demands, and so on. </p>
<p>Default drag-and-drop widgets are a great part of our arsenal, but adding your own <strong>custom widgets</strong> can really make life simpler for both developer and client.</p>
<h2>Example Custom Widgets</h2>
<p>In the quest to give more control to end users, <a href="http://prothemedesign.com">Pro Theme</a> has been experimenting with more custom widgets. Check out the demo for themes like <a href="http://demo.prothemedesign.com/wordpress/thelocal">The Local</a> and <a href="http://demo.prothemedesign.com/wordpress/elemental">Elemental</a> for examples. </p>
<p><a href="http://demo.prothemedesign.com/wordpress/thelocal"><img class="blogpic aligncenter" src="http://darrenhoyt.com/images/blog/thelocal.png" alt="the local theme" /></a></p>
<p>Below are widgets we&#8217;ve started including with most themes, including <a href="http://demo.prothemedesign.com/wordpress/mimbo-pro">Mimbo Pro</a>:</p>
<ul>
<li><strong>Google Adsense.</strong> In the control panel you enter your Adsense ID and the widgets display ads accordingly. Works in any of the <a href="https://www.google.com/adsense/static/en_US/AdFormats.html?hl=en_US&amp;gsessionid=1nqtm0jf_zeIJPX1ABVGpw">standard block sizes</a>.</li>
<li><strong>Community Tweets.</strong> Aggregates Twitter activity according to location latitude/longitude. Contains fields for <em class="hilite">Number of Tweets</em> and <em class="hilite">Mile Radius</em>.</li>
<li><strong>Latest Tweets.</strong> Contains fields for <em class="hilite">Username</em> and <em class="hilite">Number of Tweets</em></li>
<li><strong>Post Author Details.</strong> Contains author avatar, date and comments feed.</li>
<li><strong>Upcoming Posts.</strong> Displays a list of future-dated posts.</li>
<li><strong>More from this Author.</strong> For single-post pages. Displays five headlines from the same author.</li>
<li><strong>More from this Category.</strong> For single-post pages. Displays five headlines from the same category.</li>
<li><strong>Print Preview.</strong> Uses javascript to render the page print-friendly and free of images.</li>
<li><strong>Share This.</strong> Lets you post the current page to Twitter, StumbleUpon, Digg, Delicious and Facebook.</li>
<li><strong>YouTube.</strong> Displays a featured video with fields for <em class="hilite">Embed Code</em> and <em class="hilite">Description</em></li>
<li><strong>Map Your Location.</strong> A Google Maps widget with fields for <em class="hilite">Location</em>, <em class="hilite">Zoom Amount</em> and <em class="hilite">Type of Map View (Roadmap, Satellite or Terrain).</em></li>
<li><strong>Popular Posts.</strong> Displays five headlines of most-commented posts.</li>
<li><strong>Subscribe to Feed.</strong> Includes an RSS icon and feed link.</li>
</ul>
<p>We&#8217;ve gotten tons of great feedback from users who rely on positioning Google Adsense blocks and want to adjust their content accordingly. In the case of <a href="http://prothemedesign.com/themes/thelocal/">The Local</a>, the entire homepage is <strong>90% widgetized</strong>, with four columns to configure.  Not to mention writers in the hyperlocal space who write unique content, but also rely on <a href="http://codex.wordpress.org/WordPress_Widgets#Using_RSS_Widgets">aggregating from other sites</a> and social media sources.</p>
<h2>How Do Custom Widgets Work</h2>
<p>At the simplest possible level, custom widgets are implemented by <strong>1) creating a class</strong>, and <strong>2) registering a new widget</strong>. Forget about functionality <strong>within</strong> the widget for a moment and look at the basic setup which you would paste inside <em class="hilite">functions.php</em>:</p>
<pre name="code" class="php">class My_Widget extends WP_Widget {
	function My_Widget() {
		parent::WP_Widget(false, 'Our Test Widget');
	}
function form($instance) {
		// outputs the options form on admin
	}
function update($new_instance, $old_instance) {
		// processes widget options to be saved
		return $new_instance;
	}
function widget($args, $instance) {
		// outputs the content of the widget
	}
}
register_widget('My_Widget');</pre>
<p>That&#8217;s it. We can now visit our widgets panel to confirm:</p>
<p><img class="blogpic aligncenter" src="http://darrenhoyt.com/images/blog/customwidget.png" alt="custom widget" /></p>
<p>Adding editable <strong>functionality</strong> into our widget  is another story. Using the &#8220;Popular Posts&#8221; widget as an example, my partner <a href="http://www.binarymoon.co.uk">Ben Gillbanks</a> will walk us through creating the rest.</p>
<h2>Creating a &#8220;Popular Posts&#8221; Widget</h2>
<blockquote><p>Firstly we have to name the <strong>widget class</strong>. I prefix my functions and classes with <em>bm_</em> (<a href="http://www.binarymoon.co.uk/">Binary Moon</a>) as it means there will never be any clashes with other functions and plugins.</p>
<p>We can then name the widget in the <strong>constructor</strong>, which is the first function, and it should have the same name as the class. This will be called when the class is first created and it defines the name you see in the widget editor.</p>
<p>Next up, I create the <em>last method</em> which is a form function which defines what data can be editable within the widget. In this case, it&#8217;s simply the title of the widget to be displayed on the blog. The <strong>update method</strong> can often remain as it is, although you may want to do some data validation (make sure the data input is safe/ allowed).</p>
<p>Then finally, the <strong>widget method</strong>. This is where the widget itself is displayed. You&#8217;ll notice I am actually passing the arguments to another function that is elsewhere in the theme. The reason I do this is because I like to split the display out separately so that I can use the function directly in the theme <strong>without</strong> widgets as well.</p>
<p>Notice the <em>$args</em> parameter in the widget method. These args are actually the arguments you pass to the register sidebar method, before_widget, after_widget etc. You can read more about these and creating custom widgets on the <a href="http://codex.wordpress.org/Widgets_API">WordPress Codex Widget API</a> page.</p></blockquote>
<p>Here is the final code:</p>
<pre name="code" class="php">
&lt;?php
class bm_widget_popularPosts extends WP_Widget {

	function bm_widget_popularPosts() {
		parent::WP_Widget(false, 'Popular Posts');
	}

	function widget($args, $instance) {
		$args['title'] = $instance['title'];
		bm_popularPosts($args);
	}

	function update($new_instance, $old_instance) {
		return $new_instance;
	}

	function form($instance) {
		$title = esc_attr($instance['title']);
?>
		&lt;p>&lt;label for="&lt;?php echo $this->get_field_id('title'); ?>">&lt;?php _e('Title:'); ?> &lt;input class="widefat" id="&lt;?php echo $this->get_field_id('title'); ?>" name="&lt;?php echo $this->get_field_name('title'); ?>" type="text" value="&lt;?php echo $title; ?>" />&lt;/label>&lt;/p>
&lt;?php
	}
 }
function bm_popularPosts($args = array(), $displayComments = TRUE, $interval = '') {

	global $wpdb;

	$postCount = 5;

	$request = 'SELECT *
		FROM ' . $wpdb->posts . '
		WHERE ';

	if ($interval != '') {
		$request .= 'post_date>DATE_SUB(NOW(), ' . $interval . ') ';
	}

	$request .= 'post_status="publish"
			AND comment_count > 0
		ORDER BY comment_count DESC LIMIT 0, ' . $postCount;

	$posts = $wpdb->get_results($request);

	if (count($posts) >= 1) {

		if (!isset($args['title']) {
			$args['title'] = 'Popular Posts';
		}

		foreach ($posts as $post) {
			wp_cache_add($post->ID, $post, 'posts');
			$popularPosts[] = array(
				'title' => stripslashes($post->post_title),
				'url' => get_permalink($post->ID),
				'comment_count' => $post->comment_count,
			);
		}

		echo $args['before_widget'] . $args['before_title'] . $args['title'] . $args['after_title'];
?>

		&lt;ol>
&lt;?php
		foreach ($popularPosts as $post) {
?>
			&lt;li>
				&lt;a href="&lt;?php echo $post['url'];?>">&lt;?php echo $post['title']; ?>&lt;/a>
&lt;?php
			if ($displayComments) {
?>
			(&lt;?php echo $post['comment_count'] . ' ' . __('comments', BM_THEMENAME); ?>)
&lt;?php
			}
?>
			&lt;/li>
&lt;?php
		}
?>
		&lt;/ol>

&lt;?php
		echo $args['after_widget'];
	}
}
?>
</pre>
<h2>Further Uses for Custom Widgets?</h2>
<p>Clients frequently need special notifications and other dynamic bits to display on their site with minimal setup. What other content that&#8217;s frequently handled via plugins would make <strong>a great custom widget</strong>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.darrenhoyt.com/2009/12/22/creating-custom-wordpress-widgets/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>
