<?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>Pratthost Developer Zone &#187; Web Apps</title>
	<atom:link href="http://devzone.pratthost.com/category/web-apps/feed/" rel="self" type="application/rss+xml" />
	<link>http://devzone.pratthost.com</link>
	<description>A resource for web developers</description>
	<lastBuildDate>Tue, 29 Jun 2010 18:47:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>WordPress: Just Upgraded to 2.7 &#8211; Wow!</title>
		<link>http://devzone.pratthost.com/2008/12/12/wordpress-just-upgraded-to-27/</link>
		<comments>http://devzone.pratthost.com/2008/12/12/wordpress-just-upgraded-to-27/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 20:44:34 +0000</pubDate>
		<dc:creator>Josh Pratt</dc:creator>
				<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://devzone.pratthost.com/?p=321</guid>
		<description><![CDATA[When I saw that WordPress 2.7 released yesterday (Dec. 11th), I didn&#8217;t really think much of it. After all &#8211; I don&#8217;t have any complaints about what WordPress is doing for me now. However, I decided to take the couple minutes to check out the video that they posted about it and I quickly realized [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://devzone.pratthost.com/wp-content/uploads/2008/10/icon_wordpress.jpg" alt="WordPress Icon" title="WordPress Icon" width="70" height="70" class="alignleft size-full wp-image-97" /></p>
<p>When I saw that <a href="http://wordpress.org/development/2008/12/coltrane/">WordPress 2.7 released</a> yesterday (Dec. 11th), I didn&#8217;t really think much of it.  After all &#8211; I don&#8217;t have any complaints about what WordPress is doing for me now.  However, I decided to take the couple minutes to check out the video that they posted about it and I quickly realized how stupid I would be if I didn&#8217;t upgrade!</p>
<p>I&#8217;m still exploring all the new features and I&#8217;m still in awe at the new user interface, but it is truly amazing.  Check out the video for yourself!  No need for me to list all the new features &#8211; the video does a fine job:</p>
<p><center><embed src="http://v.wordpress.com/hFr8Nyar" type="application/x-shockwave-flash" width="640" height="360" allowscriptaccess="always" allowfullscreen="true"></embed></center></p>
]]></content:encoded>
			<wfw:commentRss>http://devzone.pratthost.com/2008/12/12/wordpress-just-upgraded-to-27/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Basecamp: New Info From 37 Signals</title>
		<link>http://devzone.pratthost.com/2008/12/08/basecamp-new-info-from-37-signals/</link>
		<comments>http://devzone.pratthost.com/2008/12/08/basecamp-new-info-from-37-signals/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 21:28:09 +0000</pubDate>
		<dc:creator>Josh Pratt</dc:creator>
				<category><![CDATA[Basecamp]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://devzone.pratthost.com/?p=311</guid>
		<description><![CDATA[I was able to get in contact with a developer from 37 Signals over the weekend. I ran into some troubles finding a solid way to process the responses when you post, get, or put data to/from the Basecamp API. Turns out, the documentation is out-dated, and there are some known inconsistencies. So &#8211; now [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://devzone.pratthost.com/wp-content/uploads/2008/10/icon_basecamp.jpg" alt="" title="Basecamp Icon" width="68" height="68" class="alignleft size-medium wp-image-181" /></p>
<p>I was able to get in contact with a developer from <a href="http://www.37signals.com/">37 Signals</a> over the weekend.  I ran into some troubles finding a solid way to process the responses when you post, get, or put data to/from the Basecamp API.  Turns out, the documentation is out-dated, and there are some known inconsistencies.</p>
<p>So &#8211; now knowing some crucial information &#8220;from the horse&#8217;s mouth&#8221;, I know now how to properly process the responses.  This will be implemented in version 1.2.  I&#8217;ll keep you posted!</p>
]]></content:encoded>
			<wfw:commentRss>http://devzone.pratthost.com/2008/12/08/basecamp-new-info-from-37-signals/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Basecamp API: PHP Class &#8211; Version 1.1 Released</title>
		<link>http://devzone.pratthost.com/2008/12/04/basecamp-api-php-class-version-11-released/</link>
		<comments>http://devzone.pratthost.com/2008/12/04/basecamp-api-php-class-version-11-released/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 04:45:00 +0000</pubDate>
		<dc:creator>Josh Pratt</dc:creator>
				<category><![CDATA[Basecamp]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://devzone.pratthost.com/?p=299</guid>
		<description><![CDATA[Version 1.1 is now released. Please check out the Basecamp PHP Class page for new documentation and download information. There were a lot of changes, new methods (including file attachments), and bug fixes in 1.1. There&#8217;s still a lot of work to do, but I like to get it out into the user&#8217;s hands for [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://devzone.pratthost.com/wp-content/uploads/2008/10/icon_basecamp.jpg" alt="" title="Basecamp Icon" width="68" height="68" class="alignleft size-medium wp-image-181" /></p>
<p>Version 1.1 is now released. Please check out the <a href="http://devzone.pratthost.com/basecamp-php-class/">Basecamp PHP Class page</a> for new documentation and download information.</p>
<p>There were a lot of changes, new methods (including file attachments), and bug fixes in 1.1.  There&#8217;s still a lot of work to do, but I like to get it out into the user&#8217;s hands for feedback and bug-tracking.  If you are noticing something that isn&#8217;t working, or is glitchy, first check the method documentation within the class itself to make sure you are using it correction, then if it still isn&#8217;t working right &#8211; please let me know! (Post a comment here).</p>
<p>I may have easily incorrectly documented something, or forgot to make changes.  I ran out of time this evening and had to rush through it.  So, please keep that in mind!</p>
<p>I am very open to making quick changes/fixes and releases.  One of the best ways to contact me is through AIM (&#8220;creativearcjosh&#8221;).  Feel free to hop on and ask questions or make suggestions if I&#8217;m online.</p>
<p>I want to make this PHP class good, and solid.  So &#8211; I love the feedback and suggestions.  Keep them coming!</p>
]]></content:encoded>
			<wfw:commentRss>http://devzone.pratthost.com/2008/12/04/basecamp-api-php-class-version-11-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Basecamp API: PHP Class &#8211; Version 1.0 Launched</title>
		<link>http://devzone.pratthost.com/2008/11/21/basecamp-api-php-class-version-10-launched/</link>
		<comments>http://devzone.pratthost.com/2008/11/21/basecamp-api-php-class-version-10-launched/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 05:12:28 +0000</pubDate>
		<dc:creator>Josh Pratt</dc:creator>
				<category><![CDATA[Basecamp]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://devzone.pratthost.com/?p=268</guid>
		<description><![CDATA[The time has come to launch version 1.0 of my Basecamp PHP Class. It&#8217;s by no means complete, but it does a majority of the main core features. So, instead of sitting on it for a while, I figured that it was best to launch it early and keep building upon it (hoping too that [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://devzone.pratthost.com/wp-content/uploads/2008/10/icon_basecamp.jpg" alt="" title="Basecamp Icon" width="68" height="68" class="alignleft size-medium wp-image-181"  /></p>
<p>The time has come to launch version 1.0 of my Basecamp PHP Class.  It&#8217;s by no means complete, but it does a majority of the main core features.  So, instead of sitting on it for a while, I figured that it was best to launch it early and keep building upon it (hoping too that I will receive more feedback on it).</p>
<p>So, please check it out on the <a href="http://devzone.pratthost.com/basecamp-php-class/">Basecamp API PHP Class page</a>.  I whipped together a quick documentation page as well listing how to use the core methods, as well as a bunch of the simple set and get public methods.</p>
]]></content:encoded>
			<wfw:commentRss>http://devzone.pratthost.com/2008/11/21/basecamp-api-php-class-version-10-launched/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basecamp: PHP Class In Progress &#8211; Feedback Needed</title>
		<link>http://devzone.pratthost.com/2008/11/15/basecamp-php-class-in-progress-feedback-needed/</link>
		<comments>http://devzone.pratthost.com/2008/11/15/basecamp-php-class-in-progress-feedback-needed/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 20:39:25 +0000</pubDate>
		<dc:creator>Josh Pratt</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://devzone.pratthost.com/?p=227</guid>
		<description><![CDATA[I have begun working on a Basecamp PHP class (using cURL). I can certainly add in many of the basics, but I would love some feedback as to what YOU would like it to do. So, please write comments with ideas/wishlist of features that you would like to see in a Basecamp PHP class. At [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://devzone.pratthost.com/wp-content/uploads/2008/10/icon_basecamp.jpg" alt="" title="Basecamp Icon" width="68" height="68" class="alignleft size-medium wp-image-181" /></p>
<p>I have begun working on a Basecamp PHP class (using cURL).  I can certainly add in many of the basics, but I would love some feedback as to what YOU would like it to do.  So, please write comments with ideas/wishlist of features that you would like to see in a Basecamp PHP class.</p>
<p>At this point (not *quite* ready for a release), you pass the object your url and login credentials to create the object.  From that point, you can get information very easily on people, projects, messages, todos, etc. (returned as an xml object) from which you can sort through to find the data you need.</p>
<p>I haven&#8217;t yet created the functionality to post data &#8211; but that won&#8217;t be difficult, as I already know how to do it.</p>
<p>I&#8217;ll hope to have a release within the next couple weeks (hopefully).  I&#8217;ll create a static page for it similar to my Magento Product Import Script.</p>
<p><strong style="color: red">Update (11.16.08 &#8211; 9pm): </strong>  I have the class successfully posting comments (to any resource), and posting new messages is in the works.  Notifications and file attachments are also on the works.</p>
<p><strong style="color: red">Update (11.16.08 &#8211; 11:20pm): </strong>  Successfully posting messages to any given project id, category id, and you can easily set if a message is private or not.</p>
]]></content:encoded>
			<wfw:commentRss>http://devzone.pratthost.com/2008/11/15/basecamp-php-class-in-progress-feedback-needed/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Basecamp:  API Examples using PHP and cURL (GET)</title>
		<link>http://devzone.pratthost.com/2008/10/22/basecamp-api-examples-using-php-and-curl-get/</link>
		<comments>http://devzone.pratthost.com/2008/10/22/basecamp-api-examples-using-php-and-curl-get/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 01:29:00 +0000</pubDate>
		<dc:creator>Josh Pratt</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://devzone.pratthost.com/?p=180</guid>
		<description><![CDATA[I began working on a project today creating a type of work-request form. We use Basecamp for all of our project management, but since it&#8217;s a paid subscription and not something that we have control over, any extra functionality must be done elsewhere using Basecamp&#8217;s API. The Project: I work for a web development company, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://devzone.pratthost.com/wp-content/uploads/2008/10/icon_basecamp.jpg" alt="" title="Basecamp Icon" width="68" height="68" class="alignleft size-medium wp-image-181" /></p>
<p>I began working on a project today creating a type of work-request form.  We use Basecamp for all of our project management, but since it&#8217;s a paid subscription and not something that we have control over, any extra functionality must be done elsewhere using Basecamp&#8217;s API.</p>
<p>The Project:  I work for a web development company, and we have a good number of clients who request little updates/projects/additions on a fairly regular basis.  We started running into the occasion more and more that a client would send us an email labeled &#8220;URGENT&#8221; and expect us to get something done for them within the hour.  When you are busy with other things, that is an unreasonable expectation.  So, we have since applied &#8220;Rush Jobs&#8221;.  The standard turn-around guarantee is 10 business days.  If they want it done in 5 days, or 2 days, they pay more (just like FedEx).</p>
<p>We sent out letters at the beginning of 2008 informing all of our clients of the new policy, however, it didn&#8217;t really sink in.  So, our next thought (which is what I&#8217;m working on now) is to create a work-request form, forcing them to have to manually select the turn-around time, having the prices right there in front of their eyes, every time.</p>
<p>I won&#8217;t go into detail about how we&#8217;ve decided to architect the interface, and how it all works &#8211; but I will say that we are keeping the system up-do-date at all times with company, project, and person data from Basecamp using the available API.  I had an very difficult time finding good examples of how to both gather, and post information to and from Basecamp.  But, I managed to successfully do both, and I thought I&#8217;d share the wealth!</p>
<h4>Getting All Projects</h4>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$session</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$basecamp_url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'https://YOUR-BASECAMP-URL/'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$username</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'YOUR-BASECAMP-USERNAME'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$password</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'YOUR-BASECAMP-PASSWORD'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$session</span><span style="color: #339933;">,</span> CURLOPT_URL<span style="color: #339933;">,</span> <span style="color: #000088;">$basecamp_url</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'projects.xml'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$session</span><span style="color: #339933;">,</span> CURLOPT_HTTPAUTH<span style="color: #339933;">,</span> CURLAUTH_BASIC<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$session</span><span style="color: #339933;">,</span> CURLOPT_HTTPGET<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$session</span><span style="color: #339933;">,</span> CURLOPT_HEADER<span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$session</span><span style="color: #339933;">,</span> CURLOPT_HTTPHEADER<span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Accept: application/xml'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Content-Type: application/xml'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$session</span><span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$session</span><span style="color: #339933;">,</span>CURLOPT_USERPWD<span style="color: #339933;">,</span><span style="color: #000088;">$username</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;:&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$password</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">ereg</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;^(https)&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$request</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$session</span><span style="color: #339933;">,</span>CURLOPT_SSL_VERIFYPEER<span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$session</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$session</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h4>Getting People By Company ID</h4>
<p>You only need to change line 7 of the code above to:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$session</span><span style="color: #339933;">,</span> CURLOPT_URL<span style="color: #339933;">,</span> <span style="color: #000088;">$basecamp_url</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'contacts/people/COMPANY-ID'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h4>Getting A Single Project</h4>
<p>Again, you only need to change line 7 to:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$session</span><span style="color: #339933;">,</span> CURLOPT_URL<span style="color: #339933;">,</span> <span style="color: #000088;">$basecamp_url</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'projects/PROJECT-ID.xml'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>As you can see, there&#8217;s not much to change to get different results of information.  Though <a href="http://developer.37signals.com/basecamp/">Basecamp&#8217;s API</a> doesn&#8217;t really tell you how to set everything up in PHP very well, it does give you enough, once you&#8217;ve got it all setup, to figure out what you need to change line 7 to to give you the results you want.</p>
<p>The results that are returned are pure XML.  You can choose to do whatever you want with that information.  I personally have been using PHP&#8217;s <a href="http://us.php.net/simplexml">Simple XML</a>.  If you echo out the results, you&#8217;ll see the XML and see all the available children, otherwise, you can also check out <a href="http://developer.37signals.com/basecamp/reference.shtml">this page</a> on Basecamp&#8217;s API for a quick-reference of everything.  </p>
<p>Let&#8217;s say we used the API to return all of the people from a specific company id (2nd example above) to the variable $response.  Here is an example of how to display some of the XML results that we specify using Simple XML:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #000088;">$people_xml</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SimpleXMLElement<span style="color: #009900;">&#40;</span><span style="color: #000088;">$response</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$people_xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">person</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$person</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;strong&gt;&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$person</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">'first-name'</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$person</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">'last-name'</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;/strong&gt;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Email: &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$person</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">'email-address'</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;ID: &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$person</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">id</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;br /&gt;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>And that&#8217;s all there is to it.  It&#8217;s pretty straight-forward.  I&#8217;m currently working on a Basecamp PHP class that will at least handle all the functions that we&#8217;ll be using.  Maybe once it&#8217;s done, I&#8217;ll post it for download.  If you have any interest in a Basecamp PHP class, please post a comment and let me know &#8211; the more interest I get, the more motivated I&#8217;ll be to post it when I&#8217;m done.</p>
<p>I will be posting another article very soon about how to post information (messages, to-dos, file attachments) to Basecamp using the API.  Look for that fairly soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://devzone.pratthost.com/2008/10/22/basecamp-api-examples-using-php-and-curl-get/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Twitter: Follow the Product Import Script on Twitter</title>
		<link>http://devzone.pratthost.com/2008/10/09/twitter-follow-the-product-import-script-on-twitter/</link>
		<comments>http://devzone.pratthost.com/2008/10/09/twitter-follow-the-product-import-script-on-twitter/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 11:50:40 +0000</pubDate>
		<dc:creator>Josh Pratt</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://devzone.pratthost.com/?p=144</guid>
		<description><![CDATA[There are definitely better ways to keep people up-to-date on a project that is often changing than a web page or blog posts. So, for little updates, and updates about the Magento Product Import Script that I am working on, I&#8217;ve setup a Twitter account for any of you who are interested in keeping up [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://devzone.pratthost.com/wp-content/uploads/2008/10/icon_twitter.jpg" alt="" title="Twitter Icon" width="68" height="68" class="alignleft size-medium wp-image-145" /></p>
<p>There are definitely better ways to keep people up-to-date on a project that is often changing than a web page or blog posts.  So, for little updates, and updates about the <a href="http://devzone.pratthost.com/magento-product-import-script/">Magento Product Import Script</a> that I am working on, I&#8217;ve setup a <a href="http://www.twitter.com">Twitter</a> account for any of you who are interested in keeping up with the latest things that I&#8217;m working on.</p>
<p>My Twitter page is: <a href="http://www.twitter.com/Prattski">http://www.twitter.com/Prattski</a>.  Check it out, and stay updated!</p>
<p>If you haven&#8217;t seen already, I&#8217;ve also added my twitter posts to the right side bar of the blog here.  Well, that&#8217;s enough for now.  Time to go work on the script for a little while!</p>
]]></content:encoded>
			<wfw:commentRss>http://devzone.pratthost.com/2008/10/09/twitter-follow-the-product-import-script-on-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drop.io: Free and Easy Private File Sharing</title>
		<link>http://devzone.pratthost.com/2008/09/14/dropio-free-and-easy-private-file-sharing/</link>
		<comments>http://devzone.pratthost.com/2008/09/14/dropio-free-and-easy-private-file-sharing/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 20:19:38 +0000</pubDate>
		<dc:creator>Josh Pratt</dc:creator>
				<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://devzone.pratthost.com/?p=33</guid>
		<description><![CDATA[If you haven&#8217;t heard of drop.io yet, you might be glad you came across this post. Drop.io is a new website that offers free and unlimited 100mb file &#8220;drops&#8221; which you can make public or you can password protect them. You can have it last for as short as 1 day, or for as long [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://drop.io"><img src="http://devzone.pratthost.com/wp-content/uploads/2008/09/dropio_logo.gif" alt="" title="Drop.io Logo" width="126" height="45" class="alignleft size-medium wp-image-34" /></a></p>
<p>If you haven&#8217;t heard of <a href="http://drop.io">drop.io</a> yet, you might be glad you came across this post.  Drop.io is a new website that offers free and unlimited 100mb file &#8220;drops&#8221; which you can make public or you can password protect them.  You can have it last for as short as 1 day, or for as long as 1 year from the last time it was viewed.</p>
<p>It&#8217;s more than just a virtual file &#8220;drop&#8221; though.  Once you have created a drop, you can make it so that people can just &#8220;view only&#8221;, &#8220;view and add&#8221;, or &#8220;view, add, and delete&#8221;.  When you have your drop, you can use it however you wish.  But again, it&#8217;s more than viewing, adding, and deleting.  There are many ways to add content to your drop:</p>
<h4>Email or MMS</h4>
<p>You can easily email files to your drop by sending an email to: &#8220;dropname@drop.io&#8221;.  If you have your drop set to &#8220;view only&#8221;, this feature won&#8217;t work.  If you have the ability for people to add enabled, and you want even more security to the email feature, you can set an email key like this:  &#8220;dropname.emailkey@drop.io&#8221;.  Any files that you attach will be uploaded to your drop, and any text you add to the email will be included as comments.</p>
<h4>Voicemail</h4>
<p>Each drop has it&#8217;s own phone number and extension.  Make the call, wait for the prompt, and start recording.  Your voicemail will be converted to an MP3 and uploaded to your drop.  The only limitation is the size of your drop.  If there&#8217;s nothing in your drop, you&#8217;ve got 100mb to work with.  If you&#8217;ve only got a couple of mb left, be careful.  If you go over your limit, the entire voicemail will be lost.  100mb will get you about 400 minutes of voicemail.</p>
<h4>Fax</h4>
<p>You can receive faxes right into your drop.  Do use this feature, login to your drop as the admin, and through a simple form you can email a special coversheet (which includes the phone number and instructions) to whomever you wish.  The sender will then send their fax, and it will be converted to a PDF and uploaded into your drop.</p>
<h4>FireFox Plugin</h4>
<p>With the free FireFox plugin, you can drag and drop files right into FireFox.  You can also bookmark drops for easy access.  Instead of me explaining it, you&#8217;d benefit much more by <a href="http://static.drop.io/howto/dragdrop/index.html?utm_source=hp&#038;utm_medium=banner&#038;utm_term=firefox&#038;utm_content=plugin&#038;utm_campaign=tile#1">watching the video</a> on this page.</p>
<h4>The Upload Widget</h4>
<p>Your drop will supply you with a code snippet to include on any other website which will create a simple form allowing anyone to easily upload files directly to your drop.</p>
<h4>From Inside Your Drop</h4>
<p>Right from within your drop, you can add/delete files and comments very easily.</p>
<h3>Other Features</h3>
<p>On top of easy and free file sharing, there are other features that make drop.io an amazing service:</p>
<ul>
<li>Facebook: Easily import a drop to your Facebook profile</li>
<li>Twitter Alerts: You can have your Twitter status updated when the drop is updated</li>
<li>SMS Alerts: Receive a text message on your phone when your drop is updated</li>
<li>Email Alerts: Receive an email when your drop is updated</li>
<li>RSS: Subscribe to your drop in your favorite feed reader</li>
<li>Dropcast: Subscribe to your drop as an iTunes podcast</li>
<li>Bookmark: Easily bookmark the drop through your favorite service</li>
</ul>
<h4>Conference Calls</h4>
<p>This seems like an odd service to include with a drop, but your drop does have it&#8217;s own phone number and conference call extension.  So, if you need to have a conference call, and wanted to show someone some documents, you could send them your drop link, have tell them to look at the documents, and call the conference number listed there.  Important Note:  Conference calls are NOT recorded and uploaded to your drop.</p>
<h3>Drop.io Premium Service</h3>
<p>Drop.io does offer premium paid services for those who need a little extra.  The free service requires that your drop name be 7+ characters long.  With premium, you can have drop names as little as 2 characters.  Other than that, the only other extra is the size of your drop.  The pricing formula is:  1GB x 1 Year x 1 Drop = $10.  You can change any of those numbers ranging from, 1-25GB, 1-3 Years, and 1,2,3,5, or 10 Drops.  So, 5GB x 1 Year x 1 Drop = $50.  10GB x 2 Years x 1 Drop = $200.  You get the idea.  You can purchase this service for a new drop, or upgrade an existing drop that you already have.</p>
<h3>Summary</h3>
<p>There are even more features that I have not listed here that you get with every drop at drop.io.  And, they are continually working to make drop.io better, and continually adding features.  So, if you think it is awesome now, just wait &#8211; it will only get better.</p>
<p>All of the features I talked about in this article, except for the premium services, are completely free!  You aren&#8217;t even limited to just one drop.  You don&#8217;t even need an account to use it!  It couldn&#8217;t be more easy to use, and the features abound.  Don&#8217;t just take it from me, <a href="http://drop.io">try it for yourself</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://devzone.pratthost.com/2008/09/14/dropio-free-and-easy-private-file-sharing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
