<?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>Chris Monnat</title>
	
	<link>http://www.christophermonnat.com</link>
	<description>Programmer Extraordinaire</description>
	<lastBuildDate>Thu, 26 Aug 2010 14:21:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ChrisMonnat" /><feedburner:info uri="chrismonnat" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>ChrisMonnat</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>The Times They Are A-Changin’</title>
		<link>http://feedproxy.google.com/~r/ChrisMonnat/~3/Ujtr2xFeKsc/</link>
		<comments>http://www.christophermonnat.com/2010/08/the-times-they-are-a-changin/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 14:21:24 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Misc.]]></category>

		<guid isPermaLink="false">http://www.christophermonnat.com/?p=1078</guid>
		<description><![CDATA[Big changes on the horizon. September will mark the end of 4+ years at my job in Rochester, NY and the beginning of a new job in our nations capitol Washington, DC. Yep, I&#8217;m taking this show on the road and will be moving the middle of September. New place, new people, new job&#8230; it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; display: block;">
<div class="wp-caption alignright" style="width: 250px"><a href="http://www.flickr.com/photos/20119750@N00/2770838680"><img class="  " style="margin-left: 10px; margin-right: 10px;" title="The White House (Washington DC)" src="http://farm4.static.flickr.com/3237/2770838680_cd002e04a5_m.jpg" alt="The White House (Washington DC)" width="240" height="158" /></a><p class="wp-caption-text">Image by ~MVI~ (scrounging for photos) via Flickr</p></div>
</div>
<p>Big changes on the horizon. September will mark the end of 4+ years at my job in Rochester, NY and the beginning of a new job in our nations capitol Washington, DC. Yep, I&#8217;m taking this show on the road and will be moving the middle of September. New place, new people, new job&#8230; it&#8217;s all new and I think that&#8217;s what I need. Sometimes you just need to mix things up.</p>
<p>Things will most likely be quite for the next month or two as I do the actual moving and get situated in a new place, but I hope to get back to work shortly thereafter.</p>


<p>Related posts:<ol><li><a href='http://www.christophermonnat.com/2008/12/access-your-snail-mail-online/' rel='bookmark' title='Permanent Link: Access your snail mail online!'>Access your snail mail online!</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/tXCSEyce7x6jwknyJCOxYZd7Nmg/0/da"><img src="http://feedads.g.doubleclick.net/~a/tXCSEyce7x6jwknyJCOxYZd7Nmg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/tXCSEyce7x6jwknyJCOxYZd7Nmg/1/da"><img src="http://feedads.g.doubleclick.net/~a/tXCSEyce7x6jwknyJCOxYZd7Nmg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=Ujtr2xFeKsc:22AdlkhIevw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=Ujtr2xFeKsc:22AdlkhIevw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=Ujtr2xFeKsc:22AdlkhIevw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?i=Ujtr2xFeKsc:22AdlkhIevw:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/Ujtr2xFeKsc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.christophermonnat.com/2010/08/the-times-they-are-a-changin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.christophermonnat.com/2010/08/the-times-they-are-a-changin/</feedburner:origLink></item>
		<item>
		<title>Speedy Subscriptions Using Spreedly (Part 4) – Checking for Updates</title>
		<link>http://feedproxy.google.com/~r/ChrisMonnat/~3/UA4EbemunrI/</link>
		<comments>http://www.christophermonnat.com/2010/08/speedy-subscriptions-using-spreedly-part-4-checking-for-updates/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 10:00:55 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.christophermonnat.com/?p=1009</guid>
		<description><![CDATA[OK let&#8217;s recap. So far in this guide I&#8217;ve covered: creating your Spreedly account, setting up your subscription plans and (most recently) linking your applications sign-up process to your Spreedly account. The elephant in the room at this point is managing updates and allowing Spreedly to notify our application when users make modifications to their [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.christophermonnat.com/wp-content/uploads/2009/06/spreedly-logo.gif"><img class="alignright size-full wp-image-776" title="spreedly-logo" src="http://www.christophermonnat.com/wp-content/uploads/2009/06/spreedly-logo.gif" alt="" width="160" height="90" /></a>OK let&#8217;s recap. So far in this guide I&#8217;ve covered: <a href="http://www.christophermonnat.com/2009/06/speedy-subscriptions-using-spreedly-part-1-service-overview-introduction/">creating your Spreedly account</a>, <a href="http://www.christophermonnat.com/2009/06/speedy-subscriptions-using-spreedly-part-2-account-configuration/">setting up your subscription plans</a> and (most recently) <a href="http://www.christophermonnat.com/2010/04/speedy-subscriptions-using-spreedly-part-3-the-sign-up-process/">linking your applications sign-up process to your Spreedly account</a>. The elephant in the room at this point is managing updates and allowing Spreedly to notify our application when users make modifications to their subscription/billing settings or when something goes wrong: like when a credit card expires or a transaction can&#8217;t be processed. In this final post I will review how to open the lines of communication between your Spreedly account (a.k.a. your billing system) and your application.<br />
<span id="more-1009"></span></p>
<h2>Why is this important?</h2>
<p>Some of you may be asking yourselves &#8220;what is Chris talking about? I&#8217;ve linked up my sign-up form so I&#8217;m done, right?&#8221; Unfortunately no, your not quite finished. The thing to keep in mind, when working with any kind of third party billing service, is that we&#8217;re talking about 2 separate and distinct systems. Your application is not aware of any changes/updates made in the billing system and vice verse.  This is a problem because if a users credit card expires in your billing system you need some way of notifying your application so you can suspend access. Or if your customer cancels their account in your application you need to be sure to update your billing system so they don&#8217;t continue to get charged.</p>
<p>This is the same concept when working with PayPal or any other 3rd party payment processor where the transaction takes place on their servers. We need a method for identifying accounts that have changed recently in our billing system so we can make any necessary updates in our application.</p>
<h2>Listening for Changes</h2>
<p>Spreedly is not shy about telling you when your customer data changes. In fact, when any of your subscribers change, Spreedly will POST  a comma separated list of subscriber id&#8217;s (your customer id&#8217;s) to a URL which you specify. While tooling around your Spreedly accounts general settings you may have noticed a group of fields that start with &#8220;Subscribers Changed Notification URL&#8221;. This field is where you place the URL that Spreedly should use when POSTing changed accounts back to your application. This page can be part of your application or just a script that has access to  your database, but it needs to be there so that Spreedly has someone to talk to.</p>
<p>When any of your subscribers change within Spreedly, the application will send a POST request to an address you specify in your settings containing a comma separated list of IDs. These are the customer IDs of those subscribers who have changed. So this is Spreedlys way of telling you that account 2, 4, 6 and 8 have changed and you may want to check them out and update your DB accordingly.</p>
<p>As far as the necessary code, basically all we&#8217;re talking about is a method of a new or existing controller (using CodeIgniter) looking for the &#8220;subscriber_ids&#8221; POST variable and processing appropriately:</p>
<pre class="brush: php">
public function update_customers
{
	$ids = explode(&#039;,&#039;, $this-&gt;input-&gt;post(&#039;subscriber_ids&#039;));

	foreach($ids as $id)
	{
		// get users data from Spreedly

		// update your DB with new data
	}
}
</pre>
<p>Pretty easy huh?</p>
<h2>Why did this take so long?</h2>
<p>This series set a new record for how long it&#8217;s taken me to wrap up a post series and I apologize for that. The reason though is because I&#8217;ve been taking a good long look at all the payment services out there (they&#8217;re popping up all over the place) and have determined that there are others I like better than Spreedly. So as I started to change my mind and focus I spent less time with this service and as a result was unable to share my knowledge as I had planned. </p>
<p>Currently <a href="http://sign-up-sheet.com">Sign-Up-Sheet.com</a> uses <a href="http://chargify.com">Chargify </a>which won me over shortly after I started this series. However, I have since found another app that I like better called <a href="http://opengateway.net">OpenGateway</a>. The details as to why one is better than the other is for another post, but that&#8217;s what happened here. I got sidetracked by other options and simply was unable to regain my focus. Stay tuned for additional information on these payment options and let me know if you would like to see another series possibly on OpenGateway (which coincidentally happens to be built on CI) in the comments.</p>
<h2>That&#8217;s all folks</h2>
<p>And that does it for the Spreedly guide. My apologies for taking so long to complete but things got away from me a bit and one thing lead to another. If you think there is something I didn&#8217;t cover or have any additional questions please let me know in the comments.</p>


<p>Related posts:<ol><li><a href='http://www.christophermonnat.com/2009/06/speedy-subscriptions-using-spreedly-part-2-account-configuration/' rel='bookmark' title='Permanent Link: Speedy Subscriptions Using Spreedly (Part 2) &#8211; Account Configuration'>Speedy Subscriptions Using Spreedly (Part 2) &#8211; Account Configuration</a></li>
<li><a href='http://www.christophermonnat.com/2010/04/speedy-subscriptions-using-spreedly-part-3-the-sign-up-process/' rel='bookmark' title='Permanent Link: Speedy Subscriptions Using Spreedly (Part 3) &#8211; The Sign-up Process'>Speedy Subscriptions Using Spreedly (Part 3) &#8211; The Sign-up Process</a></li>
<li><a href='http://www.christophermonnat.com/2009/06/speedy-subscriptions-using-spreedly-part-1-service-overview-introduction/' rel='bookmark' title='Permanent Link: Speedy Subscriptions Using Spreedly (Part 1) &#8211; Overview &#038; Account Setup'>Speedy Subscriptions Using Spreedly (Part 1) &#8211; Overview &#038; Account Setup</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/7xiz2cMrwDY1VY7IG1CkB-j100U/0/da"><img src="http://feedads.g.doubleclick.net/~a/7xiz2cMrwDY1VY7IG1CkB-j100U/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7xiz2cMrwDY1VY7IG1CkB-j100U/1/da"><img src="http://feedads.g.doubleclick.net/~a/7xiz2cMrwDY1VY7IG1CkB-j100U/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=UA4EbemunrI:gSphInCv7GU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=UA4EbemunrI:gSphInCv7GU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=UA4EbemunrI:gSphInCv7GU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?i=UA4EbemunrI:gSphInCv7GU:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/UA4EbemunrI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.christophermonnat.com/2010/08/speedy-subscriptions-using-spreedly-part-4-checking-for-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.christophermonnat.com/2010/08/speedy-subscriptions-using-spreedly-part-4-checking-for-updates/</feedburner:origLink></item>
		<item>
		<title>Review: CodeIgniter 1.7 Professional Development</title>
		<link>http://feedproxy.google.com/~r/ChrisMonnat/~3/eq0LXjcHW8I/</link>
		<comments>http://www.christophermonnat.com/2010/06/review-codeigniter-1-7-professional-development/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 23:17:05 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[CodeIgniter]]></category>

		<guid isPermaLink="false">http://www.christophermonnat.com/?p=1026</guid>
		<description><![CDATA[Along with being a Zend Certified PHP5 engineer I&#8217;m also a strong advocate for application frameworks (CodeIgniter specifically). That&#8217;s why I was pleased when Pact approached me about a month ago to write a review of their new book about CodeIgniter (CI): CodeIgniter 1.7 Professional Development. Aimed at experienced PHP developers with a solid footing [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.christophermonnat.com/wp-content/uploads/2010/05/codeigniter-book.jpg"><img class="alignright size-full wp-image-1020" title="codeigniter-book" src="http://www.christophermonnat.com/wp-content/uploads/2010/05/codeigniter-book.jpg" alt="" width="125" height="152" /></a>Along with being a Zend Certified PHP5 engineer I&#8217;m also a strong advocate for application frameworks (<a href="http://codeigniter.com">CodeIgniter</a> specifically). That&#8217;s why I was pleased when Pact approached me about a month ago to write a review of their new book about CodeIgniter (CI): <a href="http://www.packtpub.com/codeigniter-1-7-professional-development/book?utm_source=ianwootten.co.uk&amp;utm_medium=bookrev&amp;utm_content=blog&amp;utm_campaign=mdb_003228">CodeIgniter 1.7 Professional Development</a>. Aimed at experienced PHP developers with a solid footing in object oriented programming, the book provides a detailed overview of the CI framework from an absolute beginners perspective. Chocked full of code samples and tips/techniques on how to leverage CIs tools this book is a great resource for anyone new to the framework looking to quickly get up to speed.</p>
<p><span id="more-1026"></span></p>
<p>CodeIgniter 1.7 Professional Development is a complete soup to nuts overview of the CI framework. Coming in at 10 chapters and around 260 pages this book is perfect for those new to CI. The book starts out with reviewing CIs MVC architecture, system libraries and form validation techniques. Then the author dedicates 2 chapters to user authentication and walks you through building your own authentication solution (includes details on oAuth and Facebook Connect). Application security, large scale development and extending CIs core is also covered in later chapters. All in all this book provides a very well rounded sampling of topics for complete newbies and experienced developers alike.</p>
<p>The one chapter I found most informative was chapter 8 Web Services. Like most developers, I have done quite a bit of work with consuming APIs but never had to write one of my own. Recently however I was charged with the task of writing an API that other developers would be interacting with and I had to stumble along and come up with my own solution. In chapter 8 the author reviews web services in depth and how to create your own REST service using CI. Very helpful for those new to that particular topic.</p>
<p>To be honest, when I first received the book I was a little disappointed. I&#8217;m not a CI beginner so I was hoping for a lot more advanced items, answers to questions I&#8217;ve been struggling with myself. But after spending some time with the book and writing this review I think I have changed my tune. The author spends ample time on the basic stuff but also finds time to touch on more advanced topics like user authentication (with oAuth and Facebook Connect), application security and web service development.</p>
<p>If you are a professional web worker who uses CI in your day to day activities then you should consider getting this book. There is a little something for everyone.</p>


<p>Related posts:<ol><li><a href='http://www.christophermonnat.com/2010/05/codeigniter-1-7-professional-development/' rel='bookmark' title='Permanent Link: CodeIgniter 1.7 Professional Development'>CodeIgniter 1.7 Professional Development</a></li>
<li><a href='http://www.christophermonnat.com/2008/06/10-reasons-why-codeigniter-rocks/' rel='bookmark' title='Permanent Link: 10 Reasons Why CodeIgniter Rocks'>10 Reasons Why CodeIgniter Rocks</a></li>
<li><a href='http://www.christophermonnat.com/2008/10/never-buy-another-tech-book-again/' rel='bookmark' title='Permanent Link: Never Buy Another Tech Book Again!'>Never Buy Another Tech Book Again!</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/Ue9gPH3udxqV0aKvpIa44yKuqsE/0/da"><img src="http://feedads.g.doubleclick.net/~a/Ue9gPH3udxqV0aKvpIa44yKuqsE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Ue9gPH3udxqV0aKvpIa44yKuqsE/1/da"><img src="http://feedads.g.doubleclick.net/~a/Ue9gPH3udxqV0aKvpIa44yKuqsE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=eq0LXjcHW8I:xmdi2nvyR2A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=eq0LXjcHW8I:xmdi2nvyR2A:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=eq0LXjcHW8I:xmdi2nvyR2A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?i=eq0LXjcHW8I:xmdi2nvyR2A:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/eq0LXjcHW8I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.christophermonnat.com/2010/06/review-codeigniter-1-7-professional-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.christophermonnat.com/2010/06/review-codeigniter-1-7-professional-development/</feedburner:origLink></item>
		<item>
		<title>CodeIgniter 1.7 Professional Development</title>
		<link>http://feedproxy.google.com/~r/ChrisMonnat/~3/spTjfjU-vYY/</link>
		<comments>http://www.christophermonnat.com/2010/05/codeigniter-1-7-professional-development/#comments</comments>
		<pubDate>Mon, 24 May 2010 14:05:30 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[CodeIgniter]]></category>

		<guid isPermaLink="false">http://www.christophermonnat.com/?p=1019</guid>
		<description><![CDATA[For you CodeIgniter fans out there, Packt released a new book last month called CodeIgniter 1.7 Professional Development. I got word this morning that my review copy is in the mail so keep your eyes out for my thoughts on this book in the coming weeks. From the summary it looks like it covers a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.christophermonnat.com/wp-content/uploads/2010/05/codeigniter-book.jpg"><img src="http://www.christophermonnat.com/wp-content/uploads/2010/05/codeigniter-book.jpg" alt="" title="codeigniter-book" width="125" height="152" class="alignright size-full wp-image-1020" /></a>For you CodeIgniter fans out there, Packt released a new book last month called <a href="http://www.packtpub.com/codeigniter-1-7-professional-development/book?utm_source=christophermonnat.com&#038;utm_medium=bookrev&#038;utm_content=blog&#038;utm_campaign=mdb_003457">CodeIgniter 1.7 Professional Development</a>. I got word this morning that my review copy is in the mail so keep your eyes out for my thoughts on this book in the coming weeks. From the summary it looks like it covers a wide range of topics from beginner to advanced so I&#8217;m excited to take a look. If interested, head on over to the Packt website to read a <a href="http://www.packtpub.com/article/database-interaction-with-codeigniter-1.7">sample chapter on database interaction</a>.</p>


<p>Related posts:<ol><li><a href='http://www.christophermonnat.com/2010/06/review-codeigniter-1-7-professional-development/' rel='bookmark' title='Permanent Link: Review: CodeIgniter 1.7 Professional Development'>Review: CodeIgniter 1.7 Professional Development</a></li>
<li><a href='http://www.christophermonnat.com/2009/05/building-applications-using-codeigniter-part-2-configuration/' rel='bookmark' title='Permanent Link: Building Applications using CodeIgniter (Part 2) &#8211; Configuration'>Building Applications using CodeIgniter (Part 2) &#8211; Configuration</a></li>
<li><a href='http://www.christophermonnat.com/2008/10/never-buy-another-tech-book-again/' rel='bookmark' title='Permanent Link: Never Buy Another Tech Book Again!'>Never Buy Another Tech Book Again!</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/VmIgKlFCBGHEWbHbxd40FGvUM7Y/0/da"><img src="http://feedads.g.doubleclick.net/~a/VmIgKlFCBGHEWbHbxd40FGvUM7Y/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/VmIgKlFCBGHEWbHbxd40FGvUM7Y/1/da"><img src="http://feedads.g.doubleclick.net/~a/VmIgKlFCBGHEWbHbxd40FGvUM7Y/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=spTjfjU-vYY:ruoUaLmaRaU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=spTjfjU-vYY:ruoUaLmaRaU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=spTjfjU-vYY:ruoUaLmaRaU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?i=spTjfjU-vYY:ruoUaLmaRaU:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/spTjfjU-vYY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.christophermonnat.com/2010/05/codeigniter-1-7-professional-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.christophermonnat.com/2010/05/codeigniter-1-7-professional-development/</feedburner:origLink></item>
		<item><title>Links for 2010-05-15 [del.icio.us]</title><link>http://feedproxy.google.com/~r/ChrisMonnat/~3/mWmn79sK2NQ/mrtopher</link><pubDate>Sun, 16 May 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/mrtopher#2010-05-15</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://sign-up-sheet.com/"&gt;Online Event Registration and Attendee Management Made Easy.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/mWmn79sK2NQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/mrtopher#2010-05-15</feedburner:origLink></item><item>
		<title>Sign-Up-Sheet.com Relaunched</title>
		<link>http://feedproxy.google.com/~r/ChrisMonnat/~3/WfSNqp0GBTI/</link>
		<comments>http://www.christophermonnat.com/2010/05/sign-up-sheet-com-relaunched/#comments</comments>
		<pubDate>Tue, 11 May 2010 13:25:57 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Misc.]]></category>

		<guid isPermaLink="false">http://www.christophermonnat.com/?p=1011</guid>
		<description><![CDATA[I&#8217;m proud to announce the relaunch of Sign-Up-Sheet.com this morning. It&#8217;s been a long 4 months, but I&#8217;m very excited that things are up and running after suffering some initial setbacks. Check it out and let me know what you think. http://sign-up-sheet.com Related posts:Is it 2010 already?]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m proud to announce the relaunch of Sign-Up-Sheet.com this morning. It&#8217;s been a long 4 months, but I&#8217;m very excited that things are up and running after suffering some initial setbacks. Check it out and let me know what you think.</p>
<p><a href="http://sign-up-sheet.com">http://sign-up-sheet.com</a></p>


<p>Related posts:<ol><li><a href='http://www.christophermonnat.com/2010/03/is-it-2010-already/' rel='bookmark' title='Permanent Link: Is it 2010 already?'>Is it 2010 already?</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/qPF5bPvRw1-FqryJ1JrP6_4xLAg/0/da"><img src="http://feedads.g.doubleclick.net/~a/qPF5bPvRw1-FqryJ1JrP6_4xLAg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/qPF5bPvRw1-FqryJ1JrP6_4xLAg/1/da"><img src="http://feedads.g.doubleclick.net/~a/qPF5bPvRw1-FqryJ1JrP6_4xLAg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=WfSNqp0GBTI:BLh5PCCbA8g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=WfSNqp0GBTI:BLh5PCCbA8g:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=WfSNqp0GBTI:BLh5PCCbA8g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?i=WfSNqp0GBTI:BLh5PCCbA8g:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/WfSNqp0GBTI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.christophermonnat.com/2010/05/sign-up-sheet-com-relaunched/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.christophermonnat.com/2010/05/sign-up-sheet-com-relaunched/</feedburner:origLink></item>
		<item>
		<title>Speedy Subscriptions Using Spreedly (Part 3) – The Sign-up Process</title>
		<link>http://feedproxy.google.com/~r/ChrisMonnat/~3/S4zMwXTwpo8/</link>
		<comments>http://www.christophermonnat.com/2010/04/speedy-subscriptions-using-spreedly-part-3-the-sign-up-process/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 10:00:47 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.christophermonnat.com/?p=973</guid>
		<description><![CDATA[Picking up right where I left off, in this post I will review integrating Spreedly with your programs sign-up process. As is the case with most services like this, including PayPal, the quickest way to incorporate Spreedly involves redirecting the user to their website and allowing the financial transaction to take place on their servers. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.christophermonnat.com/wp-content/uploads/2009/06/spreedly-logo.gif"><img class="alignright size-full wp-image-776" title="spreedly-logo" src="http://www.christophermonnat.com/wp-content/uploads/2009/06/spreedly-logo.gif" alt="" width="160" height="90" /></a>Picking up right where I left off, in this post I will review integrating Spreedly with your programs sign-up process. As is the case with most services like this, including PayPal, the quickest way to incorporate Spreedly involves redirecting the user to their website and allowing the financial transaction to take place on their servers. The user is then redirected back to your website once the transaction has been completed. This is the quickest and easiest method available and is the one I will be reviewing.<br />
<span id="more-973"></span></p>
<h2>Quick Disclaimer</h2>
<p>Spreedly has a full featured API which provides people with programming experience a greater amount of integration flexibility, you just need to be conscience of the security liabilities involved. Links to 3rd party libraries and documentation can be found on the <a href="http://spreedly.com/info/integration/">Spreedly website</a>. To save on time and get this series wrapped up I will not be reviewing the API.</p>
<h2>Your Sign-up Process</h2>
<p>Before we can get to the Spreedly side of things we first need to define how our sign-up process is going to work. It is in our best interests, as the business owners, to make our sing-up process as quick and simple as possible so that more people will purchase accounts. Smashing Magazine published <a href="http://www.smashingmagazine.com/2008/07/04/web-form-design-patterns-sign-up-forms/">a post</a> or <a href="http://www.smashingmagazine.com/2008/07/08/web-form-design-patterns-sign-up-forms-part-2/">two</a> on sign-up form design a while back and I recommend you refer to those poses for further information on designing your process.</p>
<p>The one thing I will say, as it pertains to process, is to keep your sign-up form short and sweet. We will be redirecting users to our Spreedly accounts for the actual financial transaction so don&#8217;t worry about collecting any of that data (address, CC info, etc.) on your form. Just collect the items that are vitally necessary to get the user setup and worry about the non-essentials after they log-in for the first time.</p>
<h2>Prerequisites</h2>
<p>As I mentioned above, we don&#8217;t need to worry about collecting any financial information on our website because all the financial transaction stuff will be handled by Spreedly. However, there is one bit of data that we need to keep track of in order to redirect our users over to Spreedly and that is the subscription plan ID. The way I have chosen to handle this is by creating a table in my applications database to hold a copy of my subscription plans and each plan will include their Spreedly ID. Come to find out I needed to create this table anyway to track the limits of each subscription plan and hold my users to the limits of the account they purchased. So in reality I simply added an additional column to this table to hold the Spreedly ID.</p>
<p>Now you can chose to handle this any way that works for you and your application, but the bottom line is you simply need to be able to keep track of the subscription plans you have setup in Spreedly and the unique ID that has been assigned to them.</p>
<h2>Constructing the Subscribe Link</h2>
<p>So now that we have our subscription process down and have defined a place to keep track of our subscription plans and their IDs on the application side we can start looking at how exactly we will be linking to Spreedly.</p>
<p><a href="http://www.christophermonnat.com/wp-content/uploads/2010/04/spreedly-sub-plans.png"><img class="aligncenter size-full wp-image-980" title="spreedly-sub-plans" src="http://www.christophermonnat.com/wp-content/uploads/2010/04/spreedly-sub-plans.png" alt="" width="595" height="348" /></a></p>
<p>Spreedly makes it somewhat difficult to find your subscription plan ID so you have to go looking for it. When you are logged into your account, click <strong>Plans</strong> to view your subscription plans and click the name to edit it. The edit screen, which is shown above, allows you to make changes to your subscription plan. If you look at the URL of this page you will be able to find the ID of your subscription plan. It&#8217;s the number displayed between &#8220;subscription_plans&#8221; and &#8220;edit&#8221;. That&#8217;s the number you will need to keep track of on your application side. You should also take  a look at <a href="https://spreedly.com/manual/integration-guide/expose-a-subscribe-link/">their documentation</a> links in the box on the right side of the page which also reviews linking to subscription plans from your application.</p>
<p>OK, so now that we have our subscription plan IDs we need to determine what the URL is going to look like.</p>
<p><strong>https://spreedly.com/signupsheet/subscribers/84736/subscribe/1019/screen-name-for-84736</strong></p>
<p>The URL displayed above is a sample URL for the basic subscription plan.  Let&#8217;s take a look at this URL piece by piece to figure out what we need to modify:</p>
<ul>
<li><strong>https://</strong> &#8211; very important for security purposes. Since we are working with credit cards plain old http is forbidden.</li>
<li><strong>spreedly.com</strong> &#8211; as I&#8217;ve already mentioned, all the financial stuff is happening on the Spreedly servers and this is the proof.</li>
<li><span style="color: #993300;"><strong>signupsheet</strong></span> &#8211; this is your unique account short site name. This can be modified on the Site Details screen under Configuration.</li>
<li><strong>subscribers/<span style="color: #993300;">84736</span> </strong>- the number 84736 is the ID of the user or account in OUR system. So this number if the first thing we will customize. I recommend setting it to the unique identifier you use in your application to identify your accounts or users. Whatever is the root account level entity within your application. Be sure not to omit the &#8220;subscribers/&#8221; either, this identifies the ID your passing to Spreedly.</li>
<li><strong><span style="color: #993300;">1019</span></strong> &#8211; this is the subscription plan ID. This is the next thing we will customize depending on the subscription plan our user is purchasing.</li>
<li><span style="color: #993300;"><strong>screen-name-for-84736</strong></span> &#8211; this is a unique user/account name that we provide Spreedly. This is the last thing we will customize. Set this to whatever you wish, perhaps some combination of account name and ID. Whatever will make it easy for you to identify the account within Spreedly by name instead of ID.</li>
</ul>
<p>So that&#8217;s it. All URLs will be the same except for the 4 pieces identified above (in red): your short site name, an account/user ID from your system, the subscription plan ID and a user/account screen name. By customizing those segments you should now be able to successfully redirect your users to Spreedly for credit card processing.</p>
<h2>Passing Additional Data</h2>
<p>It&#8217;s also worth mentioning that you can pass additional data to your Spreedly subscription pages like the subscribers name and e-mail address. If you are already collecting this data on your applications sign-up form it would be helpful if these fields were already filled in on the subscription page. You can easily pass this data along to Spreedly by adding some GET variables onto the URL we constructed above:</p>
<ul>
<li>email=someone@someplace.com</li>
<li>first_name=someone</li>
<li>last_name=special</li>
</ul>
<p>If we use the above GET variables to pass additional information to our subscription forms, then our final Spreedly URL is going to look something like this:</p>
<p><strong>https://spreedly.com/signupsheet/subscribers/84736/subscribe/1019/screen-name-for-84736<span style="color: #993300;">?email=someone@someplace.com&amp;first_name=someone&amp;last_name=special</span></strong></p>
<p>That&#8217;s all there is to it. Once the user inputs their credit card information they will be redirected to the URL which you specified in the subscription plan settings. You can also modify this on the fly by providing an additional GET variable to your URL: return_url. Using that variable you can dynamically redirect the user wherever you specify upon successfully completing the payment process. This comes in handy if you need to pass any kind of dynamic information along with your user when they are redirected back to your site.</p>
<p><a href="http://www.christophermonnat.com/wp-content/uploads/2010/04/spreedly-checkout.png"><img class="aligncenter size-full wp-image-1002" title="spreedly-checkout" src="http://www.christophermonnat.com/wp-content/uploads/2010/04/spreedly-checkout.png" alt="" width="595" height="553" /></a></p>
<h2>What&#8217;s Next?</h2>
<p>If you followed along you should now be up and running with using Spreedly to manage your applications payment processing. You may however notice one thing is missing&#8230; we have no way of knowing whether the payment was processed successfully or not. The user simply gets redirected where we say and that&#8217;s it. We also have no way of knowing when their subscription expires (unless we track that ourselves). In the next post I will look at how we open up the lines of communication between Spreedly and our applications so that we know more about whose paying and whose not.</p>


<p>Related posts:<ol><li><a href='http://www.christophermonnat.com/2009/06/speedy-subscriptions-using-spreedly-part-2-account-configuration/' rel='bookmark' title='Permanent Link: Speedy Subscriptions Using Spreedly (Part 2) &#8211; Account Configuration'>Speedy Subscriptions Using Spreedly (Part 2) &#8211; Account Configuration</a></li>
<li><a href='http://www.christophermonnat.com/2010/08/speedy-subscriptions-using-spreedly-part-4-checking-for-updates/' rel='bookmark' title='Permanent Link: Speedy Subscriptions Using Spreedly (Part 4) &#8211; Checking for Updates'>Speedy Subscriptions Using Spreedly (Part 4) &#8211; Checking for Updates</a></li>
<li><a href='http://www.christophermonnat.com/2009/06/speedy-subscriptions-using-spreedly-part-1-service-overview-introduction/' rel='bookmark' title='Permanent Link: Speedy Subscriptions Using Spreedly (Part 1) &#8211; Overview &#038; Account Setup'>Speedy Subscriptions Using Spreedly (Part 1) &#8211; Overview &#038; Account Setup</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/fKth_ciXoGxYOUGHp8RgWlECssc/0/da"><img src="http://feedads.g.doubleclick.net/~a/fKth_ciXoGxYOUGHp8RgWlECssc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/fKth_ciXoGxYOUGHp8RgWlECssc/1/da"><img src="http://feedads.g.doubleclick.net/~a/fKth_ciXoGxYOUGHp8RgWlECssc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=S4zMwXTwpo8:k14BK27Fu2I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=S4zMwXTwpo8:k14BK27Fu2I:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=S4zMwXTwpo8:k14BK27Fu2I:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?i=S4zMwXTwpo8:k14BK27Fu2I:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/S4zMwXTwpo8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.christophermonnat.com/2010/04/speedy-subscriptions-using-spreedly-part-3-the-sign-up-process/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.christophermonnat.com/2010/04/speedy-subscriptions-using-spreedly-part-3-the-sign-up-process/</feedburner:origLink></item>
		<item>
		<title>EE 2.0 Module: Oneliners</title>
		<link>http://feedproxy.google.com/~r/ChrisMonnat/~3/LB8put6yVEU/</link>
		<comments>http://www.christophermonnat.com/2010/04/ee-2-0-module-oneliners/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 17:00:06 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[ExpressionEngine]]></category>

		<guid isPermaLink="false">http://www.christophermonnat.com/?p=951</guid>
		<description><![CDATA[As you may know, I&#8217;m in the process of re-developing Sign-Up-Sheet.com. When it came time to start building the new website I decided to use ExpressionEngine 2.0. I have been a long time fan of EE and now that it&#8217;s running on CodeIgniter I just had to use it for this project. Content management systems [...]]]></description>
			<content:encoded><![CDATA[<p>As you may know, I&#8217;m in the process of re-developing <a href="http://www.sign-up-sheet.com">Sign-Up-Sheet.com</a>. When it came time to start building the new website I decided to use <a href="http://expressionengine.com/public_beta/">ExpressionEngine 2.0</a>. I have been a long time fan of EE and now that it&#8217;s running on CodeIgniter I just had to use it for this project. Content management systems are handy but I think of EE more as a website framework because you can do just about anything with it (with a little bit of PHP). In building the new Sign-Up-Sheet.com I needed a simple way of managing little chunks of content so I decided to build a custom module. The module is called Onliners and in this post I&#8217;ll give you the details on what it does and how to use it.</p>
<p><span id="more-951"></span></p>
<h2>Features</h2>
<p>Oneliners gives you a super simple clean interface to manage little bits of content. By &#8220;little bits of content&#8221; I&#8217;m referring to nothing more than a sentence long. Using the module you can group your content into logical groupings and then display those groups using variables in your templates. In the template you can control the order and number of records returned by the module.</p>
<h2>Demo</h2>
<p><!-- VZAAR START --></p>
<div class="vzaar_media_player"><object id="video" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="590" height="409" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://view.vzaar.com/262687.flashplayer" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent" /><param name="src" value="http://view.vzaar.com/262687.flashplayer" /><param name="allowfullscreen" value="true" /><embed id="video" type="application/x-shockwave-flash" width="590" height="409" src="http://view.vzaar.com/262687.flashplayer" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" data="http://view.vzaar.com/262687.flashplayer"></embed></object></div>
<p><!-- VZAAR END --></p>
<h2>Requirements</h2>
<p>Oneliners is an ExpressionEngine <a href="http://expressionengine.com/public_beta/docs/cp/add-ons/module_manager.html">module</a> which requires ExpressionEngine 2.0.1+.</p>
<h2>Installation</h2>
<ol>
<li><a href="http://www.christophermonnat.com/wp-content/uploads/2010/04/Oneliner-EE2-Module.zip">Download</a> the latest version of the Oneliners module.</li>
<li>Extract the .zip file.</li>
<li>Copy the Onliners folder to your /system/expressionengine/third_party directory.</li>
<li>Open the <a href="http://expressionengine.com/public_beta/docs/cp/add-ons/module_manager.html">Module Manager</a>.</li>
<li>Install the Oneliners module.</li>
</ol>
<h2>Usage</h2>
<p>The control panel side is pretty self explanatory, refer to the demo video above for more details. There is only one variable pair available with this module and it is describe below:</p>
<h3>lines</h3>
<pre class="brush: html">
{exp:oneliners:lines group_id=&quot;1&quot;}
&lt;p&gt;{line}&lt;/p&gt;
{/exp_oneliners:lines}
</pre>
<p>Lines can be used to show all the lines belonging to the provided group ID. This variable pair has one required attribute: group_id. This attribute references the ID of the of the Onliner group you wish to display.</p>
<p><strong>Order Parameter</strong></p>
<p>You can specify the order in which your lines are displayed by including the optional &#8220;order&#8221; parameter:</p>
<pre class="brush: html">
{exp:oneliners:lines group_id=&quot;1&quot; order=&quot;rand&quot;}
</pre>
<p>Choices for the &#8220;order&#8221; parameter are:</p>
<ul>
<li>{exp:oneliners:lines order=&#8221;alpha&#8221;}</li>
<li>{exp:oneliners:lines order=&#8221;id&#8221;}</li>
<li>{exp:oneliners:lines order=&#8221;rand&#8221;}</li>
</ul>
<p><strong>Limit Parameter</strong></p>
<p>You can specify the number of lines you wish to display by including the optional &#8220;limit&#8221; parameter. If this attribute is not provided then all lines for the specified group will be displayed.</p>
<pre class="brush: html">
{exp:oneliners:lines group_id=&quot;1&quot; limit=&quot;3&quot;}
</pre>
<h2>Free to Use</h2>
<p>Feel free to download this module and use it for yourself. Post a comment if you have any issues or ideas on how to improve.</p>


<p>Related posts:<ol><li><a href='http://www.christophermonnat.com/2009/02/implementing-facebook-connect-part-3-accessing-data-from-facebook/' rel='bookmark' title='Permanent Link: Implementing Facebook Connect (Part 3) &#8211; Accessing Data from Facebook'>Implementing Facebook Connect (Part 3) &#8211; Accessing Data from Facebook</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/ijldzYv3DaE9VuxJ-awcprYAphY/0/da"><img src="http://feedads.g.doubleclick.net/~a/ijldzYv3DaE9VuxJ-awcprYAphY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ijldzYv3DaE9VuxJ-awcprYAphY/1/da"><img src="http://feedads.g.doubleclick.net/~a/ijldzYv3DaE9VuxJ-awcprYAphY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=LB8put6yVEU:fjfxyuOHhOE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=LB8put6yVEU:fjfxyuOHhOE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=LB8put6yVEU:fjfxyuOHhOE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?i=LB8put6yVEU:fjfxyuOHhOE:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/LB8put6yVEU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.christophermonnat.com/2010/04/ee-2-0-module-oneliners/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.christophermonnat.com/2010/04/ee-2-0-module-oneliners/</feedburner:origLink></item>
		<item>
		<title>Is it 2010 already?</title>
		<link>http://feedproxy.google.com/~r/ChrisMonnat/~3/5M2Csltnpkc/</link>
		<comments>http://www.christophermonnat.com/2010/03/is-it-2010-already/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 11:00:27 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Misc.]]></category>

		<guid isPermaLink="false">http://www.christophermonnat.com/?p=933</guid>
		<description><![CDATA[Is this really my first post in 2010?? Wow, that&#8217;s a bummer&#8230; so much for that new years resolution to pay more attention to the blog. Lot&#8217;s of things have been happening: sold BadgeTracker to a great bunch of folks back in January kicked off re-development of Sign-Up-Sheet.com in January&#8230; relaunching next month (hopefully) been [...]]]></description>
			<content:encoded><![CDATA[<p>Is this really my first post in 2010?? Wow, that&#8217;s a bummer&#8230; so much for that new years resolution to pay more attention to the blog. Lot&#8217;s of things have been happening:</p>
<ul>
<li>sold <a href="http://badgetrackerhq.com">BadgeTracker</a> to a great bunch of folks back in January</li>
<li>kicked off re-development of <a href="http://www.sign-up-sheet.com">Sign-Up-Sheet.com</a> in January&#8230; relaunching next month (hopefully)</li>
<li>been desperately trying to keep up with the <a href="http://personalmba.com/business-crash-course/">personal MBA business crash course</a> (to no avail)</li>
</ul>
<p>Mostly I&#8217;ve been trying to work on my new outlook, or master plan, that I mentioned in my <a href="http://www.christophermonnat.com/2009/12/entrepreneur-heal-thyself/">last post</a>. So far so good&#8230; very excited about relaunching Sign-Up-Sheet.com next month. And thanks to Sign-Up-Sheet I have a bunch of new things to share with you right here on the blog in the coming months.</p>
<p>Keep your eyes out for new posts as well as some other bits and bytes I&#8217;ve been working on. Stay tuned!</p>


<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/XFVMY4zcINY1f7VIdf3V2W62N00/0/da"><img src="http://feedads.g.doubleclick.net/~a/XFVMY4zcINY1f7VIdf3V2W62N00/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/XFVMY4zcINY1f7VIdf3V2W62N00/1/da"><img src="http://feedads.g.doubleclick.net/~a/XFVMY4zcINY1f7VIdf3V2W62N00/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=5M2Csltnpkc:H9WsB1yn304:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=5M2Csltnpkc:H9WsB1yn304:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=5M2Csltnpkc:H9WsB1yn304:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?i=5M2Csltnpkc:H9WsB1yn304:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/5M2Csltnpkc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.christophermonnat.com/2010/03/is-it-2010-already/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.christophermonnat.com/2010/03/is-it-2010-already/</feedburner:origLink></item>
		<item><title>Links for 2010-03-04 [del.icio.us]</title><link>http://feedproxy.google.com/~r/ChrisMonnat/~3/KjZQ8ya5hus/mrtopher</link><pubDate>Fri, 05 Mar 2010 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/mrtopher#2010-03-04</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.sitepoint.com/blogs/2010/03/04/how-to-override-php-configuration-settings/"&gt;How to Override PHP Configuration Options&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/KjZQ8ya5hus" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/mrtopher#2010-03-04</feedburner:origLink></item><item><title>Links for 2010-03-03 [del.icio.us]</title><link>http://feedproxy.google.com/~r/ChrisMonnat/~3/tmdPCxt0RWY/mrtopher</link><pubDate>Thu, 04 Mar 2010 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/mrtopher#2010-03-03</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://freelanceswitch.com/freelancing-essentials/keeping-yourself-motivated/"&gt;Keeping Yourself Motivated&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/tmdPCxt0RWY" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/mrtopher#2010-03-03</feedburner:origLink></item><item><title>Links for 2010-02-25 [del.icio.us]</title><link>http://feedproxy.google.com/~r/ChrisMonnat/~3/5A8J5pFQods/mrtopher</link><pubDate>Fri, 26 Feb 2010 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/mrtopher#2010-02-25</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.sitepoint.com/blogs/2010/02/25/why-you-need-facebook-fan-page/"&gt;12 Reasons You Need a Facebook Fan Page and 5 Easy Steps for Creating One&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.michaelwales.com/2010/02/basic-pattern-matching-form-validation-in-codeigniter/"&gt;Basic Pattern Matching Form Validation in CodeIgniter&lt;/a&gt;&lt;br/&gt;
Nice post by Michael Wales about extending CIs form validation library.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/5A8J5pFQods" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/mrtopher#2010-02-25</feedburner:origLink></item><item><title>Links for 2010-02-23 [del.icio.us]</title><link>http://feedproxy.google.com/~r/ChrisMonnat/~3/VkV1pRysbwk/mrtopher</link><pubDate>Wed, 24 Feb 2010 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/mrtopher#2010-02-23</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://artofmanliness.com/2010/02/22/8-reasons-you-need-to-rediscover-your-passion-for-exercise/"&gt;8 Reasons You Need to Rediscover Your Passion for Exercise&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.haughin.com/2010/02/23/building-utf8-compatible-codeigniter-applications/"&gt;Building UTF8 Compatible CodeIgniter Applications&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/VkV1pRysbwk" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/mrtopher#2010-02-23</feedburner:origLink></item><item><title>Links for 2010-02-22 [del.icio.us]</title><link>http://feedproxy.google.com/~r/ChrisMonnat/~3/izioN5pSkTQ/mrtopher</link><pubDate>Tue, 23 Feb 2010 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/mrtopher#2010-02-22</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/02/22/the-seven-deadly-sins-of-javascript-implementation/"&gt;The Seven Deadly Sins Of JavaScript Implementation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/izioN5pSkTQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/mrtopher#2010-02-22</feedburner:origLink></item><item><title>Links for 2010-02-15 [del.icio.us]</title><link>http://feedproxy.google.com/~r/ChrisMonnat/~3/4gZ26Noynic/mrtopher</link><pubDate>Tue, 16 Feb 2010 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/mrtopher#2010-02-15</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2010/02/13/the-definitive-guide-to-styling-web-links/"&gt;The Definitive Guide To Styling Web Links&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://royal.pingdom.com/2010/02/12/how-google-celebrated-science-in-2009/"&gt;How Google celebrated science in 2009&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/4gZ26Noynic" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/mrtopher#2010-02-15</feedburner:origLink></item><item>
		<title>Entrepreneur Heal Thyself</title>
		<link>http://feedproxy.google.com/~r/ChrisMonnat/~3/EMkF6qVIXBg/</link>
		<comments>http://www.christophermonnat.com/2009/12/entrepreneur-heal-thyself/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 19:24:30 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.christophermonnat.com/?p=899</guid>
		<description><![CDATA[As a freelancer or sole proprietor, how do you decide when to start a new project? I&#8217;m not talking about taking on client projects&#8230; I&#8217;m referring to ventures, product or application ideas that you have and think would make a good business. Are you the kind of person who gets an idea in their head [...]]]></description>
			<content:encoded><![CDATA[<p>As a freelancer or sole proprietor, how do you decide when to start a new project? I&#8217;m not talking about taking on client projects&#8230; I&#8217;m referring to ventures, product or application ideas that you have and think would make a good business. Are you the kind of person who gets an idea in their head one day and jumps in head first the next? Or, do you need to have a plan in place with potential return on investment before you pick up your mouse? Until recently, I would have said that I fell in between those two extremes landing a bit closer to needing a plan than jumping in. However, over the last several months I have come to the conclusion that I fall smack dab in the first group and have determined that that&#8217;s not necessarily a good thing.</p>
<p><span id="more-899"></span></p>
<h2>To program, or not to program that is the question</h2>
<p>If you have spent any time on this site or on <a href="http://leftofcentercom.com">LOCCs</a> you will have some idea of the projects I&#8217;m involved with. I developed BadgeTracker about 5 years ago, Sign-Up-Sheet.com followed about a year or two later accompanied most recently by myScoutPath and ScoutMailer. Contrary to most entrepreneurs I actually found my niche <strong>after</strong> I had developed a product. BadgeTracker was developed quickly and gained a following and after a little research I determined that the scouting industry was an attractive market to compete in so I selected it as my niche. The products that followed were aimed at scouts first and other groups second and I saw that as having great potential.</p>
<p>The problem here, that I didn&#8217;t realize until just recently, is that I had taken on too much. While I do outsource some work to contractors I am the only programmer, support person and business administrator I got. That means that while I&#8217;m answering support e-mails development stops. While I&#8217;m following up on overdue invoices no one is following up with the sales leads. While I&#8217;m programming no one is marketing. This lead to having 3 or 4 mediocre projects/products that were moving forward at a snails pace.</p>
<p>I had jumped head first into any idea that popped into my head, investing time and money to get it online and then ran out of resources to sustain, support and grow them. This lead to a great deal of frustration on my part because I was unable to work on the things I wanted to work on, investigate new ideas and opportunities or even write on my blog because I was stuck in the muck.</p>
<h2>Wait&#8230; where&#8217;s the money?</h2>
<p>Some of you may be wondering why I didn&#8217;t hire a staff or assistants to help maintain some of this. The short answer is the money wasn&#8217;t there. While the scouting industry may have looked like an attractive market at first, I have found over the years that working with non-profits is somewhat complicated and making a sale is difficult needle to thread. So while I was making some money it wasn&#8217;t enough to hire help or even leave my day job to dedicate more time. All of this of course contributed to more frustration on my part which is a very unproductive mind set to be in.</p>
<h2>Recovery</h2>
<p>What this all boils down to is not having a good vision and plan in place for the business. I should have slowed things down and investigated new ideas a bit more before jumping in a starting development and I should have finished one thing before starting another. I&#8217;m sick and tired of being sick and tired so I think it&#8217;s time for a new plan.</p>
<p>The one thing that all great businesses have in common is  great products. There are plenty of businesses out there with mediocre products and they come and go each year along with whatever is &#8220;in&#8221; at the time. I have decided that I&#8217;m not content with creating mediocre products&#8230; I&#8217;m out to create a great product and doing that requires focus. So I&#8217;ve come to the conclusion that I need to &#8220;reboot&#8221; and start 2010 with a new plan/vision. I think Dr. Charles Emerson Winchester III, from M.A.S.H, put it best when he said &#8220;I do one thing at a time, I do it very well and then I move on.&#8221; This probably means some of my many projects and ideas may be discontinued or abandoned to drift with the current but I&#8217;m confident that this is a better approach than what I have been trying.</p>


<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/97lM8_Lnpqs2b6dEj_cvCaurQho/0/da"><img src="http://feedads.g.doubleclick.net/~a/97lM8_Lnpqs2b6dEj_cvCaurQho/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/97lM8_Lnpqs2b6dEj_cvCaurQho/1/da"><img src="http://feedads.g.doubleclick.net/~a/97lM8_Lnpqs2b6dEj_cvCaurQho/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=EMkF6qVIXBg:4n9NtwiYZOY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=EMkF6qVIXBg:4n9NtwiYZOY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=EMkF6qVIXBg:4n9NtwiYZOY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?i=EMkF6qVIXBg:4n9NtwiYZOY:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/EMkF6qVIXBg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.christophermonnat.com/2009/12/entrepreneur-heal-thyself/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.christophermonnat.com/2009/12/entrepreneur-heal-thyself/</feedburner:origLink></item>
		<item>
		<title>Update</title>
		<link>http://feedproxy.google.com/~r/ChrisMonnat/~3/-C0E1o3zF4o/</link>
		<comments>http://www.christophermonnat.com/2009/08/update/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 20:10:01 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Misc.]]></category>

		<guid isPermaLink="false">http://www.christophermonnat.com/?p=880</guid>
		<description><![CDATA[It&#8217;s been about a month since I posted anything worth while and I wanted to write a quick update to let everyone know I&#8217;m still here. Things are pretty hectic right now because I&#8217;m trying to get BadgeTracker ready for it&#8217;s next major release next month. That&#8217;s monopolizing most of my time at the moment [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been about a month since I posted anything worth while and I wanted to write a quick update to let everyone know I&#8217;m still here. Things are pretty hectic right now because I&#8217;m trying to get <a href="http://www.badgetracker.com">BadgeTracker</a> ready for it&#8217;s next major release next month. That&#8217;s monopolizing most of my time at the moment so of course the blog takes a back seat. I know I left you all hanging in the middle of a <a href="http://www.christophermonnat.com/guides/">post series on Spreedly</a> which I do intend on revisiting once things get back to abnormal but just hold tight for the time being. Better yet check out my <a href="http://delicious.com/mrtopher">Delicious</a> account, which is also syndicated in the sidebar under Side Notes. I usually post new links there once or twice a day about the exciting things going on on-line.</p>
<p>More soon!</p>


<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/AvxdEMtXnL4wvqe2ZpMr4-f3e4A/0/da"><img src="http://feedads.g.doubleclick.net/~a/AvxdEMtXnL4wvqe2ZpMr4-f3e4A/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/AvxdEMtXnL4wvqe2ZpMr4-f3e4A/1/da"><img src="http://feedads.g.doubleclick.net/~a/AvxdEMtXnL4wvqe2ZpMr4-f3e4A/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=-C0E1o3zF4o:fcdt8MvVwfc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=-C0E1o3zF4o:fcdt8MvVwfc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChrisMonnat?a=-C0E1o3zF4o:fcdt8MvVwfc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChrisMonnat?i=-C0E1o3zF4o:fcdt8MvVwfc:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChrisMonnat/~4/-C0E1o3zF4o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.christophermonnat.com/2009/08/update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.christophermonnat.com/2009/08/update/</feedburner:origLink></item>
	</channel>
</rss>
