<?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>Robert Payne</title>
	<atom:link href="http://robertjpayne.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://robertjpayne.com</link>
	<description>Interactive Developer</description>
	<lastBuildDate>Sun, 05 Sep 2010 07:13:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Texmate style snippets everywhere?</title>
		<link>http://robertjpayne.com/2010/09/05/texmate-style-snippets-everywhere/</link>
		<comments>http://robertjpayne.com/2010/09/05/texmate-style-snippets-everywhere/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 07:13:23 +0000</pubDate>
		<dc:creator>robertjpayne</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Objective-C 2.0]]></category>

		<guid isPermaLink="false">http://robertjpayne.com/?p=492</guid>
		<description><![CDATA[I recently have been having a deep desire for Textmate sort of snippets across all my code editors. For anyone that hasn&#8217;t used Textmate it&#8217;s probably the best text editor available even though it&#8217;s getting a bit dated. It&#8217;s snippet/commands system is insane. I&#8217;ve longed for a similar feature in other IDE&#8217;s so I can [...]]]></description>
			<content:encoded><![CDATA[<p>I recently have been having a deep desire for Textmate sort of snippets across all my code editors. For anyone that hasn&#8217;t used Textmate it&#8217;s probably the best text editor available even though it&#8217;s getting a bit dated.</p>
<p>It&#8217;s snippet/commands system is insane. I&#8217;ve longed for a similar feature in other IDE&#8217;s so I can generate code way faster and when typing fill ins have it enter that in in multiple spots.</p>
<p>I&#8217;ve been using Typinator and tried TextExpander both of which are good but provide basic snippets. Textexpander has better options in terms of running commands and having fill-ins but it&#8217;s engine is a lot slower and I&#8217;ve had it not work several times or leave half the abbreviated word still around after expanding text.</p>
<p>So like any software developer I researched what it takes to roll my own. Intercepting keyboard commands across all applications is tricky. There&#8217;s security reasons Mac OS X keeps it pretty limited.</p>
<p>I found two ways to do this, one of which is probably more stable and the other which is a much more powerful and flexible solution</p>
<ol>
<li>Using Accessibility and Key Logging
<ul>
<li>Stable solution and has appropriate API by apple</li>
<li>Requires users turn on Universal Access ( Accessibility )</li>
<li>Can really only manipulate keyboard commands nothing else</li>
</ul>
</li>
<li>Using SIMBL
<ul>
<li>Less stable as it loads extra code into every application</li>
<li>Full control over application &amp; text options</li>
</ul>
</li>
</ol>
<p>I&#8217;ve decided to get what I really wanted I&#8217;d need to take the SIMBL route as I wanted direct access to the text input.</p>
<p>SIMBL isn&#8217;t without it&#8217;s limitations though. For most applications the developer would probably have used NSTextView or just extended it making it very easy to full hack on whatever functionality you want on top of it. Other applications like Textmate itself use a completely custom text editor. That is they extend NSView and handle everything else manually.</p>
<p>So far I&#8217;ve gotten simple text expansion to work and it&#8217;s much faster than  Typinator or TextExpander. Since I&#8217;m only overriding key commands it&#8217;s very compatible currently and works really solid across all applications.</p>
<p>The next step is to get a pop-up dialog going for when you need to run fill-ins. Ultimately anything implementing a NSTextView would not go through a pop-up dialog.</p>
<p>For now it&#8217;s still a hobby project but I&#8217;m really keen on getting it to production quality since Textmate snippets everywhere would make my life a million times easier.</p>
<p>-Robert</p>
]]></content:encoded>
			<wfw:commentRss>http://robertjpayne.com/2010/09/05/texmate-style-snippets-everywhere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NSTask + Shell Scripts with shebangs!</title>
		<link>http://robertjpayne.com/2010/08/28/nstask-shell-scripts-with-shebangs/</link>
		<comments>http://robertjpayne.com/2010/08/28/nstask-shell-scripts-with-shebangs/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 02:24:53 +0000</pubDate>
		<dc:creator>robertjpayne</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Objective-C 2.0]]></category>

		<guid isPermaLink="false">http://robertjpayne.com/?p=476</guid>
		<description><![CDATA[I&#8217;ve used a text editor called Textmate for years and one of it&#8217;s coolest features is that you can create commands that are essentially shell scripts and use a shebang ( #!/usr/bin/python ) to tell the operating system what interpreter to run the script as. The main advantage of this is that a user can [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve used a text editor called Textmate for years and one of it&#8217;s coolest features is that you can create commands that are essentially shell scripts and use a shebang ( #!/usr/bin/python ) to tell the operating system what interpreter to run the script as.</p>
<p>The main advantage of this is that a user can code the script in whatever language they want. I personally prefer using python or php for most of my scripts since it&#8217;s what I&#8217;m familiar with.</p>
<p>Zwoptex is going to be using scriptable plugins soon and I needed to figure out how to implement something similar. I wanted it to work without writing any files to disk but unfortunately without parsing the shebang yourself you have to execute the script from a file.</p>
<p>Here&#8217;s what my workflow does now:</p>
<p>Write command to unique file in NSTemporaryDirectory()<br />
Set permissions to 770 on the file<br />
Set environment and stdin<br />
Execute file<br />
Read stdout<br />
Delete file</p>
<p>Sample Code:</p>

<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
20
21
22
23
24
25
26
27
28
29
30
31
32
</pre></td><td class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span>scriptPath <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>NSTemporaryDirectory<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#41;</span> stringByAppendingPathComponent<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSProcessInfo</span> processInfo<span style="color: #002200;">&#93;</span> globallyUniqueString<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span> stringByAppendingPathExtension<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;cmd&quot;</span><span style="color: #002200;">&#93;</span>;
<span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span>scriptSource <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSDictionary</span> dictionaryWithContentsOfFile<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSBundle</span> mainBundle<span style="color: #002200;">&#93;</span> pathForResource<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;scripts&quot;</span> ofType<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;plist&quot;</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span> objectForKey<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;echo&quot;</span><span style="color: #002200;">&#93;</span>;
&nbsp;
<span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span><span style="color: #002200;">!</span><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>scriptSource dataUsingEncoding<span style="color: #002200;">:</span>NSUTF8StringEncoding<span style="color: #002200;">&#93;</span> writeToFile<span style="color: #002200;">:</span>scriptPath atomically<span style="color: #002200;">:</span><span style="color: #a61390;">YES</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
	trace<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;error writing script file... %@&quot;</span>,scriptPath<span style="color: #002200;">&#41;</span>;
	<span style="color: #a61390;">return</span>;
<span style="color: #002200;">&#125;</span>
&nbsp;
<span style="color: #11740a; font-style: italic;">// MAKE SCRIPT TMP FILE EXECUTABLE</span>
<span style="color: #a61390;">system</span><span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSString</span> stringWithFormat<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;chmod 770 '%@'&quot;</span>,scriptPath<span style="color: #002200;">&#93;</span> UTF8String<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#41;</span>;
&nbsp;
<span style="color: #11740a; font-style: italic;">// CREATE PIPE/TASK</span>
<span style="color: #400080;">NSPipe</span> <span style="color: #002200;">*</span>pipeIn <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSPipe</span> pipe<span style="color: #002200;">&#93;</span> retain<span style="color: #002200;">&#93;</span>;
<span style="color: #400080;">NSPipe</span> <span style="color: #002200;">*</span>pipeOut <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSPipe</span> pipe<span style="color: #002200;">&#93;</span> retain<span style="color: #002200;">&#93;</span>;
<span style="color: #400080;">NSTask</span> <span style="color: #002200;">*</span>task <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSTask</span> alloc<span style="color: #002200;">&#93;</span> init<span style="color: #002200;">&#93;</span>;
&nbsp;
<span style="color: #11740a; font-style: italic;">// WRITE DATA TO PIPE</span>
<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>pipeIn fileHandleForWriting<span style="color: #002200;">&#93;</span> writeData<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSString</span> stringWithString<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;Hello world this is an awesome string test!&quot;</span><span style="color: #002200;">&#93;</span> dataUsingEncoding<span style="color: #002200;">:</span>NSUTF8StringEncoding<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>pipeIn fileHandleForWriting<span style="color: #002200;">&#93;</span> closeFile<span style="color: #002200;">&#93;</span>;
&nbsp;
<span style="color: #11740a; font-style: italic;">// EXECUTE SCRIPT</span>
<span style="color: #002200;">&#91;</span>task setLaunchPath<span style="color: #002200;">:</span>scriptPath<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#91;</span>task setStandardInput<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span>pipeIn fileHandleForReading<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#91;</span>task setStandardOutput<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span>pipeOut fileHandleForWriting<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#91;</span>task launch<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#91;</span>task waitUntilExit<span style="color: #002200;">&#93;</span>;
&nbsp;
<span style="color: #11740a; font-style: italic;">// REMOVE SCRIPT TMP FILE</span>
<span style="color: #a61390;">system</span><span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSString</span> stringWithFormat<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;rm -f '%@'&quot;</span>,scriptPath<span style="color: #002200;">&#93;</span> UTF8String<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#41;</span>;
&nbsp;
<span style="color: #400080;">NSData</span> <span style="color: #002200;">*</span>data <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>pipeOut fileHandleForReading<span style="color: #002200;">&#93;</span> availableData<span style="color: #002200;">&#93;</span>;
trace<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;%@&quot;</span>,<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSString</span> alloc<span style="color: #002200;">&#93;</span> initWithData<span style="color: #002200;">:</span>data encoding<span style="color: #002200;">:</span>NSUTF8StringEncoding<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#41;</span>;</pre></td></tr></table></div>

<p>You can see scriptSource is coming from a .plist I have stored on disk.</p>
<p>-Robert</p>
]]></content:encoded>
			<wfw:commentRss>http://robertjpayne.com/2010/08/28/nstask-shell-scripts-with-shebangs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To: Compile &amp; Install oursql on Mac OS X 10.6</title>
		<link>http://robertjpayne.com/2010/08/24/how-to-compile-install-oursql-on-mac-os-x-10-6/</link>
		<comments>http://robertjpayne.com/2010/08/24/how-to-compile-install-oursql-on-mac-os-x-10-6/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 02:14:36 +0000</pubDate>
		<dc:creator>robertjpayne</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://robertjpayne.com/?p=74</guid>
		<description><![CDATA[I use oursql for my django powered websites now since the old python mysqldb connector was extremely buggy and is out of date. Unfortunately oursql isn&#8217;t super simple to get installed and has a few dependencies. Most Mac&#8217;s ship with python 2.6 or higher these days so I&#8217;m going to assume you&#8217;re using Python 2.6 [...]]]></description>
			<content:encoded><![CDATA[<p>I use oursql for my django powered websites now since the old python mysqldb connector was extremely buggy and is out of date. Unfortunately oursql isn&#8217;t super simple to get installed and has a few dependencies.</p>
<p>Most Mac&#8217;s ship with python 2.6 or higher these days so I&#8217;m going to assume you&#8217;re using Python 2.6 from the standard locations. I&#8217;m also assuming you&#8217;ve already installed MySQL Server 5.1 or greater. This guide is for 5.1 so if you&#8217;re using a different version you may need to modify a few paths.</p>
<h4>1) Install pip</h4>
<p>You can skip this step if you already have pip up and running<br />
<code>sudo easy_install pip</code></p>
<h4>2) Install cython</h4>
<p>oursql needs this to compile properly<br />
<code>sudo pip install cython</code></p>
<h4>3) Download oursql</h4>
<p>This guide is made using 0.9.2. You can download oursql from <a href="https://launchpad.net/oursql">here</a>.</p>
<h4>4) Compile oursql</h4>
<p>oursql needs a little help to compile specifically we need to make it 64-bit and point it towards the mysql_config binary that the mysql package installed<br />
<code>ARCHFLAGS="-arch x86_64" python setup.py build_ext --mysql-config=/usr/local/mysql/bin/mysql_config</code></p>
<h4>5) Install oursql</h4>
<p><code>sudo python setup.py install</code></p>
<p>Assuming there wasn&#8217;t any errors oursql should be installed and ready to go.</p>
<p>-Robert</p>
]]></content:encoded>
			<wfw:commentRss>http://robertjpayne.com/2010/08/24/how-to-compile-install-oursql-on-mac-os-x-10-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I left Media Temple</title>
		<link>http://robertjpayne.com/2010/08/23/why-i-left-media-temple/</link>
		<comments>http://robertjpayne.com/2010/08/23/why-i-left-media-temple/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 13:43:03 +0000</pubDate>
		<dc:creator>robertjpayne</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://robertjpayne.com/?p=70</guid>
		<description><![CDATA[Over the past three months my domains have seen an large increase of traffic. Most of this is due to this blog and the Zwoptex App website. I was running a (dv) base 512mb box over at Media Temple. I had no problems whatsoever with Media Temple and they have always been great to me. [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past three months my domains have seen an large increase of traffic. Most of this is due to this blog and the Zwoptex App website.</p>
<p>I was running a (dv) base 512mb box over at Media Temple. I had no problems whatsoever with Media Temple and they have always been great to me. I needed more memory on the server to handle to increased load and the options I was looking at were not pretty:</p>
<p>$20/mo for ram addon 256mb, no migration necessary<br />
$50/mo for the next (dv) scale up for 512mb, no migration necessary<br />
$30/mo for (ve) 512mb server, migration necessary<br />
$50/mo for (ve) 1024mb server, migration necessary<br />
Looking at these options it was obvious. The (ve) was the best bang for the buck. It has downsides though the (ve) server is a barebones linux box with nothing installed and no control panel.</p>
<p>I&#8217;m no system admin and definitely not a linux guru but I didn&#8217;t like plesk much anyways and it seemed to be a huge hog on memory anyways so I decided I&#8217;d start with a $30/mo (ve) and see if I could make it work.</p>
<p>To keep a long story short setting it up took me awhile. Mostly my mail services were the hardest, getting postfix+dovecot all nice and friendly over SSL and imap wasn&#8217;t easy but I managed to get it working. During the process I decided to add a $20/mo snapshot service onto the deal so I could revert back to &#8220;stable&#8221; versions of the box if I messed up setting up a package.</p>
<p>After the initial week in which I was just really happy because everything was working I decided I really needed to look into backing up data off the server incase of a system failure. Specifically the order data from Zwoptex and my email. This is where media temple really started to not become so awesome. Their snapshot service is $20/mo for a single snapshot that can only be manually triggered. Yeap that&#8217;s right for $20 you can&#8217;t even schedule it to run daily,weekly, or even monthly. You have to log into the control panel and click &#8220;renew backup&#8221;. To make it worse you can&#8217;t clone this backup image into a new server for things like load balancing, testing new features or whatever you see fit. $20 is a hefty price-tag for such limited features.</p>
<p>So I decided I&#8217;d use rsync and ditch the snapshot service. Another (ve) was only $30/mo anyways and I could then do everything I needed, backup data, use it for dev testing and more. As I was setting all this up someone in the ubuntu-servers irc asked me why I wasn&#8217;t using a gold server image and just backing up to it or restore from it. I explained how (mt) doesn&#8217;t let you do this and he provided a link to his host provider that showed how it works. While it was cool it was a UK based host and I wasn&#8217;t really looking at moving providers anyways I just wanted to get a daily backup with rsync working and I had already put down $30/mo for the new (ve) anyways.</p>
<p>Well after about a week of trying to get the second (ve) setup to act as a dev box as well as backup box I was starting to get fed up. No snapshot service on it meant trying to set it up after a restore was long and painstaking. I looked at other providers at this point but nothing really looked good enough for the migration hassle of switching services. Linode and Slicehost both charge similar prices with albeit more flexibility in the snapshots but still nothing big enough to make the migration pain worth it.</p>
<p>Finally got my dev server setup and rsync was working ok though restoring data was going to be a pain should I ever have to at least it&#8217;s there and working. Then I started noticing issues on my main box mostly due to my configuration settings. I decided I&#8217;d make the dev box all new and secure and then switch to it and mirror it to the current main box after the fact so it would be the dev box.</p>
<p>I forget what article I was looking at but some how-to on slicehosts&#8217;s knowledge base and I noticed on the footer how slicehost is owned by rackspace. I knew who they were but I hadn&#8217;t visited rackspace&#8217;s website in a very long time. Mostly I knew they had amazing support via live chat but were ridiculously expensive because they were mostly just involved in the dedicated server business not shared or vps hosting.</p>
<p>Anyways I clicked on the link and off to rackspace I went. Long story short that click to rackspace turned into a 60 minute reading/talking with sales staff and eventually purchasing a hosting plan for trial.</p>
<p>I&#8217;m not an affiliate with rackspace but the prices they offer for the features is incredible here&#8217;s what I was going to get:</p>
<p>20gb storage, 512mb ram, Xen VPS &#8211; $0.03/hour ( 3 cents an hour )<br />
Bandwidth is pay for what you use. $0.22/gb out and $0.08/gb in<br />
Unlimited manual snapshots and scheduling a weekly/daily snapshot FREE<br />
That&#8217;s right, the snapshot services they offer are FREE and you can create as many as you like manually as well as schedule a weekly and daily for automated peace of mind.</p>
<p>Take it a step further and you can store your snapshots in their cloud file hosting service for only $0.22/gb per month.</p>
<p>While price was a factor I would be willing to pay double what I paid at media temple just for what rackspace has to offer. Sadly mediatemple doesn&#8217;t even offer some of these features at any price tag.</p>
<p>Pay per hour is too good to be true. I can clone my server and have a dev box ready to go with exactly the same data as the production box. Luckily I&#8217;m only paying per hour so I can do a few hours of work, push the changes back to the production box and then delete the dev box.<br />
Backups are essential and rackspace delivers. I&#8217;m sorry mediatemple you really drop the ball here. No option for any automation of backups is a bit naive these days. I have vital information on my server and it&#8217;s unfortunate there&#8217;s no way you can provide any solution for me to keep this safe and sound.<br />
Live chat support. It&#8217;s incredible you don&#8217;t pay more just for this. I&#8217;ve had a few times I contacted support to get something added ( SPF records to DNS zones etc.. ) and I never waited for more than 1 minute on live chat and they were always extremely helpful and never try to rush you. I should mention the wait time was no different at 3 am or 3 pm.<br />
Overall there is very little I think I&#8217;ll miss from media temple. I do love their account control panel and it&#8217;s got a tiny bit up on the one at rackspace but not much. Editing DNS records is definitely easier there but luckily you don&#8217;t have to do that very often anyways.</p>
<p>In conclusion every host has it&#8217;s pros and cons. Media Temple was never bad in any way for me. I never had any downtime or experienced any issues with them and enjoyed my 3+ years hosting with them. In the end it came down to backing up my data and the hassle it was Media Temple vs other providers. Anyone looking for a web host should always consider at least 3-4 providers and evaluate them based on their specific needs.</p>
<p>-Robert</p>
]]></content:encoded>
			<wfw:commentRss>http://robertjpayne.com/2010/08/23/why-i-left-media-temple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Site &amp; Blog Included</title>
		<link>http://robertjpayne.com/2010/08/22/new-site-blog-included/</link>
		<comments>http://robertjpayne.com/2010/08/22/new-site-blog-included/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 13:59:38 +0000</pubDate>
		<dc:creator>robertjpayne</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://robertjpayne.com/wordpress/?p=1</guid>
		<description><![CDATA[Finally decided to get my own blog. I write quite a bit of content related to Zwopple and Zwoptex on the Zwopple company blog but I always felt that it wasn&#8217;t a good idea to start to include more personal or unrelated content on that blog. Originally I wanted this site powered by python and [...]]]></description>
			<content:encoded><![CDATA[<p>Finally decided to get my own blog. I write quite a bit of content related to Zwopple and Zwoptex on the Zwopple company blog but I always felt that it wasn&#8217;t a good idea to start to include more personal or unrelated content on that blog.</p>
<p>Originally I wanted this site powered by python and a django flavored blogging system but after a couple of days of struggling and little luck I decided it was best to settle down with wordpress. It isn&#8217;t bad in any way I was just looking to eliminate php off my web servers completely to reduce memory usage.</p>
<p>Anyways, expect to see some more engaging content in the future related to all sorts of development I do.</p>
<p>Cheers,<br />
-Robert</p>
]]></content:encoded>
			<wfw:commentRss>http://robertjpayne.com/2010/08/22/new-site-blog-included/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
