<?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>b&#124;tw&#124;se</title>
	<atom:link href="http://danwright.info/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://danwright.info/blog</link>
	<description>software &#38; images &#38; ideas &#38; ampersands</description>
	<lastBuildDate>Sun, 20 Jun 2010 04:58:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Rendering Text for Fun &amp; Profit on Mac OS X</title>
		<link>http://danwright.info/blog/2010/06/antialiasing-text-on-mac-os-x/</link>
		<comments>http://danwright.info/blog/2010/06/antialiasing-text-on-mac-os-x/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 19:53:18 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[antialiasing]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[text]]></category>

		<guid isPermaLink="false">http://danwright.info/blog/?p=186</guid>
		<description><![CDATA[<em>In which we ponder the Great Imponderables of text on Mac OS X, and the many, varied, and bone-headed ways by which we can stymie proper anti-aliasing.</em>]]></description>
			<content:encoded><![CDATA[<p><em>In which we ponder the Great Imponderables of text on Mac OS X, and the subtle, obtuse, and bone-headed means by which we may stymie proper anti-aliasing.</em></p>
<style type="text/css">
img.figure {
display:block;
margin-left:auto; margin-right:auto;
border: 4px solid #457; }
p.caption {
font-size: 90%;
color:#555;
width:400px;
margin-left:auto; margin-right:auto;
}
div.sidebar {
display:block;
float:right;
border-left: 2px solid #457;
background: #eef5ff;
color: #555;
line-height: 1.5;
width: 250px;
padding: 4px 2px 4px 8px;
margin: 4px;
}
</style>
<p><img class="figure" src="http://danwright.info/blog/wp-content/uploads/2010/06/basic-antialiased-text.png" alt="" width="474" /></p>
<p class="caption">Fig. 1: Basic anti-aliased text, magnified 2x.</p>
<p><em>Aliasing</em> is a term used in computer graphics to describe artifacts created when a shape is rendered into a grid of pixels; these artifacts are commonly known as &ldquo;the jaggies.&rdquo; <em>Anti-aliasing</em>, then, is the process of rendering graphics in a way that conceals these artifacts. Let&rsquo;s take a brief look at how <em>text</em> is anti-aliased on Mac OS X, and then we&rsquo;ll look at how things can go wrong.
</p>
<div class="sidebar"><strong>Pro Tip: You can examine the text on your screen with a magnifying glass, or you can use Universal Access to magnify your screen pixels in place. To use Universal Access, press Command Option 8 to toggle zooming on and off, and press Command Option = or Command Option &#8211; to zoom in or out, respectively. You should do this on an LCD display, preferably an Apple display.</strong></div>
<p>Completely unaliased text looks horrible (Fig. 2); in the mid- to late-nineties, Mac OS became accustomed to anti-aliased text, as in Fig. 1 (above). LCD displays became widely available and inexpensive enough to push out CRTs at the same time, not just because they are lighter and thinner, but for excellent contrast and very sharp pixels&mdash;and sub-pixels.</p>
<p>Each pixel is actually comprised of three components, red, green, and blue, and on LCDs the operating system can take advantage of that fact to improve anti-aliasing through a method called sub-pixel rendering. <strong>ClearType</strong> is Microsoft&rsquo;s patented method of sub-pixel rendering; it differs from the method used in Mac OS X primarily in its intent: ClearType is designed to make small text as <em>readable</em> as possible, while Mac OS X attempts to accurately maintain the shape of the individual glyphs. That&rsquo;s all I will say about ClearType here.</p>
<p><img class="figure" src="http://danwright.info/blog/wp-content/uploads/2010/06/aliased-text.png" alt="" width="478" /></p>
<p class="caption">Fig. 2: Aliased text has lots of jagged edges, and crooked curves. This is what most text looked like in 1995.</p>
<p><img class="figure" src="http://danwright.info/blog/wp-content/uploads/2010/06/subpix-aa-text.png" alt="" width="474" /></p>
<p class="caption">Fig. 3a: Text with sub-pixel anti-aliasing (Mac OS X). At low magnification (2x here), the eye sees smoother shapes rather than color fringing. Compare the horizontal bars in the letter &lsquo;e&rsquo;, or the descenders in the letter &lsquo;g&rsquo;, with those in Fig. 1.</p>
<p>It is possible to draw text on Mac OS X with anti-aliasing completely disabled, as in Fig. 2, by calling <code>CGContextSetShouldAntialias(context, false)</code>. To draw text as in figure one, call <code>CGContextSetShouldAntialias(context, true)</code> and <code>CGContextSetShouldSmoothFonts(context, false)</code>.</p>
<p>Now let&rsquo;s take a closer look at sub-pixel anti-aliasing. This is the default drawing method. Figure 3a shows text zoomed to twice its actual size. To see how sub-pixel anti-aliasing works, we need to zoom in more&mdash;4x (Figure 3b) or even more (Figure 3c).</p>
<p><img class="figure" src="http://danwright.info/blog/wp-content/uploads/2010/06/subpix-aa-engrossed.png" alt="" width="404" /></p>
<p class="caption">Fig. 3b: At 4x magnification, color fringing starts to become apparent, if mostly subtle.</p>
<p><img class="figure" src="http://danwright.info/blog/wp-content/uploads/2010/06/subpix-aa-engr.png" alt="" width="430" /></p>
<p class="caption">Fig. 3c: 10x magnification. Color-fringing is now obvious.</p>
<p>At 10x magnification, we can clearly see the use of red pixels on the left side of glyphs and blue pixels on the right. But does it always work this way? Consider Figure 3d&mdash;white text on a black background.</p>
<p><img class="figure" src="http://danwright.info/blog/wp-content/uploads/2010/06/subpix-aa-engr-inverse.png" alt="" width="530" /></p>
<p class="caption">Fig. 3d: Inverse&mdash;white text on a black background. Notice how the red and blue edges are reversed.</p>
<p>Blue on the left, red on the right! The question you might ask: Is this because the text is now white, the background is now black, or both? Well, what do we get if we change the text back to black, and change the background to a moderately dark color?</p>
<p><img class="figure" src="http://danwright.info/blog/wp-content/uploads/2010/06/subpx-aa-color-back.png" alt="" width="440" /></p>
<p class="caption">Fig. 3e: Black on a dark orange background. To the eye, the sub-pixels look similar black-on-white (<em>c.f. Fig. 3c</em>). A more careful look reveals differences: Are the right edges blue here?</p>
<p>We see here that the color of the <em>text</em> matters most. But if we look closely at Figure 3e, we can see that the left edge isn&#8217;t the same color as in Figure 3c, and the right edge pixels are <em>very</em> different. This leads us to important, if unexpected lesson:</p>
<p><strong><em>Sub-pixel anti-aliasing depends on both the color of the text and the color of the background. It is impossible to correctly apply sub-pixel anti-aliasing unless we know what the background contains.</em></strong></p>
<p>These brings us to the practical portion of this article. Under what conditions will sub-pixel anti-aliasing fail (not appear, or appear incorrectly)?
<ul>
<li>The application has called <code>CGContextSetShouldAntialias(context, false);</code></li>
<li>The application has called <code>CGContextSetShouldSmoothFonts(context, false);</code></li>
<li>The application has called <code>CGContextSetAllowsAntialiasing(context, false);</code></li>
<li>The context has no background (or has been filled with a color with alpha=0)</li>
<li>The application draws text first, then later fills in the background color (for example, to highlight text or show the selection). You should always draw highlighting <em>before</em> you draw the text.</li>
<li>If you change a view to use a CALayer (for CoreAnimation), you will now be drawing that view without any background, unless that view draws its own background. In Interface Builder, check &ldquo;Draws Background&rdquo; and explicitly set the background color, usually to <code>windowBackgroundColor</code>.</li>
</ul>
<p>There are a couple more &ldquo;gotchas.&rdquo; First, Mac OS X Snow Leopard does not recognize all third-party display as being compatible with sub-pixel rendering, and may therefore disable it system wide.<sup>1</sup> If you suspect this is happening to you, try the following command at a Terminal prompt:<br />
<code>defaults -currentHost write -globalDomain AppleFontSmoothing -int 2</code></p>
<p>Also, Core Graphics has, by default, a y-axis that extended upwards, rather than downwards, as in most other graphics systems. It is tempting to reverse the y-axis, draw offscreen, then flip it back when blitting to the screen. But there&rsquo;s a catch: this breaks text anti-aliasing (the chief symptom is blurry serifs and other horizontal lines). Do not draw upside-down unless you intend the text to be viewed upside-down. I hope I don&rsquo;t need to tell you that drawing text backwards and flipping will have terrible results.</p>
<p><sup>1</sup> <a href="http://www.macosxhints.com/article.php?story=20090828224632809" target="footnote">10.6: Re-enable LCD font smoothing for some monitors</a></p>
]]></content:encoded>
			<wfw:commentRss>http://danwright.info/blog/2010/06/antialiasing-text-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stephen Fry on the iPad</title>
		<link>http://danwright.info/blog/2010/04/stephen-fry-on-the-ipad/</link>
		<comments>http://danwright.info/blog/2010/04/stephen-fry-on-the-ipad/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 02:05:34 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://danwright.info/blog/?p=162</guid>
		<description><![CDATA[&#8220;One melancholy thought occurs as my fingers glide and flow over the surface of this astonishing object: Douglas Adams is not alive to see the closest thing to his Hitchhiker&#8217;s Guide [to the Galaxy] that humankind has yet devised.&#8221; &#8211; Stephen Fry
Read more
]]></description>
			<content:encoded><![CDATA[<blockquote><p>&ldquo;One melancholy thought occurs as my fingers glide and flow over the surface of this astonishing object: Douglas Adams is not alive to see the closest thing to his <em>Hitchhiker&rsquo;s Guide [to the Galaxy]</em> that humankind has yet devised.&rdquo; <br /><em>&ndash; Stephen Fry</em></p></blockquote>
<p><a href="http://bit.ly/9RISNd" target="_blank">Read more</a></p>
]]></content:encoded>
			<wfw:commentRss>http://danwright.info/blog/2010/04/stephen-fry-on-the-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Carl at 2&#189; months</title>
		<link>http://danwright.info/blog/2010/03/carl-at-2-12-months/</link>
		<comments>http://danwright.info/blog/2010/03/carl-at-2-12-months/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 20:26:44 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[family]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[Carl]]></category>

		<guid isPermaLink="false">http://danwright.info/blog/?p=157</guid>
		<description><![CDATA[A new photo set, Carl with his mom, is now on Flickr.

]]></description>
			<content:encoded><![CDATA[<p>A new photo set, Carl with his mom, is now <a href="http://www.flickr.com/photos/80168386@N00/sets/72157623742787510/" target="_blank">on Flickr</a>.</p>
<p><a href="http://www.flickr.com/photos/80168386@N00/sets/72157623742787510/show/"><img src="http://farm3.static.flickr.com/2546/4479369811_cfdbc6e156_m.jpg" width="160" height="240" alt="carl-and-anna-6323"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://danwright.info/blog/2010/03/carl-at-2-12-months/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web site browser agents (2010 edition)</title>
		<link>http://danwright.info/blog/2010/03/web-site-browser-agents-2010-edition/</link>
		<comments>http://danwright.info/blog/2010/03/web-site-browser-agents-2010-edition/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 19:46:29 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://danwright.info/blog/?p=155</guid>
		<description><![CDATA[Okay, it has now been a year since I published web browser statistics for my various sites, so this seems like a good time to take stock of how things have changed over the past year.
Take Internet Explorer 6 users (please!), for instance. Surely their numbers have fallen?
Here are my overall numbers for March 2009 [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, it has now been a year since I published <a href="/blog/2009/03/web-site-browser-agents/">web browser statistics for my various sites</a>, so this seems like a good time to take stock of how things have changed over the past year.</p>
<p>Take Internet Explorer 6 users (<em>please!</em>), for instance. Surely their numbers have fallen?</p>
<p>Here are my overall numbers for March 2009 to March 2010:</p>
<ul>
<li>64% MSIE</li>
<li>20% Firefox</li>
<li>10% Safari</li>
<li>6% Others (3% Chrome, 2% Opera)</li>
</ul>
<p>So for the past year, MSIE usage actually <em>increased</em>, Firefox and Safari fell; Others held their own.</p>
<p>The Internet Explorer breakdown:</p>
<ul>
<li><strong>38% MSIE 6.0</strong></li>
<li>36% MSIE 7.0</li>
<li>26% MSIE 8.0</li>
</ul>
<p>MSIE 8 has now been released for just over 12 months; and yet, it is only the third most popular version of Internet Explorer. Internet Explorer is the <em>only</em> browser with an upside-down adoption rate. Last year, MSIE 7 was the most popular version; this year, perversely, it is MSIE 6. MSIE 6 went up six points compared to last year.</p>
<p><em>Sigh.</em></p>
<p>Firefox:</p>
<ul>
<li>42% Firefox 3.5</li>
<li>42% Firefox 3.0</li>
<li>8% Firefox 2.0</li>
<li>7% Firefox 3.6</li>
</ul>
<p>Firefox 3.6 has only been out for about two months, so it&rsquo;s on track for a 42% share of the Firefox segment. Firefox 2.0 had the most share last year, at 48%. Quite a contrast with MSIE.</p>
<p>Safari:</p>
<ul>
<li>57% Safari 4.0</li>
<li>15% Safari 4.0 (mobile &#8211; iPhone/iPod Touch)</li>
<li>10% Safari 3.2</li>
<li>6% Safari 3.1</li>
<li>5% Safari 3.1 (mobile)</li>
<li>7% Safari 3.0, 4.1, and 2.x</li>
</ul>
<p>iPhone/iPod share has increased slightly, from 15 to 20%. A year ago, 3.2 was new, and version 3.1 had the largest share.</p>
]]></content:encoded>
			<wfw:commentRss>http://danwright.info/blog/2010/03/web-site-browser-agents-2010-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xcode Run Script Build Phase error reporting</title>
		<link>http://danwright.info/blog/2010/03/xcode-run-script-build-phase-error-reporting/</link>
		<comments>http://danwright.info/blog/2010/03/xcode-run-script-build-phase-error-reporting/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 17:14:35 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://danwright.info/blog/?p=151</guid>
		<description><![CDATA[I thought about blogging about this several months ago, but never got around to it. And don&#8217;t skip reading the comments.
]]></description>
			<content:encoded><![CDATA[<p>I thought about blogging about <a href="http://briksoftware.com/blog/?p=120" target="_blank">this</a> several months ago, but never got around to it. And don&rsquo;t skip reading the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://danwright.info/blog/2010/03/xcode-run-script-build-phase-error-reporting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bypassing the Safari/WebKit caching bug</title>
		<link>http://danwright.info/blog/2010/03/bypassing-the-safariwebkit-caching-bug/</link>
		<comments>http://danwright.info/blog/2010/03/bypassing-the-safariwebkit-caching-bug/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 21:30:33 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://danwright.info/blog/?p=143</guid>
		<description><![CDATA[Anyone who has used Safari (or any other WebKit-based browser) to debug javascript has encountered the annoying &#8220;Resource interpreted as other but transferred with MIME type application/x-javascript&#8221; bug. When this happens, the source of the javascript file appears blank in the debugger, and various other things may go wrong (sometimes code isn&#8217;t executed, for example).

This [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone who has used Safari (or any other WebKit-based browser) to debug javascript has encountered the annoying &ldquo;Resource interpreted as other but transferred with MIME type application/x-javascript&rdquo; bug. When this happens, the source of the javascript file appears blank in the debugger, and various other things may go wrong (sometimes code isn&rsquo;t executed, for example).</p>
<p><a href="http://img.ly/images/161379/full" target="_blank"><img src="http://img.ly/system/uploads/000/161/379/original_ScreenShotResourceInterpretedAsOther.png" alt="screen shot" width="405" height="44"></a></p>
<p>This problem is caused by a WebKit bug, triggered when files are taken from the browser&rsquo;s cache rather than from your server. The simple workaround is to force WebKit not to cache your javascript files while you&rsquo;re debugging them. This is easy if you server supports PHP (it almost certainly does). Create a php file to serve your javascript, and have your test page include that instead of your javascript:</p>
<p>Before:<br /><code><<!---->script src="testing.js" type="text/javascript"><<!---->/script></code></p>
<p>After:<br /><code><<!---->script src="debug.php/testing.js" type="text/javascript"><<!---->/script></code></p>
<p>Where debug.php has:</p>
<p><code><br />
<<!---->?php<br />
header('Content-Type: application/x-javascript');<br />
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');<br />
header('Cache-Control: no-cache, must-revalidate, max-age=0');<br />
header('Pragma: no-cache');<br />
readfile(dirname(__FILE__).'/testing.js');<br />
?<!---->><br />
</code></p>
<p>Or, more generally:</p>
<p><code><br />
<<!---->?php<br />
header('Content-Type: application/x-javascript');<br />
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');<br />
header('Cache-Control: no-cache, must-revalidate, max-age=0');<br />
header('Pragma: no-cache');<br />
$file = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '/testing.js';<br />
readfile(dirname(__FILE__).$file);<br />
?<!---->><br />
</code></p>
<p>If you use the general version, you may wish to include some security checks on the input (PATH_INFO) to protect against potential exploits. That is left as an exercise for the reader.</p>
<p>Of course, before you deploy, remember to change the script include back to the original form!</p>
]]></content:encoded>
			<wfw:commentRss>http://danwright.info/blog/2010/03/bypassing-the-safariwebkit-caching-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Photoluna 1.1</title>
		<link>http://danwright.info/blog/2010/01/photoluna-1-1/</link>
		<comments>http://danwright.info/blog/2010/01/photoluna-1-1/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 05:14:34 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[banasmoo-news]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://danwright.info/blog/?p=141</guid>
		<description><![CDATA[Photoluna 1.1 was released a few weeks ago, and is now available on the iTunes App Store. If you purchased version 1.0, you&#8217;ll be happy to know that this upgrade is free, and many of you have already updated to the new version.
Regrettably, I&#8217;ve been a bit behind the curve updating the Photoluna web site; [...]]]></description>
			<content:encoded><![CDATA[<p>Photoluna 1.1 was released a few weeks ago, and is now available on the iTunes App Store. If you purchased version 1.0, you&#8217;ll be happy to know that this upgrade is free, and many of you have already updated to the new version.</p>
<p>Regrettably, I&#8217;ve been a bit behind the curve updating the <a href="http://banasmoo.com/goto?photoluna">Photoluna web site</a>; most of the screen shots are from version 1.0. I was off on a two-week stint of jury duty just as 1.1 hit the store, followed by a bad cold that led straight into the holidays! The page should be updated soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://danwright.info/blog/2010/01/photoluna-1-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Photoluna 1.1 is (almost) here</title>
		<link>http://danwright.info/blog/2009/12/photoluna-1-1-is-almost-here/</link>
		<comments>http://danwright.info/blog/2009/12/photoluna-1-1-is-almost-here/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 00:46:01 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[banasmoo-news]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://danwright.info/blog/?p=139</guid>
		<description><![CDATA[Good news for those of you waiting for the next version of Photoluna! We finished and submitted version 1.1 last week, and it is currently under review by Apple. If all goes well it should be available within the next week. We have our fingers crossed.
“But how much will the upgrade cost,” you ask? Nothing! [...]]]></description>
			<content:encoded><![CDATA[<p>Good news for those of you waiting for the next version of Photoluna! We finished and submitted version 1.1 last week, and it is currently under review by Apple. If all goes well it should be available within the next week. We have our fingers crossed.</p>
<p>“But how much will the upgrade cost,” you ask? Nothing! This upgrade will be free to all current customers.</p>
<p>“What’s <em>in</em> the upgrade?” Ah, for that, you’ll have to wait a little longer&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://danwright.info/blog/2009/12/photoluna-1-1-is-almost-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>October &#8220;Blahs&#8221; Sale</title>
		<link>http://danwright.info/blog/2009/10/october-blahs-sale/</link>
		<comments>http://danwright.info/blog/2009/10/october-blahs-sale/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 21:45:15 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[banasmoo-news]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://danwright.info/blog/?p=137</guid>
		<description><![CDATA[Photoluna, for iPhone and iPod Touch, is on sale right now for 50% off (on top of the every-day 20% discount from its release price). This sale will only last a few days, so act quickly!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://banasmoo.com/goto?photoluna">Photoluna</a>, for iPhone and iPod Touch, is on sale right now for <strong>50% off</strong> (on top of the every-day 20% discount from its release price). This sale will only last a few days, so act quickly!</p>
]]></content:encoded>
			<wfw:commentRss>http://danwright.info/blog/2009/10/october-blahs-sale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Photoluna End-of-Summer Sale</title>
		<link>http://danwright.info/blog/2009/08/photoluna-end-of-summer-sale/</link>
		<comments>http://danwright.info/blog/2009/08/photoluna-end-of-summer-sale/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 21:31:36 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[banasmoo-news]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://danwright.info/blog/?p=135</guid>
		<description><![CDATA[Photoluna, for iPhone and iPod Touch, is on sale right now for 60% off. This sale will only last a few days, so act quickly!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://banasmoo.com/goto?photoluna">Photoluna</a>, for iPhone and iPod Touch, is on sale right now for <strong>60% off</strong>. This sale will only last a few days, so act quickly!</p>
]]></content:encoded>
			<wfw:commentRss>http://danwright.info/blog/2009/08/photoluna-end-of-summer-sale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
