<?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>Jonathan Kressaty</title>
	<atom:link href="http://jonathankressaty.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathankressaty.com</link>
	<description>Jonathan&#039;s Personal Blog</description>
	<lastBuildDate>Fri, 06 Jul 2012 04:09:33 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Setting Plesk Permissions for WordPress &amp; FTP</title>
		<link>http://jonathankressaty.com/2011/11/02/plesk-permissions-wordpress-ftp/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=plesk-permissions-wordpress-ftp</link>
		<comments>http://jonathankressaty.com/2011/11/02/plesk-permissions-wordpress-ftp/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 18:48:10 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://kressaty.com/?p=157</guid>
		<description><![CDATA[Steps to allow WordPress to have FTP and system write access providing FTP, upload, and automatic upgrade ability on Parallels Plesk.]]></description>
				<content:encoded><![CDATA[<p>Since I started using WordPress (and more importantly developing for WordPress) I have been plagued by what seems to be a very common issue &#8211; allowing WordPress to simultaneously have internal writing permissions without breaking FTP. When using WordPress on a linux/*nix server combined with Parallels Plesk, you&#8217;re subject to dealing with not only Apache and its permissions, but also the permissions setup by Plesk groups, Plesk users, and Plesk FTP restrictions.</p>
<p>The following steps are what I took to enable full FTP access and full Apache/PHP/system write access to the same directories and files. This was tested on Parallels Plesk v 10.1.1 on a Media Temple (dv) Dedicated Virtual 4.0 running Linux version 2.6.18-028stab093.2. In this configuration, Apache is running under the username Apache, but on other servers may run as www-data, nobody, or something else. You will need shell and sudo access to complete the following tasks.</p>
<p><strong>1. Add the apache user to the psacln (plesk) writable group.</strong><br />
You only need to do this once, however, at this time we have not tested what happens when apache is updated (so you may have to repeat after an update/upgrade)</p>
<pre>$ usermod -a -G psacln apache</pre>
<p>If the user running the web server is not apache (may be www-data or nobody) simply use that user at the end of this command.</p>
<p><strong>2. You now have to give the group write access on the directories and/or files necessary.</strong> In wordpress, you&#8217;ll want to do this on the entire directory that wordpress is living in.</p>
<pre style="text-decoration: line-through;">$ chmod g+w {file}
$ chmod -R g+w {directory/}</pre>
<p><strong>NOTE: After further testing, I&#8217;ve updated this to reflect better settings. Essentially we&#8217;re giving all folders group write access and all files normal 644 access</strong></p>
<pre>$ find wp-content/ -type f -exec chmod 644 {} \;
$ find wp-content/ -type d -exec chmod 775 {} \;</pre>
<p><strong>3. Now you have to give ownership to the directories and/or files.</strong> The psacln group is specific to plesk and is subject to change based on your environment.</p>
<pre>$ chown -R {ftp_username}:psacln {directory}/</pre>
<p><strong>4. I suggest you restart Apache once you&#8217;re done with these steps, and you may need an Apache restart after step 1 as well.</strong> On the Media Temple (dv) 4.0 Dedicated Virtual Apache runs as process httpd, though it may run as apache or something else in your server environment.</p>
<pre>$ service httpd restart</pre>
<p><strong>5. (Optional) Force WordPress to use the filesystem to run updates.</strong> WordPress runs through a routine determining how it&#8217;s going to write data (directly, FTP, SSH, etc.) but sometimes fails to use the direct method even though it&#8217;s available. <span style="text-decoration: line-through;">Usually there is a reason when WordPress does or doesn&#8217;t do something even though it&#8217;s possible, so this may be a concern (or it may be a dumb bug).</span> <a href="http://andrewnacin.com/" target="_blank">Andrew Nacin</a> has kindly chimed in via the comments to explain this -</p>
<blockquote><p>The reason WordPress sometimes doesn’t use the direct filesystem method even when it would work is because it only detects that the user on the PHP process is the owner. It doesn’t support detecting group-writeable. &#8230; essentially, we’re trying to avoid a situation where we create and therefore own a file, when normally we would not be the owner, and that then locks out the FTP user.</p></blockquote>
<p>That said, if you&#8217;d like to force WordPress to use the direct filesystem to write and modify data, simply add the following line to your wp-config.php file:</p>
<pre>define('FS_METHOD', 'direct');</pre>
<p>I would love to hear if this worked or didn&#8217;t work for you in your own server environment &#8211; again, this was a very specific test and I haven&#8217;t verified on other hosts, versions of Plesk, or versions of Linux. Please feel free to comment and let everyone know if it worked for you and where.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathankressaty.com/2011/11/02/plesk-permissions-wordpress-ftp/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Thank you.</title>
		<link>http://jonathankressaty.com/2011/10/05/thank-you/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=thank-you</link>
		<comments>http://jonathankressaty.com/2011/10/05/thank-you/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 02:18:03 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kressaty.com/?p=152</guid>
		<description><![CDATA[]]></description>
				<content:encoded><![CDATA[<p><a href="http://jonathankressaty.com/wp-content/uploads/2011/10/whynavypirate-stevejobs.jpg"><img class="aligncenter size-full wp-image-153" title="whynavypirate-stevejobs" src="http://jonathankressaty.com/wp-content/uploads/2011/10/whynavypirate-stevejobs.jpg" alt="" width="580" height="773" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://jonathankressaty.com/2011/10/05/thank-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2011 Mini Cooper S Countryman</title>
		<link>http://jonathankressaty.com/2011/07/11/2011-mini-cooper-s-countryman/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2011-mini-cooper-s-countryman</link>
		<comments>http://jonathankressaty.com/2011/07/11/2011-mini-cooper-s-countryman/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 22:32:18 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://kressaty.com/?p=137</guid>
		<description><![CDATA[The new baby. She&#8217;s fast. And pretty. And has four doors. And is completely awesome.]]></description>
				<content:encoded><![CDATA[<p style="text-align: left;"><a href="http://jonathankressaty.com/wp-content/uploads/2011/07/countryman.jpg"><img class="size-full wp-image-138" title="countryman" src="http://jonathankressaty.com/wp-content/uploads/2011/07/countryman.jpg" alt="" width="590" height="443" /></a></p>
<p style="text-align: left;">The new baby. She&#8217;s fast. And pretty. And has four doors. And is completely awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathankressaty.com/2011/07/11/2011-mini-cooper-s-countryman/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Want a great API? Don&#8217;t use Goodreads&#8217;</title>
		<link>http://jonathankressaty.com/2011/05/26/want-a-great-api-dont-use-goodreads/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=want-a-great-api-dont-use-goodreads</link>
		<comments>http://jonathankressaty.com/2011/05/26/want-a-great-api-dont-use-goodreads/#comments</comments>
		<pubDate>Thu, 26 May 2011 08:16:09 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://kressaty.com/2011/05/26/want-a-great-api-dont-use-goodreads/</guid>
		<description><![CDATA[I&#8217;m in the middle of a client project for a local public library &#8211; building a simple mobile site that makes book recommendations based on genres. The titles come from their RSS feeds and we grab additional data from Goodreads. Easy and fun right? No. Wrong. Very Wrong. To put it plainly, the Goodreads API [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m in the middle of a client project for a local public library &#8211; building a simple mobile site that makes book recommendations based on genres. The titles come from their RSS feeds and we grab additional data from <a href="http://goodreads.com">Goodreads</a>. Easy and fun right?</p>
<p>No. Wrong. Very Wrong.</p>
<p>To put it plainly, the Goodreads API is a mess. A convoluted, poorly designed, agonizingly slow mess. To demonstrate, I thought I&#8217;d walk you through a few of their API terms (found <a href="http://www.goodreads.com/api/terms">here</a>).</p>
<p><strong>1. Not request any method more than once a second. Goodreads tracks all requests made by developers.</strong></p>
<p>This sucks. If in your app you want to query a book, grab a review, show the author&#8217;s bio, and recommend other books in that series, you need to make 4 API calls. To abide by Goodreads&#8217; terms, you need to make that request last <strong>4 seconds</strong>. Seriously?! It&#8217;s 2011 &#8211; I can make thousands of requests in that time from hundreds of other APIs. But the best part? <strong>It actually takes longer than 4 seconds because the response time from Goodreads per request is over 1 second. </strong>Plus, if you read term #5, they say you can&#8217;t store anything &#8211; so every pageload is going to take several seconds. Sounds like an awesome user experience, right?</p>
<p><strong>3. Link back to the page on Goodreads where the data data [sic] appears. For instance, if displaying a review, the name of the reviewer and a &#8220;more&#8230;&#8221; link at the end of the review must link back to the review detail page. You may not nofollow this link.</strong></p>
<p>I had no idea a webservice could be so selfishly greedy. What this is really saying is &#8220;We will NOT give you the full review of anything, you must link back to our site to see it, and you must give us link credit for every review you display in your app.&#8221;</p>
<p>This is all very frustrating. Goodreads has fantastic data &#8211; I&#8217;ll be the first to admit that &#8211; but they&#8217;re actively DISCOURAGING developers from using it!</p>
<p><strong>But the worst part is the developer support.</strong></p>
<p>I was building the application and came across the fact that only a handful of API endpoints returned JSON &#8211; the others only returned XML. Not a huge deal, but when trying to save as much time as possible due to aforementioned request time, I wanted to parse JSON in PHP rather than load the SimpleXML resources. I thought this was odd (maybe a bug) so I searched in the developer forums; lo and behold, someone else had the same request. They explained that they were using the Goodreads API as an example in a classroom setting and wanted to give the students JSON to work with. Here&#8217;s the response from a Goodreads employee:</p>
<p>&#8220;It&#8217;s a bit of work to add this. Someday it will likely happen, but probably not that soon. If you were using an API for a class, I don&#8217;t think our documentation is that great either. I think flickr has a much more mature api.&#8221;</p>
<p><strong>Yes. A Goodreads employee said &#8220;That&#8217;s too hard so we won&#8217;t do it, and our API and documentation isn&#8217;t good enough for you to use in a class. Use something else.&#8221;</strong></p>
<p>(You can read this entire thread here: <a href="http://www.goodreads.com/topic/show/453508-can-we-get-json-for-all-calls?page=1#comment_27316799">http://www.goodreads.com/topic/show/453508-can-we-get-json-for-all-calls?page=1#comment_27316799</a>)</p>
<p>In the end, I&#8217;m saddened and appalled. I can&#8217;t deliver the product a client wants, I&#8217;ve spent several hours fighting an API that is simply poorly documented, developed, and supported, and as someone working on building an API for another product I&#8217;m utterly shocked that something like this can be called an active release from a company that has raised nearly $3 Million in venture funding.</p>
<p>It&#8217;s 2011 guys. Catch up.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathankressaty.com/2011/05/26/want-a-great-api-dont-use-goodreads/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Chandler Urban Art Project at Gangplank</title>
		<link>http://jonathankressaty.com/2011/02/28/chandler-urban-art-project-at-gangplank/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=chandler-urban-art-project-at-gangplank</link>
		<comments>http://jonathankressaty.com/2011/02/28/chandler-urban-art-project-at-gangplank/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 04:27:51 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Gangplank]]></category>

		<guid isPermaLink="false">http://kressaty.com/2011/02/28/chandler-urban-art-project-at-gangplank/</guid>
		<description><![CDATA[We had the awesome guys over at Tabu Tattoos come and paint a Gangplank graffiti mural for us. I setup my camera and did a time lapse of their work. Give some love over at the Gangplank Blog.]]></description>
				<content:encoded><![CDATA[<p>We had the awesome guys over at Tabu Tattoos come and paint a Gangplank graffiti mural for us. I setup my camera and did a time lapse of their work. Give some love over at the <a href="http://goo.gl/K2Uv9">Gangplank Blog</a>.</p>
<p><iframe width="660" height="371" src="http://www.youtube.com/embed/G38etj4PbM4?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://jonathankressaty.com/2011/02/28/chandler-urban-art-project-at-gangplank/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Implications of Facebook Currency</title>
		<link>http://jonathankressaty.com/2010/07/22/the-implications-of-facebook-currency/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-implications-of-facebook-currency</link>
		<comments>http://jonathankressaty.com/2010/07/22/the-implications-of-facebook-currency/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 12:40:00 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Social Networking]]></category>

		<guid isPermaLink="false">http://kressaty.com/2010/07/22/the-implications-of-facebook-currency/</guid>
		<description><![CDATA[There&#8217;s been a decent amount of buzz recently about Facebook potentially creating a &#8220;Facebook Credit,&#8221; or Facebook currency. We&#8217;ll call it the F$ for now. I had a great conversation with @edaz tonight about it, and it got me thinking. Our conversation focussed on things like a private group setting monetary policy, how the FBI, [...]]]></description>
				<content:encoded><![CDATA[<p>There&#8217;s been a decent amount of buzz recently about Facebook potentially creating a &#8220;Facebook Credit,&#8221; or Facebook currency. We&#8217;ll call it the F$ for now. I had a great conversation with <a href="http://www.twitter.com/edaz">@edaz</a> tonight about it, and it got me thinking. Our conversation focussed on things like a private group setting monetary policy, how the FBI, CIA, Interpol, and the IMF would have huge issues due to things like laundering through Facebook, how Facebook would have problems with private banks of F$ that they can&#8217;t insure (but have to quietly insure in order to keep their user-base happy), and how being able to observe a completely privatized economy (with the world&#8217;s third largest population) would be an incredible resource for economic education.&nbsp;</p>
<p>In the end, I came to a single conclusion that (I believe) really puts a Facebook currency in perspective: It&#8217;s the goal of a federal government to be just profitable enough to protect its citizens to the fullest extent possible. It&#8217;s the goal of Facebook to protect its citizens just enough to be profitable to the fullest extent possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathankressaty.com/2010/07/22/the-implications-of-facebook-currency/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone iOS 4.0 Group Texting</title>
		<link>http://jonathankressaty.com/2010/06/25/iphone-ios-4-0-group-texting/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=iphone-ios-4-0-group-texting</link>
		<comments>http://jonathankressaty.com/2010/06/25/iphone-ios-4-0-group-texting/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 05:30:16 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://kressaty.com/2010/06/25/iphone-ios-4-0-group-texting/</guid>
		<description><![CDATA[So this is interesting, especially since i built an app that does this, but you can now text a group of iOS 4.0 individuals from the iPhone. Make sure you have group text on &#8211; go to Settings =&#62; Messages and turn Group Messaging to &#8220;On&#8221;. Then go to the SMS app, add multiple iPhone [...]]]></description>
				<content:encoded><![CDATA[<p>So this is interesting, especially since <a href="http://www.betwext.com">i built an app that does this</a>, but you can now text a group of iOS 4.0 individuals from the iPhone.</p>
<p>Make sure you have group text on &#8211; go to Settings =&gt; Messages and turn Group Messaging to &#8220;On&#8221;. Then go to the SMS app, add multiple iPhone owners to the recipients, and send away. Everyone will receive everyone else&#8217;s responses.</p>
<p>Try it &#8211; I have a device, text me and another iPhone owner!</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathankressaty.com/2010/06/25/iphone-ios-4-0-group-texting/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>This post is testing Ping.fm =&gt; Twitter</title>
		<link>http://jonathankressaty.com/2010/06/25/this-post-is-testing-ping-fm-twitter/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=this-post-is-testing-ping-fm-twitter</link>
		<comments>http://jonathankressaty.com/2010/06/25/this-post-is-testing-ping-fm-twitter/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 01:22:01 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Admin]]></category>

		<guid isPermaLink="false">http://kressaty.com/2010/06/25/this-post-is-testing-ping-fm-twitter/</guid>
		<description><![CDATA[Self explanatory, right?]]></description>
				<content:encoded><![CDATA[<p>Self explanatory, right?</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathankressaty.com/2010/06/25/this-post-is-testing-ping-fm-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting This T-Shirt Made</title>
		<link>http://jonathankressaty.com/2010/06/25/getting-this-t-shirt-made/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=getting-this-t-shirt-made</link>
		<comments>http://jonathankressaty.com/2010/06/25/getting-this-t-shirt-made/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 11:00:18 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://kressaty.com/2010/06/25/getting-this-t-shirt-made/</guid>
		<description><![CDATA[I just threw this together. I can&#8217;t wait to hit up @brandxtshirts tomorrow. &#160; &#160; Or download an iPhone 4 friendly wallpaper below. &#160; &#160;]]></description>
				<content:encoded><![CDATA[<p>I just threw this together. I can&#8217;t wait to hit up <a href="http://www.twitter.com/brandxtshirts">@brandxtshirts</a> tomorrow.</p>
<p>&nbsp;</p>
<p><a href="http://jonathankressaty.com/wp-content/uploads/2011/07/Screen-shot-2010-06-24-at-8.55.07-PM.png"><img class="aligncenter size-full wp-image-69" title="You're Holding It Wrong" src="http://jonathankressaty.com/wp-content/uploads/2011/07/Screen-shot-2010-06-24-at-8.55.07-PM.png" alt="" width="714" height="780" /></a></p>
<p style="text-align: center;">
<p>&nbsp;</p>
<p>Or download an iPhone 4 friendly wallpaper below.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: center;"><span class="full-image-block ssNonEditable"><span><img src="/wp-content/uploads/2011/07/steve_wrong.png" alt="" /></span></span></p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://jonathankressaty.com/2010/06/25/getting-this-t-shirt-made/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>You&#8217;re Holding it Wrong &#8211; Life In Words</title>
		<link>http://jonathankressaty.com/2010/06/25/youre-holding-it-wrong-life-in-words/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=youre-holding-it-wrong-life-in-words</link>
		<comments>http://jonathankressaty.com/2010/06/25/youre-holding-it-wrong-life-in-words/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 10:25:02 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://kressaty.com/2010/06/25/youre-holding-it-wrong-life-in-words/</guid>
		<description><![CDATA[&#8220;reception sucks.&#8221; &#8220;it&#8217;s too expensive.&#8221; &#8220;my screen has bubbles.&#8221; &#8220;the plastic cracks.&#8221; &#8220;reception sucks.&#8221; repeat.]]></description>
				<content:encoded><![CDATA[<p>&#8220;reception sucks.&#8221;</p>
<p>&#8220;it&#8217;s too expensive.&#8221;</p>
<p>&#8220;my screen has bubbles.&#8221;</p>
<p>&#8220;the plastic cracks.&#8221;</p>
<p>&#8220;reception sucks.&#8221;</p>
<p>repeat.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathankressaty.com/2010/06/25/youre-holding-it-wrong-life-in-words/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
