<?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>Blogrescue.com</title>
	<atom:link href="http://blogrescue.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogrescue.com</link>
	<description>Technical Know-How in Human Terms</description>
	<lastBuildDate>Mon, 26 Jul 2010 19:25:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>My First Android App on the Marketplace!</title>
		<link>http://blogrescue.com/2010/07/first-android-app-on-the-marketplace/</link>
		<comments>http://blogrescue.com/2010/07/first-android-app-on-the-marketplace/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 18:38:37 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Phone Apps]]></category>

		<guid isPermaLink="false">http://blogrescue.com/?p=97</guid>
		<description><![CDATA[
This Android App provides a fully functional blog interface for Michelle Malkin&#8217;s blog.  It supports several ways of listing posts, a way to Star posts you like, post viewing, comment viewing, comment posting as well as new post notifications.  A number of configuration options allow you to tweak text and image sizes as [...]]]></description>
			<content:encoded><![CDATA[<div style='float:left;padding-right:4px;'><a href="http://blogrescue.com/wp-content/uploads/2010/07/mm_barcode.png"><img src="http://blogrescue.com/wp-content/uploads/2010/07/mm_barcode-150x150.png" alt="" title="mm_barcode" width="150" height="150" class="alignnone size-thumbnail wp-image-106" /></a></div>
<p>This Android App provides a fully functional blog interface for Michelle Malkin&#8217;s <a href='http://michellemalkin.com'>blog</a>.  It supports several ways of listing posts, a way to Star posts you like, post viewing, comment viewing, comment posting as well as new post notifications.  A number of configuration options allow you to tweak text and image sizes as well as set the notification check frequency or completely disable them.</p>
<p>The primary benefit from the app is a much cleaner and very intuitive user interface (have you tried to read blogs for any length of time on any mobile browser?) that is themed for the site.  It is also much more efficient since the app is not requesting fully rendered pages but instead requesting data via xmlrpc &#8211; so the response on the app is much faster than rendering and pulling an entire page.  It also has to potential to reduce server load (theoretically &#8211; if enough people switch to using the app instead of the browser).</p>
<p>To give it a try, search for &#8216;Michelle Malkin&#8217; in the android Marketplace.  Alternatively, you can just scan the barcode shown above with your phone.</p>
<p>By the way, if you are running WordPress and are interested in an app like this for your site, feel free to contact me for a quote and timeframe.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogrescue.com/2010/07/first-android-app-on-the-marketplace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subsidized Broadband</title>
		<link>http://blogrescue.com/2010/07/subsidized-broadband/</link>
		<comments>http://blogrescue.com/2010/07/subsidized-broadband/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 17:10:35 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[Government]]></category>

		<guid isPermaLink="false">http://blogrescue.com/?p=90</guid>
		<description><![CDATA[I love tech and as access to faster and faster broadband has grown, we&#8217;ve seen the pace of innovation increase dramatically.  I also love the opportunities this creates for small entrepreneurs like myself.  That said, I have to say I agree 100% with George Ou in that government specified minimum broadband speeds is [...]]]></description>
			<content:encoded><![CDATA[<p>I love tech and as access to faster and faster broadband has grown, we&#8217;ve seen the pace of innovation increase dramatically.  I also love the opportunities this creates for small entrepreneurs like myself.  That said, I have to say <a href="http://www.digitalsociety.org/2010/07/the-era-of-geek-pork-has-arrived/">I agree 100%</a> with George Ou in that government specified minimum broadband speeds is a bad thing.</p>
<p>Forcing businesses to comply with artificial benchmarks or mandated business plans eliminates the need (or ability) to make sound business decisions based on supply, demand and future planing.  The end result is either government entitlements to keep businesses afloat or future bankruptcies.  Sometimes it makes sense for a company to invest in a net loss market because it fits their long term plans, but lets allow them to make that decision.  Unfilled market niches often become opportunities for smaller players or startups, but this kind of mandate permanently eliminate those opportunities.  (They also discourage startups in an entire market segment since only the largest players are actually capable of meeting these kinds of mandates.)</p>
<p>I&#8217;m not impressed at all with the level of foresight those who legislate have &#8211; they seem completely unable to comprehend what effect (and side-effects) a piece of legislation will make on those affected.  </p>
<blockquote><p>The government that governs least, governs best.<br /><b>Thomas Paine</b></p></blockquote>
<p>I cannot agree enough.</p>
<p>(Hat-tip to <a href='http://twitter.com/JonHenke/status/19272967815'>John Henke</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://blogrescue.com/2010/07/subsidized-broadband/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Summer is Busy</title>
		<link>http://blogrescue.com/2010/07/summer-is-busy/</link>
		<comments>http://blogrescue.com/2010/07/summer-is-busy/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 12:39:49 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[Phone Apps]]></category>

		<guid isPermaLink="false">http://blogrescue.com/?p=88</guid>
		<description><![CDATA[&#8230;especially when you live in Colorado since there is just too much to do.  Work has been busy, blogrescue stuff has been busy plus throw in a few vacations and most weekends out and about and thus no blog posts.
The good news is I&#8217;m very close to releasing my first Android app which provides a [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230;especially when you live in Colorado since there is just too much to do.  Work has been busy, blogrescue stuff has been busy plus throw in a few vacations and most weekends out and about and thus no blog posts.</p>
<p>The good news is I&#8217;m very close to releasing my first Android app which provides a direct interface to a high profile blog.  I&#8217;m hoping this is the first of many, now that I&#8217;ve got a mechanism to quickly get data from Wordpress.  Just a bit more spit and polish and we can load it up on the Marketplace.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogrescue.com/2010/07/summer-is-busy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stylesheet Mahem</title>
		<link>http://blogrescue.com/2010/05/stylesheet-mahem/</link>
		<comments>http://blogrescue.com/2010/05/stylesheet-mahem/#comments</comments>
		<pubDate>Sat, 08 May 2010 21:36:51 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[The Web]]></category>

		<guid isPermaLink="false">http://blogrescue.com/?p=76</guid>
		<description><![CDATA[Just finished up redesigning my 4th site in the past 5 weeks (along with 4 relocations and 2 migrations).  I love starting with a brand new template and coding something very clean and neat, however sometimes it is just better to update existing templates.  Anyone who has reworked templates for a major set [...]]]></description>
			<content:encoded><![CDATA[<p>Just finished up redesigning my 4th site in the past 5 weeks (along with 4 relocations and 2 migrations).  I love starting with a brand new template and coding something very clean and neat, however sometimes it is just better to update existing templates.  Anyone who has reworked templates for a major set of changes knows that sometimes it feels like things are messy and out of control.  Especially with stylesheets.</p>
<p>I still have not found a decent way to order classes in a stylesheet that makes any sense (and is maintainable) but search functions make that passable. However, I still cannot help but feel like the stylesheet is messy since I really have no idea which classes I&#8217;ve obsoleted vs. which classes are still used by some obscure template I never touched.  I&#8217;ve always been meaning to find a better solution to this then my usual method: &lt;i&gt;leave them all there &#8211; just in case&lt;/i&gt;.  A clean and tidy stylesheet reduces server load and is easier to maintain.</p>
<p>So instead of doing the work I was supposed to be doing today, I goofed off and coded a little stylesheet analysis program.  The idea is pretty simple:<span id="more-76"></span></p>
<ul>
<li>Read the stylesheet and parse out the style definitions</li>
<li>Read sample pages from the site and track which styles are referenced</li>
<li>Report back which pages use what styles, and which styles are not used at all</li>
</ul>
<p>My original concept involved reading the sitemap.xml and checking all pages, but that would be a waste of resources for sites with any amount of history.  (Although it might be useful for a site where stylesheet styles were used in individual posts!)  Instead, I settled on a q&amp;d (quick and dirty) php script driving a html form that lets you supply the stylesheet url and up to 9 urls from the site to analyze.  The idea is to add the index, date archive, category archive, about page and maybe a few individual posts so you get a sampling of every template in your theme.</p>
<p>The coding (and debug) took about 90 minutes and I&#8217;m pretty pleased with the result.  This little tool (named StyleCheck) makes it very easy to eliminate the chaff from your stylesheet.  Give it a try if you like: <a rel="nofollow" href="/tools/stylecheck.php">StyleCheck</a> or download the source to see how it works and maybe improve it: <a rel="nofollow" href="/tools/stylecheck.txt">StyleCheck Source Code</a>.  (And don&#8217;t laugh at the form or the code &#8211; again, this is a q&amp;d project.)</p>
<p>Now to go and clean up some stylesheets.</p>
<p><strong><span style="color: #ff0000;">Update:</span></strong> Here are a few more operational details and or caveats:</p>
<ul>
<li>When the stylesheet is scanned, all non-id and non-class items are ignored.  Also, derivative classes (i.e. &#8216;.myclass a&#8217; or &#8216;.myclass ul li&#8217;) are reduced down to the base class name.</li>
<li>When the html is analyzed, anywhere a class is used is consider a single use of that class.  The actual content is never checked, so if &#8216;.myclass a&#8217; is defined as in the stylesheet, the analysis doesn&#8217;t look for anchor links in any element classed with .myclass.  It just knows that .myclass is defined in the stylesheet and looks for any use of it in the html.</li>
</ul>
<p>Improving both of these items is very possible, but I just wanted a general tool that helps me identify unused class families plus I was spending time I did not have.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogrescue.com/2010/05/stylesheet-mahem/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wordpress and XML-RPC</title>
		<link>http://blogrescue.com/2010/03/wordpress-and-xml-rpc/</link>
		<comments>http://blogrescue.com/2010/03/wordpress-and-xml-rpc/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 15:36:33 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[xml-rpc]]></category>

		<guid isPermaLink="false">http://blogrescue.com/?p=45</guid>
		<description><![CDATA[What is XML-RPC?  Stripping all the technological detail away, it is merely a specific way of requesting data and getting a response back.  It uses xml to make the request and sends and receives the data over http.  (A more technical discussion can be found here.)  

I&#8217;m currently working on a [...]]]></description>
			<content:encoded><![CDATA[<p>What is XML-RPC?  Stripping all the technological detail away, it is merely a specific way of requesting data and getting a response back.  It uses xml to make the request and sends and receives the data over http.  (A more technical discussion can be found <a href='http://en.wikipedia.org/wiki/XML-RPC'>here</a>.)  </p>
<p>
I&#8217;m currently working on a project that needs to get data from a WordPress installation.  Fortunately, WordPress provides an XML-RPC interface which includes several <a href=''http://codex.wordpress.org/XML-RPC_Support'>stock</a> APIs as well as a <a href='http://codex.wordpress.org/XML-RPC_wp'>WordPress specific</a> API.  This is far more efficient than using custom templates or parsing actual html pages for both sides of the transaction.</p>
<p>
With all that said, how do you use it?  Depending on what you are trying to do and the platform you are using, there should (hopefully) be a nice library already coded so you can worry about requesting and receiving data without fretting about the details of xml-rpc.  However, sometimes a q&#038;d (quick and dirty) script is useful to test a request and look at what is actually coming back.  I do that using a simple php script:<br />
<span id="more-45"></span></p>
<blockquote><p><code>
<pre>&lt;?php
  $request = xmlrpc_encode_request("blogger.getUserInfo",
    array(1, "username", "password"));

  $context = stream_context_create(array('http' => array(
    'method' => "POST",
    'header' => "Content-Type: text/xml",
    'content' => $request
  )));

  $file = file_get_contents("http://wordpressblog.com/xmlrpc.php",
    false, $context);

  $response = xmlrpc_decode($file);

  if ($response &#038;&#038; xmlrpc_is_fault($response)) {
    trigger_error("xmlrpc: $response[faultString] ($response[faultCode])");
  } else {
    print_r($response);
  }
?&gt;</pre>
<p></code></p></blockquote>
<p>The key to this script is the first line where <i>$request</i> is defined.  The first parameter is the name of the request, followed by an array of parameters for that specific request.  From the API:</p>
<blockquote><p>
blogger.getUserInfo takes the following parameters. All are required:</p>
<ul>
<li>appkey: (Ignored in WordPress)
<li>username: User login
<li>password: User Password
</ul>
</blockquote>
<p>If you do it right, you get a result something like:</p>
<blockquote><pre>Array
(
    [nickname] => Major Burns
    [userid] => 27
    [url] => http://mash.4077.gov
    [lastname] => Burns
    [firstname] => Frank
)</pre>
</blockquote>
<p>If your user &#038; password is not correct, then you will get something like:</p>
<blockquote><p>
<b>Notice:</b> xmlrpc: Bad login/pass combination. (403) in /var/www/virtual/test.myserver.com/htdocs/xmlrpc_test.php on line 15
</p></blockquote>
<p>And if you are using an invalid request, you will get:</p>
<blockquote><p>
<b>Notice:</b> xmlrpc: server error. requested method pretend.badRequest does not exist. (-32601) in /var/www/virtual/test.myserver.com/htdocs/xmlrpc_test.php on line 15 on line 15
</p></blockquote>
<p>This should get you started using the standard requests, although keep in mind that they do come with some limitations.  First, the exact request you want may not be defined (yet).  Also, most of the requests require a WordPress user, with many of them requiring a user with author credentials.</p>
<p>
<i>One trick I find useful is, if I do not understand the parameters for a request or what a request actually does (the API documentation is definitely lacking in some ways), that information is available by just pulling up the WordPress xmlrpc.php in an editor.</i></p>
<p>
The next step, and probably my next post, is how to add your own custom requests to WordPress.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogrescue.com/2010/03/wordpress-and-xml-rpc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Yet Another Marketplace</title>
		<link>http://blogrescue.com/2010/03/yet-another-marketplace/</link>
		<comments>http://blogrescue.com/2010/03/yet-another-marketplace/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 13:41:55 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[The Web]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://blogrescue.com/?p=42</guid>
		<description><![CDATA[We started with the iPhone App Store, added the Android Marketplace and now Google announces a new one: The Google App Marketplace.  These apps will be part of Google&#8217;s cloud (think Google Docs).  
So much to learn, so little time. (At least for us independent developers.)
]]></description>
			<content:encoded><![CDATA[<p>We started with the iPhone App Store, added the Android Marketplace and now Google announces a new one: <a href='http://gizmodo.com/5489679/the-google-app-marketplace-doing-it-all-in-the-cloud?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed:+gizmodo/full+(Gizmodo)'>The Google App Marketplace</a>.  These apps will be part of Google&#8217;s cloud (think Google Docs).  </p>
<p>So much to learn, so little time. (At least for us independent developers.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blogrescue.com/2010/03/yet-another-marketplace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wikipedia&#8230;</title>
		<link>http://blogrescue.com/2010/03/wikipedia/</link>
		<comments>http://blogrescue.com/2010/03/wikipedia/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 12:04:35 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[The Web]]></category>
		<category><![CDATA[Pournelle]]></category>
		<category><![CDATA[Quotes]]></category>

		<guid isPermaLink="false">http://blogrescue.com/?p=39</guid>
		<description><![CDATA[Wikipedia topics are usually dominated by the fanatic with the most time to spare, which is why I don&#8217;t rely on Wikipedia when the matter is both controversial and important.
Jerry Pournelle
]]></description>
			<content:encoded><![CDATA[<blockquote><p>Wikipedia topics are usually dominated by the fanatic with the most time to spare, which is why I don&#8217;t rely on Wikipedia when the matter is both controversial and important.</p></blockquote>
<p><a href='http://www.jerrypournelle.com/mail/2010/Q1/mail612.html#Tuesday'>Jerry Pournelle</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogrescue.com/2010/03/wikipedia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android App Idea</title>
		<link>http://blogrescue.com/2010/03/topo-map-project/</link>
		<comments>http://blogrescue.com/2010/03/topo-map-project/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 14:58:12 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[Phone Apps]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[App]]></category>
		<category><![CDATA[Topo]]></category>

		<guid isPermaLink="false">http://blogrescue.com/?p=30</guid>
		<description><![CDATA[
Since getting an Android phone, I&#8217;ve been installing (and uninstalling) lots of different apps.  The creativity and variety is fantastic and the way the phone works with Google maps is incredible. But I still haven&#8217;t found the app I&#8217;m looking for.
I&#8217;m a backpacker and although GPS is a wonderful thing, you really need to [...]]]></description>
			<content:encoded><![CDATA[<div style='float:left;'><a href="http://blogrescue.com/wp-content/uploads/2010/03/usgs.png"><img class="alignleft size-full wp-image-29" title="USGS Topo" src="http://blogrescue.com/wp-content/uploads/2010/03/usgs.png" alt="" width="200" height="221" /></a></div>
<p>Since getting an Android phone, I&#8217;ve been installing (and uninstalling) lots of different apps.  The creativity and variety is fantastic and the way the phone works with Google maps is incredible. But I still haven&#8217;t found the app I&#8217;m looking for.</p>
<p>I&#8217;m a backpacker and although GPS is a wonderful thing, you really need to couple it with a set of good Topo maps to make it useful when you are on the trail.  Oh, and no cell service &#8211; the maps have to be locally stored on the device.   Getting maps is not difficult &#8211; the USGS offers free downloads of the entire US (<a href='http://store.usgs.gov/b2c_usgs/usgs/maplocator/(xcm=r3standardpitrex_prd&#038;layout=6_1_61_48&#038;uiarea=2&#038;ctype=areaDetails&#038;carea=%24ROOT)/.do'>download here</a>).  These are extremely high quality maps which also makes them very large files &#8211; some approach 15MB for a single 7.5 minute square.  </p>
<p>The app I want uses the phone&#8217;s GPS to show me where I am on a USGS Topo map. It should be able to zoom in and out (within reason) and it should not kill the phones memory, which means smaller map segments tiled in the same way the Google maps does. </p>
<p>Right now I&#8217;m just sketching out ideas on how to pull it off.  Oh and I guess I should finish learning how to program in Android too.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogrescue.com/2010/03/topo-map-project/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Migrating From TypePad &#8211; Images</title>
		<link>http://blogrescue.com/2010/03/migrating-from-typepad-images/</link>
		<comments>http://blogrescue.com/2010/03/migrating-from-typepad-images/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 22:35:38 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[TypePad]]></category>
		<category><![CDATA[Images]]></category>
		<category><![CDATA[Migration]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blogrescue.com/?p=9</guid>
		<description><![CDATA[Migrating from TypePad isn&#8217;t too difficult &#8211; they provide the standard MT export file, which most platforms readily accept.  The one big challenge my latest migration project involved was getting the images out.  Since the client is a domain user, their images hosted at TypePad will stop working once the domain is switched [...]]]></description>
			<content:encoded><![CDATA[<p>Migrating from TypePad isn&#8217;t too difficult &#8211; they provide the standard MT export file, which most platforms readily accept.  The one big challenge my latest migration project involved was getting the images out.  Since the client is a domain user, their images hosted at TypePad will stop working once the domain is switched over and there is no way in the TypePad control panel to export them.</p>
<p>The solution I came up with was to use php on the new destination (a dedicated server) and parse the export file itself, denoting when I&#8217;m in a body section, and using a regular expression to try and find any image tags that point to the domain being relocated.  For each TypePad hosted image that was found, the same directory structure was created locally, and then the file was copied from the TypePad server to the local matching directory structure.</p>
<p>It took quite a while to run, since the client had been on TypePad since 2004, but the result was wonderful &#8211; all I have to do is relocate the created directory to the webspace and not only have all the images been released from they TypePad prison,  but all the existing links will still work correctly.  The one caveat is that the base image directory started with a period, which is not a problem as long as you understand that Unix variants hide all files and folders that start with a period.  Use <span class='code2'>ls -la</span> to see what is normally hidden.</p>
<p>Code is below the fold&#8230;<span id="more-9"></span></p>
<div class="code">
<pre>
&lt;?php

// Initialize Variables
$count = 0;
$title = "";
$status = "";
$body = 0;
$body_text = "";
$export = "mt-export.txt";
$domain = "http://somedomain.com"; // Be sure to set this to an appropriate value

// Open import file
$fh = fopen($export, "r") or die("Cannot Open export file '$export'");

// Process import file post by post
while($buf = fgets($fh)) {

  // If we are in a post body, look for images
  if($body == 1) {

    // Do all the processing once we have the entire post body in $body_text
    if(substr($buf,0,5) == "-----") {
      preg_match_all("/&lt;img.*?src=(\"|')".preg_quote($domain)."(.*?)(\"|')/",
                            $body_text, $matches);
      $images = $matches[2];

      // Process all images found by the regular expression
      foreach($images as $image) {
        $data = pathinfo($image);
        $path = $data['dirname'];
        $file = $data['basename'];

        // Create the directory structure
        // (if the path is deep, this may need some tweaking)
        if(!is_dir($path)) {
          mkdir($path);
        }

        // Copy image to local server
        $remote = $domain . $image;
        if(!copy($remote, $image)) {
          print " - Copy failed for $image\n";
        }
      }

      // Reset body variables
      $body = 0;
      $body_text = "";

    // Add more body content to $body_text
    } else {
      $body_text .= $buf;
    }

  // Post status and look for the start of the next post body section
  } else {
    if(substr($buf,0,6) == "TITLE:") {
      preg_match("/^TITLE: (.*)/", $buf, $matches);
      $title = $matches[1];
      $count++;
    } else if(substr($buf,0,7) == "STATUS:") {
      preg_match("/^STATUS: (.*)/", $buf, $matches);
      $status = $matches[1];
      if($status == "Publish") {
        print "Processing: $title ($count)\n";
      }
    } else if(substr($buf,0,5) == "BODY:") {
      $body = 1;
    }
  }
}

// Clean Up
fclose($fh);
?&gt;
</pre>
</div>
<p>As always, this code is provided free of charge and comes without warranty or guarantee.  If you do not understand what this code is doing, you had probably best not be running it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogrescue.com/2010/03/migrating-from-typepad-images/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blogging again&#8230;</title>
		<link>http://blogrescue.com/2010/03/hello-world/</link>
		<comments>http://blogrescue.com/2010/03/hello-world/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 18:19:10 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogrescue.com/?p=1</guid>
		<description><![CDATA[It has been a few years since I blogged over at king-of-fools.com.  I didn&#8217;t stop because I ran out of energy or passion, just time.  The past few years, I&#8217;ve been doing so much blog related support and development (not to mention the day job, family, and church)  that there was simply no time at [...]]]></description>
			<content:encoded><![CDATA[<p>It has been a few years since I blogged over at <a href='http://king-of-fools.com'>king-of-fools.com</a>.  I didn&#8217;t stop because I ran out of energy or passion, just time.  The past few years, I&#8217;ve been doing so much blog related support and development (not to mention the day job, family, and church)  that there was simply no time at all left for anything else.</p>
<p>The load has not lightened at all, but I miss journaling and thought this would be a nice place to at least track how I solved a problem in the past, hoping that will help in the future.  It should also be a nice medium for sharing technical answers that might help others, just as I glean so much know-how from the blogs and forums of others.</p>
<p>Ed</p>
]]></content:encoded>
			<wfw:commentRss>http://blogrescue.com/2010/03/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
