<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Paper Canopy</title>
	<atom:link href="http://papercanopy.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://papercanopy.com</link>
	<description>Web development and WordPress</description>
	<lastBuildDate>Mon, 22 Nov 2010 15:59:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Using the WordPress Editor</title>
		<link>http://papercanopy.com/2010/11/22/using-the-wordpress-editor/</link>
		<comments>http://papercanopy.com/2010/11/22/using-the-wordpress-editor/#comments</comments>
		<pubDate>Mon, 22 Nov 2010 15:59:03 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[General observations]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://papercanopy.com/?p=187</guid>
		<description><![CDATA[In case you haven&#8217;t seen this, or are new to WordPress altogether, here&#8217;s a handly little primer on the WordPress WYSIWYG editor: http://en.support.wordpress.com/visual-editor/ Most of it is pretty common sense, but there are some nice hidden gems in there such as special characters, and a handy copy/paste feature especially if you&#8217;re working in MS Word]]></description>
			<content:encoded><![CDATA[<p>In case you haven&#8217;t seen this, or are new to WordPress altogether, here&#8217;s a handly little <a href="http://en.support.wordpress.com/visual-editor/">primer on the WordPress WYSIWYG editor</a>: http://en.support.wordpress.com/visual-editor/</p>
<p>Most of it is pretty common sense, but there are some nice hidden gems in there such as special characters, and a handy copy/paste feature <em>especially </em>if you&#8217;re working in MS Word</p>
]]></content:encoded>
			<wfw:commentRss>http://papercanopy.com/2010/11/22/using-the-wordpress-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to build a widget</title>
		<link>http://papercanopy.com/2010/11/10/how-to-build-a-widget/</link>
		<comments>http://papercanopy.com/2010/11/10/how-to-build-a-widget/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 15:43:49 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Applications and programming]]></category>
		<category><![CDATA[General observations]]></category>

		<guid isPermaLink="false">http://papercanopy.com/?p=171</guid>
		<description><![CDATA[Client begging for a widget? Have no idea what that even means or where to start? Not to worry, it's definitely a common problem but this post should get you on your way to planning a cool piece of the web people can put almost anywhere!]]></description>
			<content:encoded><![CDATA[<p>In MBA school you explore a lot of theory and eventually try to apply that to actual practice. But theory comes first in academia, so theorize we did. And when you have to zoom so far out to make such broad brush strokes you need a common business model or product. In our case it was the widget.<span id="more-171"></span></p>
<p>In school, widgets could represent anything. Tires, chairs, rubber duckies. And that&#8217;s not really fair to the real world with real product nuances. But the worst of it is, that that line of thinking somehow invaded the real world in the form of web widgets.</p>
<p>Web widgets, like in school, can be anything. And they are anything. For example you may be using a widget on your desktop to monitor the weather. Or maybe there&#8217;s a widget on your Google home page to display the latest news. Or even a widget that let&#8217;s you send a quick burst off to your Twitter followers. All widgets, all doing something completely different.</p>
<p>So the question is, how do you build something like that? Something that can be anything. When the client comes begging for a widget, what do you give them?</p>
<p>Well the first thing you have to decide is what will your widget do. This one&#8217;s a biggie, not just because your widget can actually do almost anything, but it&#8217;s the foundation of the production process. We can&#8217;t build something that can do &#8220;anything&#8221;.</p>
<p>Here are some questions to get you started:</p>
<ul>
<li>Does it pull or push data? In other words is this something that users will use to see what&#8217;s going on with your brand or company, or will it be something that users use to send data to you?</li>
<li>Where will it live? Is this a desktop widget, Windows or Mac? Google home page widget? NetVibes? Mobile? Something people put on their website like a badge? All are built differently, some using different programming languages.</li>
<li>What&#8217;s your delivery method? Are you emailing this, or posting it on your site? Does it need to live on a provider&#8217;s site like WordPress or Google? What are the restrictions for those hosts?</li>
<li>What&#8217;s the goal of the widget? To interact with your brand? To help users stay in the loop?</li>
<li>If the widget is to display information, where is that info coming from and who will manage it? Does this data already exist somewhere? If not will that portion need to be built as well? Will the client manage the information or will that be a service you provide? Did you include that in your estimate?</li>
</ul>
<p>Obviously those are all starting points. Maybe some you thought about but some you didn&#8217;t. Maybe those aren&#8217;t even questions you need to be asking with your widget. The end result though should be to narrow down how your widget can be moved from some broad <em>thing</em> to an actual usable piece of the web.</p>
<p>Then when you&#8217;re ready to hand it off to some <a href="http://papercanopy.com/portfolio">stellar web production company</a> the last step will be smooth and efficient!</p>
]]></content:encoded>
			<wfw:commentRss>http://papercanopy.com/2010/11/10/how-to-build-a-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tumblr a nice alternative</title>
		<link>http://papercanopy.com/2010/03/30/tumblr-a-nice-alternative/</link>
		<comments>http://papercanopy.com/2010/03/30/tumblr-a-nice-alternative/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 14:30:39 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Applications and programming]]></category>

		<guid isPermaLink="false">http://papercanopy.com/?p=100</guid>
		<description><![CDATA[I’ve been a fan of Tumblr for a while. I’ve had my own tumblr account to mess around with, and it’s been a nice halfway point between twitter which keeps you under 140 characters and a full blog which lets you post tons and tons of content. But it turns out tumblr has a nice theming engine as well...]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been a fan of Tumblr for a while. I&#8217;ve had my own tumblr account to mess around with, and it&#8217;s been a nice halfway point between twitter which keeps you under 140 characters and a full blog which lets you post tons and tons of content. Just something great for shorter posts, pictures, quotes, etc.<span id="more-100"></span></p>
<p>I recently set up a custom theme on Tumblr, and love how far it&#8217;s come since I signed up for an account years ago. Domain mapping so you can use your own domain name, a juiced up interface for posts, easy and straightforward navigation, tie in to Twitter, Facebook, and Feedburner, and on and on!</p>
<p>It may be because there&#8217;s just less data and variables to deal with than a regular blog, but I was amazed by how simple and straightforward it was to set up a custom theme. All of the variables you need to set up your own custom HTML and CSS were there, free, right out of the box.</p>
<p>WordPress is still my CMS tool of choice, but there is absolutely no reason to rule out a free tumblr account if all you need is a simple, custom themed blog. And the best part is, it&#8217;s all free!</p>
]]></content:encoded>
			<wfw:commentRss>http://papercanopy.com/2010/03/30/tumblr-a-nice-alternative/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing: PMProPlus!</title>
		<link>http://papercanopy.com/2010/03/25/announcing-pmproplus/</link>
		<comments>http://papercanopy.com/2010/03/25/announcing-pmproplus/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 14:56:29 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Applications and programming]]></category>
		<category><![CDATA[Project News]]></category>
		<category><![CDATA[Site and Company News]]></category>

		<guid isPermaLink="false">http://papercanopy.com/?p=90</guid>
		<description><![CDATA[The day has finally arrived. We&#8217;re launching our own project. Without further ado let us proudly introduce PMProPlus, a project management and time tracking web application, straight from the Paper Canopy factory. We&#8217;ve been using PMProPlus around here to manage all of our time tracking and project management needs for the past  year now. The [...]]]></description>
			<content:encoded><![CDATA[<p>The day has finally arrived. We&#8217;re launching our own project.</p>
<p>Without further ado let us proudly introduce <a href="http://www.pmproplus.com" target="_blank">PMProPlus</a>, a project management and time tracking web application, straight from the Paper Canopy factory.<span id="more-90"></span></p>
<p>We&#8217;ve been using PMProPlus around here to manage all of our <a href="http://pmproplus.com/tour/time-tracking/" target="_blank">time tracking</a> and <a href="http://pmproplus.com/tour/management/" target="_blank">project management</a> needs for the past  year now. The time tracking has been our most used piece, but <a href="http://pmproplus.com/tour/extranet/" target="_blank">the extranet is a life-saver</a> when it comes to posting large files for the client, especially if there is more than one version floating around!</p>
<p>Take a look and let us know what you think. There&#8217;s a 30 day free trial, and enough tiers so that price shouldn&#8217;t be an option to give it a try! And definitely head back here to tell us about some of your favorite features and what you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://papercanopy.com/2010/03/25/announcing-pmproplus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Launchfest</title>
		<link>http://papercanopy.com/2010/02/17/launchfest/</link>
		<comments>http://papercanopy.com/2010/02/17/launchfest/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 21:30:46 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Project News]]></category>

		<guid isPermaLink="false">http://papercanopy.com/?p=84</guid>
		<description><![CDATA[It seems like February has been the month for launches. And it&#8217;s been keeping us busy. Not just launches with new sites, or the final touches on the standard web development projects, but launches for a lot of our partner&#8217;s personal projects. First there was our favorite copywriter&#8217;s first book launch. A few updates to [...]]]></description>
			<content:encoded><![CDATA[<p>It seems like February has been the month for launches. And it&#8217;s been keeping us busy.</p>
<p>Not just launches with new sites, or the final touches on the standard <a href="http://www.papercanopy.com/portfolio">web development projects</a>, but launches for a lot of our partner&#8217;s personal projects.<span id="more-84"></span></p>
<p>First there was our <a href="http://www.blanebachelor.com" target="_blank">favorite copywriter&#8217;s</a> first <a href="http://www.askabachelor.com" target="_blank">book launch</a>. A few updates to her custom WordPress theme and she was off and running.</p>
<p>Then our <a href="http://www.uxpertise.com" target="_blank">favorite designer</a> launched a <a href="http://www.bc4c.com">new boot camp</a> which donates all of its proceeds to charity each month. WordPress to the rescue (of course!)</p>
<p>Not to ignore the fact that we launched a <a href="http://downetworks.com">few</a> <a href="http://numbandnumber.com" target="_blank">sites</a> for some <a href="http://www.mathsp.com" target="_blank">other</a> <a href="http://habershamgardens.com" target="_blank">clients</a> as well.</p>
<p>But our favorite launch this month had to be the one you&#8217;re looking at right now. Even Paper Canopy got a refresh and a fresh start! And we couldn&#8217;t thank <a href="http://uxpertise.com">UXpertise</a> enough for the design.</p>
<p>It&#8217;s only February! And the best news is the new Paper Canopy theme is only the beginning. We&#8217;re looking to get in on the fun and launch a couple of our own projects as we keep rolling along on a few more fun WordPress themes and web development. So stay tuned for our first announcement which should happen later this month!</p>
]]></content:encoded>
			<wfw:commentRss>http://papercanopy.com/2010/02/17/launchfest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using jQuery to make your designs more interactive</title>
		<link>http://papercanopy.com/2010/01/27/using-jquery-to-make-your-designs-more-interactive/</link>
		<comments>http://papercanopy.com/2010/01/27/using-jquery-to-make-your-designs-more-interactive/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 20:29:10 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Site and Company News]]></category>

		<guid isPermaLink="false">http://papercanopy.com/?p=68</guid>
		<description><![CDATA[Most of my work entails taking flat Photoshop files and turning them into functioning interactive web sites. One of the bigger issues is I usually don&#8217;t know what the page is supposed to actually do. Falling back on a few years experience helps, and some stuff is pretty obvious (click here, go there), but most of the [...]]]></description>
			<content:encoded><![CDATA[<p>Most of my work entails taking flat Photoshop files and turning them into functioning interactive web sites. One of the bigger issues is I usually don&#8217;t know what the page is supposed to actually <em>do</em>. Falling back on a few years experience helps, and some stuff is pretty obvious (click here, go there), but most of the time I&#8217;d much rather be lazy and have someone just tell me what it needs to do.<span id="more-68"></span></p>
<p>The easy thing to do would be just to ask the designer. And most of the time I do, and it works out great. But I&#8217;ve found that there&#8217;s this gap between a designer and the producer where the designer doesn&#8217;t necessarily know what the producer can actually build (and what&#8217;s not impossible to do) and the producer doesn&#8217;t know what to suggest because he doesn&#8217;t know what the designer really wants, and around and around we go.</p>
<p>So here we are, trying to bridge that gap a bit. It&#8217;s a little instruction on what can be done, and where to go for inspiration for people who  may not necessarily know what&#8217;s interactively possible.</p>
<p>Let me introduce you to <a href="http://www.jquery.com" target="_blank">jQuery</a>.</p>
<p>jQuery is a JavaScript library. And JavaScript is what powers most if not all of the client side interaction on a web page. So: jQuery is a library of JavaScript code that lets you do interactive things quickly and esaily.</p>
<p>A JavaScript library is nice because different browsers (*cough* IE *cough*) do things differently and sometimes with weird effect. For example if you want to get the current year in javascript Firefox returns 2010, but IE returns 110. So you have to add 1900 to the number in IE. So you do browser tests, and add code just to find out the year. Yeah, then try to get the next or previous day or month or if it&#8217;s the last day of the month or if it&#8217;s the last day of the year&#8230; Snowballs quickly eh?</p>
<p>jQuery is nice because it’s base code with all that weirdness done for you. You just ask jQuery for the year and it does all the aggravating cross browser stuff automatically. As a disclosure, there are plenty of other JavaScript libraries out there. Yahoo! has one, Moo Tools, and plenty others. jQuery is just my flavor of choice.</p>
<p>That’s a simple example, but when you get into more complicated stuff like navigating the Document Object Model (divs, classes, ids, HTML elements) it starts getting super frustrating to deal with all the browsers. jQuery does all that for you.</p>
<p>To build on that, jQuery has tons and tons of code that does really complicated stuff so all you have to do is call the function. They break them up into modules called Plugins.</p>
<p>For example, making a calendar pop up when you click in a text box is a plugin.</p>
<p>You just download the plugin code, include it on your page, and call one line of JavaScript to make that text box open up a calendar when it&#8217;s clicked.</p>
<p>Usually plugins come with some css, some javascript, and a bit of documentation to tell you how to use it. But the takeaway is they do really powerful things, are extremely easy to use, and take infinitely less time to get going than writing the whole thing from scratch.</p>
<p>Some plugins are pretty awesome and graduate into core functionality. One example is jQueryUI. A collection of pretty useful plugins for User Interaction: <a href="http://jqueryui.com/demos/">http://jqueryui.com/demos/</a></p>
<p>Some examples: <a href="http://papercanopy.com/projects/codesamples/order-lists.php" target="_blank">Drag and drop</a>, resize, <a href="http://papercanopy.com/2009/10/23/ordering-lists-ui-example/" target="_blank">sorting unordered lists</a>, carousel slideshows</p>
<p>That&#8217;s basically how it works. Now it&#8217;s just a matter of finding plugins that do cool stuff and sending on the link to your production guys to ask &#8220;can we make it work like this?&#8221;</p>
<p>Here are some good resources to get you started:</p>
<ul>
<li>jQuery User Interaction plugin: <a href="http://jqueryui.com/demos/">http://jqueryui.com/demos/</a></li>
<li>other jQuery plugins (some interactive, some not) <a href="http://plugins.jquery.com/">http://plugins.jquery.com/</a></li>
<li>Ajax Rain &#8211; This includes a lot of other javascript libraries outside of jQuery, but for the most part cool things get spread out pretty wide: <a href="http://www.ajaxrain.com/tag?tag=jquery">http://www.ajaxrain.com/tag?tag=jquery</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://papercanopy.com/2010/01/27/using-jquery-to-make-your-designs-more-interactive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delicious WordPress</title>
		<link>http://papercanopy.com/2010/01/18/delicious-wordpress/</link>
		<comments>http://papercanopy.com/2010/01/18/delicious-wordpress/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 16:28:23 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Site and Company News]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://papercanopy.com/?p=65</guid>
		<description><![CDATA[I always just assume most new web apps are mostly used by little guys. Take Twitter for example. Out of the gate it just seems like a way to post your status to the web and interact with your friends. Nothing big. Well, until the celebs and branding experts realized the potential&#8230; So it&#8217;s always [...]]]></description>
			<content:encoded><![CDATA[<p>I always just assume most new web apps are mostly used by little guys. Take Twitter for example. Out of the gate it just seems like a way to post your status to the web and interact with your friends. Nothing big. Well, until the celebs and branding experts realized the potential&#8230;<span id="more-65"></span></p>
<p>So it&#8217;s always fun to see how big corporations or people use this stuff. Like Oprah with Skype, or the military with Google Earth.</p>
<p>One cool discovery I made was how <a href="http://delicious.com/OracleTechnologyNetwork/" target="_blank">Oracle was using Delicious</a>. Basically they linked all their documentation and help files that they had on the web through Delicious bookmarks. The benefits seem pretty obvious: Tagging, descriptions, organization of their site. Seems like a great way to organize a lot of links and data, but extend the organization beyond a simple site map by using Delicious&#8217;s system for bookmarks.</p>
<p>All that to say I&#8217;m trying to follow in their footsteps.</p>
<p>I noticed that I had started to amass a good amount of WordPress links. Links to plugins, themes, official documentation, and articles that have turned out to be pretty useful. But only about half were uploaded to <a href="http://delicious.com/papercanopy/" target="_blank">my Delicious account</a>.</p>
<p>So I spent a bit of time organizing my links, and set up a &#8220;corporate&#8221; Delicious account. Right now it&#8217;s mostly WordPress, but I&#8217;m sure I&#8217;ll be updating with links to notable documentation on this site as well as other arenas.</p>
<p>So for the time being, <a href="http://delicious.com/papercanopy/WordPress">take a look at my WordPress tagged links</a>, I&#8217;m sure there are a few things you might find useful in there.</p>
]]></content:encoded>
			<wfw:commentRss>http://papercanopy.com/2010/01/18/delicious-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stupid WordPress Tricks</title>
		<link>http://papercanopy.com/2009/12/15/stupid-wordpress-tricks/</link>
		<comments>http://papercanopy.com/2009/12/15/stupid-wordpress-tricks/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 16:21:36 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Applications and programming]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://papercanopy.com/?p=63</guid>
		<description><![CDATA[To totally bang home my love for WordPress I wanted to share a nice page that breaks down a lot of useful expansions on the basic WP functionality: Stupid WordPress Tricks There&#8217;s a lot there, in fact there are 76 tricks to peruse. Most of it is somewhat technical as far as how to implement [...]]]></description>
			<content:encoded><![CDATA[<p>To totally bang home my love for WordPress I wanted to share a nice page that breaks down a lot of useful expansions on the basic WP functionality: <a href="http://perishablepress.com/press/2009/12/01/stupid-wordpress-tricks/">Stupid WordPress Tricks</a></p>
<p>There&#8217;s a lot there, in fact there are 76 tricks to peruse. Most of it is somewhat technical as far as how to implement it, but I wanted to share because sometimes examples of what you can do with a tool gives you that &#8220;Aha!&#8221; moment to really add on some cool stuff to your own projects.</p>
<p>So peruse that list. Find some cool stuff to do, and know it can be done so you can ask for it.</p>
<p>One thing I think I may do with that list is show examples of how to use that added functionality in your own project. First up <a href="http://perishablepress.com/press/2009/12/01/stupid-wordpress-tricks/#swt_22" target="_blank">Meta Descriptions without a plugin</a>. This is a pretty easy one, and you can see it in action on the <a href="http://www.legalout.com" target="_blank">LegalOut.com</a> site that I set up in WordPress. Outside of just the meta description we set up several custom fields to display different content on different pages.</p>
<p>I&#8217;m definitely looking forward to pulling a lot of added functionality ideas from this list.</p>
]]></content:encoded>
			<wfw:commentRss>http://papercanopy.com/2009/12/15/stupid-wordpress-tricks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ordering lists, UI example</title>
		<link>http://papercanopy.com/2009/10/23/ordering-lists-ui-example/</link>
		<comments>http://papercanopy.com/2009/10/23/ordering-lists-ui-example/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 16:34:07 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Applications and programming]]></category>
		<category><![CDATA[Code Demo]]></category>

		<guid isPermaLink="false">http://papercanopy.com/?p=51</guid>
		<description><![CDATA[jQuery is definitely my javascript library of choice. Easy to use and you can spit out awesome stuff pretty quickly and easily. My latest conquest is drag and drop ordering. Basically what I wanted to do was have two lists. Then you can drag options from one list to the other, and order items within [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jquery.com" target="_blank">jQuery </a>is definitely my javascript library of choice.</p>
<p>Easy to use and you can spit out awesome stuff pretty quickly and easily.</p>
<p>My latest conquest is drag and drop ordering. Basically what I wanted to do was have two lists. Then you can drag options from one list to the other, and order items within each list.</p>
<p><a href="http://papercanopy.com/projects/codesamples/order-lists.php" target="_blank">Here&#8217;s a demo of the drag and drop functionality in action</a></p>
<p>Originally I built this to use in a WordPress plugin I was writing. The point would be to give users some options and let them order the options they selected.</p>
<p>The nice part of this is what goes on behind the scenes. When a user moves an item around (either from one list to the other, or within the list itself to reorder things) the code fires off an ajax call and stores/updates the list in a database.</p>
<p>This is the pretty basic instance of this functionality though. The plugin comes with a lot of options that you can use to really customize the user experience.</p>
<p>Some other options you have is triggering an event (an alert, popup, changing colors on something, etc.) when a person selects an item, when they drop the item, when they put one item above or below another item (before or after they drop it there, warnings anyone?). It&#8217;s a nice way to give a lot of feedback to the user as they are interacting with the page and the lists.</p>
<p>And the effects don&#8217;t have to stop there. By re-ordering a list on one part of the page could effect layout or content or any other number of things on a page.</p>
]]></content:encoded>
			<wfw:commentRss>http://papercanopy.com/2009/10/23/ordering-lists-ui-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Constant Contact &#8220;Case Study&#8221;</title>
		<link>http://papercanopy.com/2009/10/21/a-constant-contact-case-study/</link>
		<comments>http://papercanopy.com/2009/10/21/a-constant-contact-case-study/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 19:34:43 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Applications and programming]]></category>
		<category><![CDATA[Project News]]></category>

		<guid isPermaLink="false">http://papercanopy.com/?p=44</guid>
		<description><![CDATA[Yeah I put case study in quotes. Not sure if this really qualifies as an official case study, but definitely worth a post. Recently did a quick job with a client to update some of their mailing lists. In a nutshell they needed some custom data added for each contact. The data was created using [...]]]></description>
			<content:encoded><![CDATA[<p>Yeah I put case study in quotes. Not sure if this really qualifies as an official case study, but definitely worth a post.</p>
<p>Recently did a quick job with a client to update some of their mailing lists.</p>
<p>In a nutshell they needed some custom data added for each contact. The data was created using an algorithm provided by the client, but relied on some unique information from each subscriber.</p>
<p>So the process in pseudocode:</p>
<ol>
<li>Connect to Constant Contact&#8217;s API</li>
<li>Get all of the contacts in a specific list</li>
<li>For each contact get some of their information such as the user id, email address, etc.</li>
<li>Build a string  based on this data</li>
<li>Update the contact&#8217;s information in Constant contact with this new data</li>
</ol>
<p>Simple process, but a nice challenge.</p>
<p>Here are a few fun facts I learned:</p>
<ul>
<li><strong>Constant Contact returns its contact data in paged lists</strong>. So you can&#8217;t just ask for all of the contacts in a specific list and get one result set. You have to ask for each page. Yay recursive-ness.</li>
<li><strong>There are limits to how many characters you can put in a field</strong>. Since the url that got built didn&#8217;t really fit logically in any of the provided fields I decided to use the custom fields CC provides. Fun fact: you can only put 50 characters in each custom field.</li>
<li>From the sending side of things, Constant Contact only allows you to enter subscriber fields into an email if the email is XHTML. And you <strong>must</strong> have valid XHTML or no dice on even getting the email out of draft stage.</li>
</ul>
<p>All in all it was a bit frustrating, but successful. Which adds up to a fun programming day. And I got this nice little code sample I can post for you guys which includes a PHP class provided by Constant Contact, and my own custom code to use that class to do stuff to subscribers in a list.</p>
<p>If you&#8217;re interested in the code you can check it out here: <a title="Constant Contact php code" href="http://papercanopy.com/files/2009/10/cc_contacts.zip">download Constant Contact Class and case use files</a></p>
]]></content:encoded>
			<wfw:commentRss>http://papercanopy.com/2009/10/21/a-constant-contact-case-study/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

