<?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>Midnight Ryder Technologies</title>
	<atom:link href="http://www.midnightryder.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.midnightryder.com</link>
	<description>Software Development Services since 1999:  Web Development, Apps, iPhone, Android, and Video Games.  And a little mayhem.</description>
	<lastBuildDate>Thu, 16 May 2013 19:32:00 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>pnitsch/jsTerm · GitHub</title>
		<link>http://www.midnightryder.com/pnitschjsterm-%c2%b7-github/</link>
		<comments>http://www.midnightryder.com/pnitschjsterm-%c2%b7-github/#comments</comments>
		<pubDate>Thu, 16 May 2013 19:32:00 +0000</pubDate>
		<dc:creator>Davis Ray Sickmon, Jr.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[telnet]]></category>

		<guid isPermaLink="false">http://www.midnightryder.com/?p=774</guid>
		<description><![CDATA[https://github.com/pnitsch/jsTerm]]></description>
				<content:encoded><![CDATA[<p><a href='https://github.com/pnitsch/jsTerm' title=''>https://github.com/pnitsch/jsTerm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.midnightryder.com/pnitschjsterm-%c2%b7-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ways to Help Defend WordPress From Attackers and BotNets</title>
		<link>http://www.midnightryder.com/ways-to-help-defend-wordpress-from-attackers-and-botnets/</link>
		<comments>http://www.midnightryder.com/ways-to-help-defend-wordpress-from-attackers-and-botnets/#comments</comments>
		<pubDate>Wed, 15 May 2013 04:30:24 +0000</pubDate>
		<dc:creator>Davis Ray Sickmon, Jr.</dc:creator>
				<category><![CDATA[Tech Blog]]></category>
		<category><![CDATA[Borg]]></category>
		<category><![CDATA[Botnet]]></category>
		<category><![CDATA[cloudflare]]></category>
		<category><![CDATA[DreamHost]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.midnightryder.com/?p=765</guid>
		<description><![CDATA[As I&#8217;m writing this, MidnightRyder.com is under continuous attack from a BotNet. Of course, you might notice that it&#8217;s still up and running just fine &#8211; there&#8217;s reasons for that, and I&#8217;m going to help you keep yours up and &#8230; <a href="http://www.midnightryder.com/ways-to-help-defend-wordpress-from-attackers-and-botnets/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>As I&#8217;m writing this, MidnightRyder.com is under continuous attack from a <a class="zem_slink" title="Botnet" href="http://en.wikipedia.org/wiki/Botnet" target="_blank" rel="wikipedia">BotNet</a>. Of course, you might</p>
<div class="wp-caption alignright" style="width: 210px"><a href="http://en.wikipedia.org/wiki/File:Picard_as_Locutus.jpg" target="_blank"><img class="zemanta-img-inserted zemanta-img-configured" title="Patrick Stewart as Locutus, the assimilated Je..." alt="Patrick Stewart as Locutus, the assimilated Je..." src="http://upload.wikimedia.org/wikipedia/en/thumb/a/a1/Picard_as_Locutus.jpg/300px-Picard_as_Locutus.jpg" width="200" /></a><p class="wp-caption-text">Patrick Stewart as Locutus, the assimilated Jean-Luc Picard (Photo credit: Wikipedia)</p></div>
<p>notice that it&#8217;s still up and running just fine &#8211; there&#8217;s reasons for that, and I&#8217;m going to help you keep yours up and running, too.</p>
<p>Not familiar with the term &#8220;BotNet&#8221;? I&#8217;ll simplify a bit here: it&#8217;s a group of computers controlled by a third &#8211; usually somewhat unknown &#8211; party running a specific set of programs or scripts. What&#8217;s most important is that it&#8217;s a group of computers, not single computer you&#8217;re up against.</p>
<p>The disadvantage is simple: you can&#8217;t just block a single computer to solve the problem. The advantage is that the botnets aren&#8217;t super-sophisticated. They have a pre-defined set of scripts they run (though, some of them are able to be updated on the fly) looking for an easy way in most of the time.  Right now, the one that&#8217;s attacking MidnightRyder.com (and some of our customer sites) is attempting to find weak passwords &#8211; it&#8217;s looking for ways to log into the site, then, turn it into a member of the botnet.</p>
<p>Even if your site doesn&#8217;t become compromised and join the <a class="zem_slink" title="Borg (Star Trek)" href="http://en.wikipedia.org/wiki/Borg_%28Star_Trek%29" target="_blank" rel="wikipedia">Borg</a>, there&#8217;s another problem with such attacks:  if you&#8217;re on a server that isn&#8217;t particularly powerful (for instance, some share hosting environments &#8211; which means most of the $10 / mo. and less environments) the extra load could bring your server to it&#8217;s knees. At my last check, 5,000 separate machines had made at least one attempt at hitting this site.</p>
<p>Why do they do it?  Well, that&#8217;s well beyond the scope of this quick little article.  I may write something about it later, but, heck, you can Google information on that <img src='http://www.midnightryder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>We&#8217;re not going to block against JUST this botnet though &#8211; instead, let&#8217;s try and block against a wider range of threats than just the current one knocking on our door.</p>
<p>No one security method is perfect, so let&#8217;s steal from a concept called &#8220;<a class="zem_slink" title="Defence in depth" href="http://en.wikipedia.org/wiki/Defence_in_depth" target="_blank" rel="wikipedia">Defense in Depth</a>&#8221; &#8211; we&#8217;re not going to focus on using a single fix for the problem, instead, relying on multiple tools that do different jobs. (Quick note:  this is an article for those without much knowledge of security &#8211; you might learn something new, like the use of WordFence, if you&#8217;re already familiar with security, but this doesn&#8217;t cover extremely detailed scenarios, nor does it cover every possible scenario.)</p>
<h2>CloudFlare For Defense &amp; Load Reduction</h2>
<p>First, let&#8217;s add a new tool if you&#8217;re not already using it: <a class="zem_slink" title="CloudFlare" href="http://www.cloudflare.com" target="_blank" rel="homepage">CloudFlare</a>.  It&#8217;s going to do two things for us &#8211; first, if you don&#8217;t already have a good caching system (or don&#8217;t know what one is), you need CloudFlare installed.  In fact, it&#8217;s better than most of the default <a class="zem_slink" title="WordPress" href="http://wordpress.org" target="_blank" rel="homepage">WordPress</a> caching systems, because it acts as a cache outside of your hosting environment.  If you&#8217;re on a <a class="zem_slink" title="Shared web hosting service" href="http://en.wikipedia.org/wiki/Shared_web_hosting_service" target="_blank" rel="wikipedia">shared hosting</a> account somewhere, then you&#8217;ll probably notice something awesome after you install it:  you&#8217;ll see a new burst of speed on your site!</p>
<p>Using CloudFlare with WordPress based sites is pretty simple.</p>
<ul>
<li>First, sign up for a free CloudFlare account</li>
<li>Second, Install the CloudFlare plugin for WordPress</li>
<li>Third, follow the instructions in the Plugin <img src='http://www.midnightryder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
<p>On certain hosts, it&#8217;s even easier than that &#8211; no need for a WordPress plugin.  For instance, on DreamHost, go under Manage Domains, click your domain, and hit the checkbox for CloudFlare.  It handles the rest.</p>
<p>While CloudFlare&#8217;s primary job is to act as a cloud based content distribution network (CDN), it&#8217;s going to give us one of our first extra layers of security.  See, CloudFlare tries to act as a first line of defense by blocking known-bad stuff: bad URL&#8217;s, servers that are known to be compromised, things like that.  I said before that around 5,000 machines had attempted to attack MidnightRyder.com.  In reality, the number is almost twice that &#8211; CloudFlare has stopped 4,700+ attempts before they even got to this site!  So, in 36 hours, almost 10,000 attacks have been stopped or mitigated (but, the normal traffic for MidnightRyder.com, which is more than most small time blogs see, continues without a hiccup.)</p>
<p>Which means that CloudFlare helps to defend the site, reduce bad traffic, and keep our site up and running even when it&#8217;s under attack or would normally be overloaded with traffic.  Oh, and heck, let&#8217;s throw in one more thing &#8211; it also acts as a bit of a barrier against comment spammers. That&#8217;s a heck of a tool!</p>
<h2>Server Side Protection</h2>
<p>Now, for our next trick: some web hosting environments give you an option for &#8220;extra security&#8221;.  It&#8217;s basically just some configuration changes that are made to your site for you. I won&#8217;t dig into the nitty gritty of what it is, how it works, etc.  Instead, I&#8217;m going to tell you what to look for.  If you&#8217;re running on <a class="zem_slink" title="DreamHost" href="http://www.dreamhost.com" target="_blank" rel="homepage">DreamHost</a>, for instance, go in to the &#8220;Manage Domains&#8221; area of your control panel.  Click on your domain, and make sure the entry called &#8220;Extra Security&#8221; is checked.  Save your work, and in about 5 minutes, your server configuration will be tightened up a bit.  It&#8217;s not a huge change, but one worth making.</p>
<p>Now, if you&#8217;re on another hosting provider, you might wonder where it&#8217;s at.  Well&#8230; look for something similar.  Honestly, there&#8217;s no standard for it &#8211; do a little digging in their help, and you might find it <img src='http://www.midnightryder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h2>WordFence</h2>
<p>Similar to CloudFlare, <a href="http://www.WordFence.com" target="_blank">WordFence</a> gives us a free and a pay option.  For the most part, you probably don&#8217;t need the pay option.  Install the WordFence plugin, then go to the WordFence site and create an account, and follow their instructions for getting an API key, and place that in your WordFence options.</p>
<p>For the most part, you&#8217;re done.  You could call it good right there, and be done with it.  But&#8230; I like to tweak this part out a little bit.  On your site, go under WordFence -&gt; Options.  First, put an email address in the Basic Options area.  Don&#8217;t worry about the rest of the Basic Options, let&#8217;s move on to Advanced.</p>
<p>Here, we get some cool tools to play with.  Under Alerts, check all the boxes.  This does a couple of things.  First, if someone it attempting to login under an invalid account, the system is going to email you (and lock them out, based on configuration changes we make here shortly).  It&#8217;s going to give you a hint that something might be going on.  But the big hint is the admin login &#8211; if someone logs in as an Admin, and you&#8217;re the only person who has access to your site, but you see an email when you&#8217;re not actually logged in?  You know something just went wrong, and you can start scrambling to try and fix it.</p>
<p>The next section, Live Traffic View is kind of cool, but it&#8217;s a bit of a novelty, really.  You&#8217;ll probably never get to do much interesting with it, so it&#8217;s only going to take up CPU time and disk space.  I have mine turned on just because I like to watch the traffic, but acknowledge that I&#8217;m not going to do much with it. <img src='http://www.midnightryder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Under Scans to Include, turn them all on (except the subscriber only one, if you are using a free account).  We&#8217;ll run a scan here in a bit, but let&#8217;s finish configuring this all first.</p>
<p>Under Firewall rules, hit Enable Firewall Rules and Immediately Block Fake Google Crawlers</p>
<p>Under Login Security, enable it.  Make sure Immediately Lock Out Invalid Users and Don&#8217;t reveal valid usernames is turned on.</p>
<p>Now, then, go down and hit Save Changes at the bottom of the page.</p>
<p>Great &#8211; now we&#8217;ve got a couple layers of defense working for us.  CloudFlare stops a portion of them, then WordFence tries to stop those that get through the front line.  Not too bad, really.  It&#8217;s not perfect, and a determined hacker could probably make his way through our defenses if 1) he&#8217;s good, and / or 2) he&#8217;s determined enough.  Some people will refute what I&#8217;m about to say, but I&#8217;m going to say it anyway:  no matter how much security we put in place, no matter how tight we wind it all down, someone can find a way around it.  Even InfoSec (Information Security) guys get owned from time to time.  We&#8217;re just trying to make it harder, and block the most prevalent threats. We&#8217;re also giving ourselves some heads up when it looks like something might be going wrong!</p>
<h2>Updating Plugins &amp; Themes</h2>
<p>You notice I didn&#8217;t say to scan your site with WordFence just yet, right?  There&#8217;s a reason for that &#8211; we need to make sure all of our plugins are up to date.  This is something you should be doing anyways &#8211; all themes and plugins used in WordPress should be kept up to date at all times.  From time to time, plugin and theme authors make a mistake &#8211; they&#8217;re only human.  When it&#8217;s found, they update it, and if it&#8217;s a security issue, we need to make sure our system is updated, too.  That&#8217;s one less place someone might be able to get in.</p>
<p>So, under plugins, look and see if any of them say they have updates available.  If so, click update on them.  See, that was easy.  Same goes for themes.</p>
<p>One thing though &#8211; if you have extra themes or plugins that are installed, but aren&#8217;t currently active (and you don&#8217;t plan on making them active in the future), go ahead and delete them.  That&#8217;s one less potential point of entry, and one less headache we have to keep updating.</p>
<h2>WordFence Scanning</h2>
<p>OK, now that we&#8217;ve updated everything, let&#8217;s make sure our system is health.  Go to WordFence -&gt; Scan, and click on Start A Scan.  Now, let it do it&#8217;s thing.  If you&#8217;ve got a lot of articles, or are on a slow system, this may take a bit.  Have a cup of coffee, or whatever, and relax for a bit.  &#8217;Cause, see, WordFence does something pretty cool:  you don&#8217;t have to sit in front of the website waiting.  While It does have a display of any problems it finds, it will also email you the potential problems!  How awesome is that?</p>
<p>And, now that WordFence is installed and configured, once a day it&#8217;s going to scan your system for you. If anything new comes up, it&#8217;s going to email you and tell you what the problem it found is.  The most common one you&#8217;re going to see?  That you need to update plugins.  (That&#8217;s why I had you update everything first <img src='http://www.midnightryder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   As new updates for your installed plugins come out, WordFence is going to warn you about them, once a day.  It&#8217;s a great way to make sure you stay on top of fixing those!</p>
<h2>Conclusion</h2>
<p>This is by no means an industrial strength guide to security.  It&#8217;s a &#8220;Good Enough For Now&#8221; guide to securing WordPress.  But, to be honest, it&#8217;s more likely than not enough to keep your site from being borgified by the existing Botnets, protects from from some hackers, speeds up your site, and gives you a little extra protection from comment spammers.  Not bad for something that only takes 20 &#8211; 30 minutes to configure!</p>
<p>How do you protect against all possible threats?  Well&#8230; first, you&#8217;d have to get a pretty solid education in Information Security, and even then it&#8217;s a ever changing field as new technologies and new bad guys pop up.  And, as I&#8217;ve mentioned before, there&#8217;s no way to defend against everything.  I may write a couple more articles on how to further batten down the hatches at some point, if there&#8217;s demand for it. <img src='http://www.midnightryder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<address><em>Davis Ray Sickmon, Jr</em></address>
<address><em>Midnight Ryder Technologies</em></address>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/?px"><img class="zemanta-pixie-img" style="border: none; float: right;" alt="Enhanced by Zemanta" src="http://img.zemanta.com/zemified_e.png?x-id=fdaf3497-f1aa-42b1-a427-e3a50a3e8323" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.midnightryder.com/ways-to-help-defend-wordpress-from-attackers-and-botnets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scrolling to specific Div (or other) ID&#8217;s with iScroll 4</title>
		<link>http://www.midnightryder.com/scrolling-to-specific-div-or-other-ids-with-iscroll-4/</link>
		<comments>http://www.midnightryder.com/scrolling-to-specific-div-or-other-ids-with-iscroll-4/#comments</comments>
		<pubDate>Thu, 02 May 2013 04:09:02 +0000</pubDate>
		<dc:creator>Davis Ray Sickmon, Jr.</dc:creator>
				<category><![CDATA[Tech Blog]]></category>

		<guid isPermaLink="false">http://www.midnightryder.com/?p=726</guid>
		<description><![CDATA[A while back I did a little hacking on iScroll 4, which I use quite a bit for PhoneGap based applications (though, it works nice for anything mobile except Windows phones. IE doesn&#8217;t like iScroll). iScroll is becoming a bit &#8230; <a href="http://www.midnightryder.com/scrolling-to-specific-div-or-other-ids-with-iscroll-4/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 250px"><a href="http://www.flickr.com/photos/44124462151@N01/4923953409" target="_blank"><img class="zemanta-img-inserted zemanta-img-configured" title="Works with PhoneGap" alt="Works with PhoneGap" src="http://farm5.static.flickr.com/4102/4923953409_341540c55e_m.jpg" width="240" height="172" /></a><p class="wp-caption-text">Works with PhoneGap (Photo credit: Brian LeRoux)</p></div>
<p>A while back I did a little hacking on <a href="http://cubiq.org/iscroll-4" target="_blank">iScroll 4</a>, which I use quite a bit for <a class="zem_slink" title="PhoneGap" href="http://www.phonegap.com" target="_blank" rel="homepage">PhoneGap</a> based applications (though, it works nice for anything mobile except Windows phones. IE doesn&#8217;t like iScroll).</p>
<p>iScroll is becoming a bit less necessary (particularly after iOS 5 was released, which made some changes to mobile Safari), but I still use it for a couple of nice features.  One feature I always feel is lacking &#8211; I can&#8217;t tell it to specifically scroll to an ID.  I can define an element and do it that way, but it&#8217;s not quite as convenient.  So, here&#8217;s a quick function at adds scrollToId functionality:</p>
<p>&nbsp;</p>
<pre style="padding-left: 30px;">    scrollToId: function (el, time) {</pre>
<pre style="padding-left: 30px;">        var that = this, pos;</pre>
<pre style="padding-left: 30px;">        el = document.getElementById(el);</pre>
<pre style="padding-left: 30px;">        if (!el) return;</pre>
<pre style="padding-left: 30px;">        pos = that._offset(el);</pre>
<pre style="padding-left: 30px;">        pos.left += that.wrapperOffsetLeft;</pre>
<pre style="padding-left: 30px;">        pos.top += that.wrapperOffsetTop;</pre>
<pre style="padding-left: 30px;">        pos.left = pos.left &gt; 0 ? 0 : pos.left &lt; that.maxScrollX ? that.maxScrollX : pos.left;</pre>
<pre style="padding-left: 30px;">        pos.top = pos.top &gt; that.minScrollY ? that.minScrollY : pos.top &lt; that.maxScrollY ? that.maxScrollY : pos.top;</pre>
<pre style="padding-left: 30px;">        time = time === undefined ? m.max(m.abs(pos.left)*2, m.abs(pos.top)*2) : time;</pre>
<pre style="padding-left: 30px;">        that.scrollTo(pos.left, pos.top, time);</pre>
<pre>    },</pre>
<p>Pop this between scrollToElement and scrollToPage in iscroll.js.</p>
<p>Yes, I could just do &#8220;myScroll.scrollToElement(document.getElementById(&#8220;top&#8221;))&#8221;, but myScroll.scrollToId(&#8220;top&#8221;) looks a little nicer when I&#8217;m whipping through a ton of code looking for something specific. Just a preference thing, really.</p>
<p>I post it here for a funny reason: I upgraded iScroll in a project, and then couldn&#8217;t figure out for about 30 minutes why it no longer scrolled properly. And then I had to hunt down my older version of the project&#8230; so, as not to loose it again, I popped it on here. Plus, if anyone else is wondering a good way of doing it&#8230; well, there you go <img src='http://www.midnightryder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I&#8217;m sort of excited to see what the author does with iScroll 5 &#8211; I still find myself integrating it into PhoneGap / Cordova projects frequently.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/?px"><img class="zemanta-pixie-img" style="border: none; float: right;" alt="Enhanced by Zemanta" src="http://img.zemanta.com/zemified_e.png?x-id=18d187c6-019b-4210-8f9f-723257e21146" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.midnightryder.com/scrolling-to-specific-div-or-other-ids-with-iscroll-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I&#8217;m Still Using DreamHost, 10 Years Later (And Lessons For Other Businesses To Consider)</title>
		<link>http://www.midnightryder.com/why-im-still-using-dreamhost-10-years-later-and-lessons-for-other-businesses-to-consider/</link>
		<comments>http://www.midnightryder.com/why-im-still-using-dreamhost-10-years-later-and-lessons-for-other-businesses-to-consider/#comments</comments>
		<pubDate>Thu, 28 Mar 2013 05:53:58 +0000</pubDate>
		<dc:creator>Davis Ray Sickmon, Jr.</dc:creator>
				<category><![CDATA[Tech Blog]]></category>
		<category><![CDATA[cloudflare]]></category>
		<category><![CDATA[DreamHost]]></category>
		<category><![CDATA[HostGator]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[RackSpace]]></category>
		<category><![CDATA[Virtual Private Server]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.midnightryder.com/?p=702</guid>
		<description><![CDATA[10 years ago I got burned by my host.  Almost without warning, they went out of business &#8211; I didn&#8217;t have a whole lot of time to evaluate who I wanted to move to, so I did some quick Googling. &#8230; <a href="http://www.midnightryder.com/why-im-still-using-dreamhost-10-years-later-and-lessons-for-other-businesses-to-consider/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 271px"><a href="http://en.wikipedia.org/wiki/File:Dreamhost_logo.svg" target="_blank"><img class="zemanta-img-inserted zemanta-img-configured" title="DreamHost Logo" alt="DreamHost Logo" src="http://upload.wikimedia.org/wikipedia/en/thumb/8/88/Dreamhost_logo.svg/261px-Dreamhost_logo.svg.png" width="261" height="261" /></a><p class="wp-caption-text">DreamHost Logo (Photo credit: Wikipedia)</p></div>
<p>10 years ago I got burned by my host.  Almost without warning, they went out of business &#8211; I didn&#8217;t have a whole lot of time to evaluate who I</p>
<p>wanted to move to, so I did some quick Googling.  Well, actually, I didn&#8217;t Google it.  At that time <a class="zem_slink" title="AltaVista" href="http://en.wikipedia.org/wiki/AltaVista" target="_blank" rel="wikipedia">Alta-Vista</a> would have been the major search engine, and saying I Alta-Vista&#8217;ed it doesn&#8217;t sound quite right.</p>
<p>Anyway, a hasty selection was made, and away I went.  At this point it was the second host I had to move from &#8211; the previous one I fired due to downtime problems.  <a href="http://www.dreamhost.com/r.cgi?27256" target="_blank">DreamHost</a> was a bit different back then&#8230; now, $8.95 buys you unlimited everything in a shared hosting environment (cheap, but it&#8217;s still a shared hosting environment.)  Back then, $9.95 bought you 150 Mb of disk space and 20 Gb of transfer space, along with quite a few other limitations.</p>
<p>But, honestly, it was one of the better price -vs- performance places I had found, so I ran with it.</p>
<p>A bit over 10 years later, I&#8217;m glad I did.</p>
<p>As DreamHost grew, I managed to find a few good ways to improve my service level for next to nothing.  The $9.95 / mo., Level 1 account I had ended up upgraded to a $39.99 / mo. Level 3 &#8220;Code Monster&#8221; account for free, giving me extra goodies for the original $9.95.  I stuck with that a while, and gnashed my teeth from time to time when the server acted a little slow.  Though, DreamHost had an interesting trick &#8211; even with the free upgrade I got, ever month my account was being credited with more disk space and more transfer.  How cool &#8211; a company that rewards users for sticking with them!</p>
<p>When they introduced the VPS (Virtual Private Server) setups, I jumped at it, and loved the improvements.  It was faster, and had better storage and bandwidth.  Not bad, though now if you look at a shared server account it&#8217;s completely &#8220;unlimited&#8221;.</p>
<p>Before my next upgrade happened, DreamHost started hitting some bumps, around 2006 &#8211; 2007 range.  From time to time the mail server was down, or the webserver, or just the (incredibly important) MySQL server.  DreamHost seemed to be cracking.  I had fired one host already because of such problems, but two things happened:</p>
<p>1)  They rewarded customers.  That&#8217;s pretty rare, really.  Most companies might reward NEW customers, but not existing ones &#8211; once they have your money, why try and give you more stuff?</p>
<p>2)  Customer service was good.  They weren&#8217;t amazingly fast at answering messages (no host I&#8217;ve ever dealt with is fast with answering messages. I&#8217;ve seen some &#8220;We&#8217;ll look into that&#8221; type responses from other hosts before, but that&#8217;s just putting you off in the queue &#8211; their response time for actually fixing an issue was about the same as DreamHosts.)  But they were polite, thorough, and generally did a very effective job.</p>
<p>I stuck with it.  That last part about doing an effective job?  That was rare for a while with hosting companies.  Heck, POLITE was rare for quite a while!</p>
<p>I started telling customers about DreamHost.  I do keep my own hosting environment, but there&#8217;s a number of customers who would rather handle it themselves.  So, I give them a quick primer on how to use DreamHost&#8217;s control panel, and it was simple enough they never needed me again.  Which was a big change for some customers that were struggling with obsolete versions of CPanel (a popular control panel system for hosting environments) &#8211; they LIKED DreamHost&#8217;s panel!</p>
<p>Then, this last year I took the plunge:  I moved to my own dedicated server.  Best decision ever, for me, even if it did cost me quite a bit more per month than my VPS setup.  My own machine setting there, with my own resources that I didn&#8217;t have to share with other customers, and I still had their support people behind it.  Groovy.  This helped me improve my presence &#8211; see, I was always too cheep to slide the resources slider to a higher number (VPS setups let you change how much you spend per month on the fly.  Increase your resources, for instance, and a slow WordPress based site suddenly gets a serious increase in responsiveness.  But it costs money.)  With the dedicated server it cost me more, but I knew how much it would be every month, and I didn&#8217;t have to have debates with myself over if I was going to spend an extra $10 / mo. to move the slider another notch!</p>
<p>Around they same time they began a few projects to improve their network and uptime, plus apparently some more projects that would give DreamHost a whole lot of neat new options to much bigger developments.  I&#8217;ll get into those in a minute.</p>
<p>I know of a number of quality hosting companies.  <a class="zem_slink" title="Rackspace" href="http://www.rackspace.com" target="_blank" rel="homepage">RackSpace</a>, <a class="zem_slink" title="HostGator" href="http://www.hostgator.com" target="_blank" rel="homepage">HostGator</a> (Hi, MadHatter McGinnis!), and quite a few others are good.  But, for me, DreamHost has been pretty good on a consistent basis over the last 10 years.  When I look at the downtime I took for a while, I&#8217;m still not happy about it, but sticking there seemed to have paid off in the end:  they&#8217;ve managed to become a very, very solid hosting company.</p>
<p>Then they started making things even cooler after my dedicated server.  One-click CloudFlare integration was a cool idea, and it saved me from having to jump through any hoops to setup some powerful caching for WordPress based sites.   Then Railgun implementation on top of that (Railgun is a fast way for CloudFlare CDN to get updates about dynamic content, speeding up the process of updating the cache.)</p>
<p>Then came DreamObjects, which might end up being the right product at the right time.  Not long after they released their cloud based storage system a company I deal with often had an idea, and pitched it to me.  I had turned them on to DreamHost in the first place, so when I did the writeup for their project that required cloud based storage (something I never thought I&#8217;d have to deal with!), I made sure they knew DreamHost was providing the server, and they were happy to hear they weren&#8217;t going to have to go anywhere else to get services! (And, when that project ships, I&#8217;ll finally write a Project Blog entry about the whole process, from the tech writeup to actual implementation.  It&#8217;s fun!)</p>
<p>So what takeaways are there from this article?  What is it that can keep a customer, even when things aren&#8217;t going right?</p>
<ul>
<li>  <strong>Good service.</strong>  Be polite.  Don&#8217;t blow people off.  Don&#8217;t let the customer tick you off.  And most of all, make it happen. (BTW:  All three of the hosting providers I have mentioned &#8211; DreamHost, RackSpace, and HostGator &#8211; are all noted for having good, polite customer service that gets the job done.)</li>
<li>  <strong>Reward your customers.</strong>  A one time discount for signing up is nice, but it&#8217;s going to be forgotten.  When they were giving me extra bandwidth and storage every month for being a customer back when it was limited, that&#8217;s a great way to remind me every month that they wanted to KEEP me as a customer.</li>
<li>  <strong>Have your customers do some of the marketing, and reward them.</strong>  DreamHost (and others) have a nice system of rewards &#8211; when you refer someone to them, and they sign up, you get a kickback.  And, even better, you continue to get kickbacks from the new customer as they pay their monthly bill!  I don&#8217;t get enormous kickbacks from it or anything, but it&#8217;s nice that I get to defray costs from time to time.</li>
<li>  <strong>Communicate with your customers.</strong>  When DreamHost has had downtime events, they didn&#8217;t hide it.  The last one they had was rather interesting:  the building they were in lost power.  No problem, it has a UPS (Uninterruptible Power Supply) &#8211; not their UPS, but the building&#8217;s UPS.  Unfortunately, the UPS was interrupted by a bad mechanical switch.  Oh, and so was the backup UPS.  And when it did come back online, it fried both of the routers.  They ended up with a whole string of troubles in their LA hosting location (they have three locations.)  How do I know all that?  They told me, and anyone else who bothered to read their status updates.  I&#8217;ve also seen them mention their problems in their monthly newsletters, too.  They don&#8217;t hid it when they have a problem.  The previous two hosts I had did.  In fact, one would deny there had ever been a problem.</li>
<li>  <strong>Keep improving.</strong>  Just because you&#8217;ve got a solid number of customers doesn&#8217;t mean you should let yourself get stagnant.  DreamHost made a lot of good decisions that helped customers have a better experience (and, some of those also came back to DreamHost &#8211; one-click CloudFlare implementations meant that their servers would take just a bit less traffic, and more of it would be sent through CloudFlare instead!)  They also have been improving their network (they just got through tonight with their final major upgrade in their current upgrade series) and providing pathways to new technologies, like cloud based storage and cloud based computing.</li>
</ul>
<p>None of those should be a mystery for a successful business.  But, how many companies to I encounter that fail in at least one of those categories?  Way too many.  More of them fail in at least three categories than succeed in at least three categories.</p>
<p>If you are looking for some hosting space for a new website (or moving your old website from someplace like GoDaddy.  Please, PLEASE, if you use GoDaddy, ditch them), I do have some discount codes for ya <img src='http://www.midnightryder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  And, yep, I get some kickbacks from them.</p>
<p>First, if you don&#8217;t care about any of the rewards below, you could <a href="http://www.dreamhost.com/r.cgi?27256" target="_blank">just click here</a>, and I get a kickback if you sign up.  Seriously though, I&#8217;m not sure why you wouldn&#8217;t rather have the freebie stuff?  Anyway, when you sign up, just use the following codes:</p>
<p style="padding-left: 90px;"><strong>DAVISGIVESDOMAIN</strong> &#8211; gives you a $10 discount on one year of hosting, or $20 on two years of hosting, plus an extra free (for life) domain name</p>
<p style="padding-left: 90px;"><strong>DAVISGIVES</strong> &#8211; gives you a $50 discount off of one year of hosting!</p>
<p>There ya go &#8211; free stuff <img src='http://www.midnightryder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p style="padding-left: 30px;">Davis Ray Sickmon, Jr</p>
<p style="padding-left: 30px;">Midnight Ryder Technologies</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/?px"><img class="zemanta-pixie-img" style="border: none; float: right;" alt="Enhanced by Zemanta" src="http://img.zemanta.com/zemified_e.png?x-id=0316e810-315b-49f7-9563-78cebc61904d" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.midnightryder.com/why-im-still-using-dreamhost-10-years-later-and-lessons-for-other-businesses-to-consider/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Launching External URL&#8217;s in PhoneGap&#8230; Again. (Phonegap 2.4.x)</title>
		<link>http://www.midnightryder.com/launching-external-urls-in-phonegap-again-phonegap-2-4-x/</link>
		<comments>http://www.midnightryder.com/launching-external-urls-in-phonegap-again-phonegap-2-4-x/#comments</comments>
		<pubDate>Mon, 18 Feb 2013 22:23:50 +0000</pubDate>
		<dc:creator>Davis Ray Sickmon, Jr.</dc:creator>
				<category><![CDATA[Tech Blog]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[inappbrowser]]></category>
		<category><![CDATA[launch]]></category>
		<category><![CDATA[phonegap]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://www.midnightryder.com/?p=676</guid>
		<description><![CDATA[One of the disadvantages of using PhoneGap / Cordova for app development: sometimes it&#8217;s like hitting a moving target.  Not just the API, but the methodologies for projects change frequently.  It&#8217;s not bad enough to make the platform undesirable for iOS and &#8230; <a href="http://www.midnightryder.com/launching-external-urls-in-phonegap-again-phonegap-2-4-x/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>One of the disadvantages of using PhoneGap / Cordova for app development: sometimes it&#8217;s like hitting a moving target.  Not just the API, but the methodologies for projects change frequently.  It&#8217;s not bad enough to make the platform undesirable for iOS and Android development, but sometimes it makes you pull your hair out wondering why something from an older app no longer works.  Which is bad, I don&#8217;t have that much hair left!</p>
<p>In this case, I had to re-visit some old territory:  opening a link inside of a PhoneGap app inside of mobile Safari.  See, they changed things on me&#8230; again.  This is the third time now.  Bummer.</p>
<p>No one seemed to have a good answer for how to do it properly, but after a little digging, I found the solution.  First, we need to set up the whitelist, sort of like in previous PhoneGap version, but it now resides in a new place &#8211; look for it in AppName/config.xml.  The default basically allows you to launch any site, which is what I wanted.  Convenient!</p>
<p>Now for the less convenient part:  no one seemed to have an answer to how to actually launch the URL properly.  To launch a URL that exits the app and launches in the native browser, use this:</p>
<p>&lt;div onClick=&#8217;window.open(&#8220;http://www.midnightryder.com&#8221;, &#8220;_system&#8221;);&#8217;&gt;</p>
<p>Pretty groovy&#8230; now if it was only documented somewhere.  BTW, that _system part?  Real important.  you could use &#8220;_blank&#8221;, and you&#8217;ll end up launching the inAppBrowser plugin instead, and your destination URL will launch in your app with a &#8220;done&#8221; button at the bottom.  Which, well, is actually pretty handy &#8211; it makes the inAppBrowser plugin pretty easily accessible with no setup needed. <img src='http://www.midnightryder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.midnightryder.com/launching-external-urls-in-phonegap-again-phonegap-2-4-x/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mr. Data Converter</title>
		<link>http://www.midnightryder.com/mr-data-converter/</link>
		<comments>http://www.midnightryder.com/mr-data-converter/#comments</comments>
		<pubDate>Sat, 16 Feb 2013 00:22:49 +0000</pubDate>
		<dc:creator>Davis Ray Sickmon, Jr.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.midnightryder.com/?p=674</guid>
		<description><![CDATA[http://www.shancarter.com/data_converter/index.html]]></description>
				<content:encoded><![CDATA[<p><a href='http://www.shancarter.com/data_converter/index.html' title=''>http://www.shancarter.com/data_converter/index.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.midnightryder.com/mr-data-converter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS Filters</title>
		<link>http://www.midnightryder.com/css-filters/</link>
		<comments>http://www.midnightryder.com/css-filters/#comments</comments>
		<pubDate>Sat, 16 Feb 2013 00:22:20 +0000</pubDate>
		<dc:creator>Davis Ray Sickmon, Jr.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.midnightryder.com/?p=673</guid>
		<description><![CDATA[http://html5-demos.appspot.com/static/css/filters/index.html]]></description>
				<content:encoded><![CDATA[<p><a href='http://html5-demos.appspot.com/static/css/filters/index.html' title=''>http://html5-demos.appspot.com/static/css/filters/index.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.midnightryder.com/css-filters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Ultimate iPhone App Marketing Strategy Guide &#124; Apptamin</title>
		<link>http://www.midnightryder.com/the-ultimate-iphone-app-marketing-strategy-guide-apptamin/</link>
		<comments>http://www.midnightryder.com/the-ultimate-iphone-app-marketing-strategy-guide-apptamin/#comments</comments>
		<pubDate>Sat, 16 Feb 2013 00:22:05 +0000</pubDate>
		<dc:creator>Davis Ray Sickmon, Jr.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.midnightryder.com/?p=672</guid>
		<description><![CDATA[http://www.apptamin.com/blog/app-marketing-strategy/]]></description>
				<content:encoded><![CDATA[<p><a href='http://www.apptamin.com/blog/app-marketing-strategy/' title=''>http://www.apptamin.com/blog/app-marketing-strategy/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.midnightryder.com/the-ultimate-iphone-app-marketing-strategy-guide-apptamin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convert Word Documents to Clean HTML</title>
		<link>http://www.midnightryder.com/convert-word-documents-to-clean-html/</link>
		<comments>http://www.midnightryder.com/convert-word-documents-to-clean-html/#comments</comments>
		<pubDate>Fri, 08 Feb 2013 16:04:58 +0000</pubDate>
		<dc:creator>Davis Ray Sickmon, Jr.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.midnightryder.com/?p=671</guid>
		<description><![CDATA[http://word2cleanhtml.com/]]></description>
				<content:encoded><![CDATA[<p><a href='http://word2cleanhtml.com/' title=''>http://word2cleanhtml.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.midnightryder.com/convert-word-documents-to-clean-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing JetPack for WordPress&#8217;s Sharing Icons From Various Plugins</title>
		<link>http://www.midnightryder.com/removing-jetpack-for-wordpresss-sharing-icons-from-various-plugins/</link>
		<comments>http://www.midnightryder.com/removing-jetpack-for-wordpresss-sharing-icons-from-various-plugins/#comments</comments>
		<pubDate>Fri, 25 Jan 2013 05:37:32 +0000</pubDate>
		<dc:creator>Davis Ray Sickmon, Jr.</dc:creator>
				<category><![CDATA[Tech Blog]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jetpack]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.midnightryder.com/?p=651</guid>
		<description><![CDATA[Jetpack's sharedaddy plugin does a great job - but sometimes it puts it's share items in places you didn't want them, like inside of plugins that display lists of posts.  Here's a quick fix for that :-) <a href="http://www.midnightryder.com/removing-jetpack-for-wordpresss-sharing-icons-from-various-plugins/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 310px"><a href="http://commons.wikipedia.org/wiki/File:Css-miami-desktop_%28110995239%29.jpg" target="_blank"><img class="zemanta-img-inserted zemanta-img-configured" title="A perfect desktop image for CSS developers" alt="A perfect desktop image for CSS developers" src="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Css-miami-desktop_%28110995239%29.jpg/300px-Css-miami-desktop_%28110995239%29.jpg" width="300" height="225" /></a><p class="wp-caption-text">A perfect desktop image for CSS developers (Photo credit: Wikipedia)</p></div>
<p>I like some of the stuff that they&#8217;ve done with Jetpack plugin for WordPress &#8211; it&#8217;s definitely one of those &#8220;get a lot done, quickly&#8221; plugins that throws in quite a few of the pieces of functionality you need for a solid WordPress site.</p>
<p>One of those handy pieces is Sharedaddy. That&#8217;s the bit that allows you to add Twitter, Facebook, Pinterest, Google+, and a ton of other social sharing / bookmarking items to every post.</p>
<p>Now comes the problem: sharedaddy likes to be way too good at what it does. I don&#8217;t need it to show all the sharing links in, say, a list of all the posts in a category, or when using the MF-Timeline plugin. Unfortunately, Sharedaddy doesn&#8217;t have a way of turning it off.</p>
<p>Fortunately, Jetpack does have a something we can use to help fix that. Under Appearance -&gt; Edit CSS it&#8217;s got a handy little CSS editor that lets us turn off that extra mess.  But&#8230; we&#8217;ll need to do a little bit of work to know where we need to turn it off at.</p>
<p>If you&#8217;re not familiar with CSS, it&#8217;s a quick way of setting a piece of code that determines behavior and characteristics for a specific HTML item, or items (or, even a class of items.)  I&#8217;m not going to give ya&#8217; a whole CSS tutorial here &#8211; there&#8217;s better places for that, and it would take too long.  But it boils down to this:  we need to know what the name is of the area holding the post information that we want to remove the sharedaddy links from.  Um&#8230; that wasn&#8217;t confusing at all, right?</p>
<p>If you&#8217;re using Chrome or <a class="zem_slink" title="Safari (web browser)" href="http://en.wikipedia.org/wiki/Safari_%28web_browser%29" target="_blank" rel="wikipedia">Safari</a>, look up how to enable the Developer menus, and how to examine specific on-screen element (in Safari, once the developer menu is turned on, you can right-click on anything on the website and select &#8220;<a class="zem_slink" title="Inspect Element" href="http://inspectelement.com/" target="_blank" rel="homepage">Inspect Element</a>&#8221; to see all sorts of neat stuff about what&#8217;s going on behind the scenes.)</p>
<p>Now, once you&#8217;ve got that, here&#8217;s the quick way to make the sharedaddy stuff go away.  For instance, if you&#8217;re using the MF-Timeline plugin, you can put the following in the Edit CSS section, and it goes away:</p>
<p style="padding-left: 60px;">.timeline .sharedaddy {</p>
<p style="padding-left: 60px;">display: none;</p>
<p style="padding-left: 60px;">}</p>
<p>For those who know CSS&#8230; well, you probably already got how to pull this off, and what the above statement means.  For those who don&#8217;t:  .timeline is the name of the CSS class that MF-Timeline uses to build up it&#8217;s Facebook-style display.  If we had just put .timeline and no the .sharedaddy part, it would make everything about the timeline go away (display: none; is what does that part.  It&#8217;s literally saying don&#8217;t display this information.)  Using .timeline, then .sharedaddy means anytime you encounter .sharedaddy inside of .timeline&#8217;s display, .sharedaddy shouldn&#8217;t display.</p>
<p>Pretty simple, once you get the hang of it.  CSS is fun stuff that can make your site look wonderful, and make you pull out your hair at the same time.</p>
<p>To see it in action, here&#8217;s the <a href="http://www.midnightryder.org/timeline" target="_blank">Timeline display on my blog site</a> (note:  it&#8217;s slow &#8211; it&#8217;s pulling in half a million words worth of posts all the way back to 2000.  I need to write some caching into MF-Timeline someday.)</p>
<p>Another quick example is using one of the Category Posts plugins in a widget area.  In this case, it&#8217;s setting inside of a UberMenu 2.2 menu item.  To shut up sharedaddy on that area, it took the following:</p>
<p style="padding-left: 60px;">.cat-post-item .sharedaddy {<br />
display: none;<br />
}</p>
<p>.cat-post-item was the Category Post widget&#8217;s CSS class used to display posts inside of a widget area.  You can see it in action at <a href="http://www.bluebirdwichita.com" target="_blank">Bluebird Arthouse&#8217;s site</a> by mousing over (or touching, if you&#8217;re on an iPhone or Android phone) Blogs &amp; Links &#8211; the blog area loads in the menu.</p>
<p>See, piece of cake! <img src='http://www.midnightryder.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/?px"><img class="zemanta-pixie-img" style="border: none; float: right;" alt="Enhanced by Zemanta" src="http://img.zemanta.com/zemified_e.png?x-id=0ed78fe6-8328-4dfc-a4b3-d63af8c18670" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.midnightryder.com/removing-jetpack-for-wordpresss-sharing-icons-from-various-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 20/29 queries in 0.023 seconds using disk: basic
Object Caching 1033/1043 objects using disk: basic

 Served from: www.midnightryder.com @ 2013-05-24 05:55:49 by W3 Total Cache -->