<?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>Gracepoint After Five &#187; Our Projects</title>
	<atom:link href="http://www.gracepointafterfive.com/category/projects/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gracepointafterfive.com</link>
	<description>A design blog by those of us with day jobs</description>
	<lastBuildDate>Fri, 24 Jun 2011 21:40:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>PunyPNG on a New Server</title>
		<link>http://www.gracepointafterfive.com/punypng-on-a-new-server</link>
		<comments>http://www.gracepointafterfive.com/punypng-on-a-new-server#comments</comments>
		<pubDate>Fri, 25 Jun 2010 23:57:24 +0000</pubDate>
		<dc:creator>conrad</dc:creator>
				<category><![CDATA[Our Projects]]></category>

		<guid isPermaLink="false">http://www.gracepointafterfive.com/?p=406</guid>
		<description><![CDATA[I finally found some time to move PunyPNG to its own dedicated slice (previous it lived on Gracepoint After Five&#8217;s slice). You can now go directly to PunyPNG via this new URL: http://www.punypng.com (http://www.gracepointafterfive.com/punypng will now be redirected to the new URL, but any API calls will not be redirected)]]></description>
			<content:encoded><![CDATA[<p><span class="drop">I</span> finally found some time to move PunyPNG to its own dedicated slice (previous it lived on Gracepoint After Five&#8217;s slice).</p>
<p>You can now go directly to PunyPNG via this new URL:</p>
<p><a href="http://www.punypng.com">http://www.punypng.com</a></p>
<p>(http://www.gracepointafterfive.com/punypng will now be redirected to the new URL, but any API calls will not be redirected)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepointafterfive.com/punypng-on-a-new-server/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New Features in PunyPNG</title>
		<link>http://www.gracepointafterfive.com/new-features-in-punypng</link>
		<comments>http://www.gracepointafterfive.com/new-features-in-punypng#comments</comments>
		<pubDate>Sat, 26 Dec 2009 06:45:35 +0000</pubDate>
		<dc:creator>conrad</dc:creator>
				<category><![CDATA[Our Projects]]></category>
		<category><![CDATA[punypng]]></category>

		<guid isPermaLink="false">http://www.gracepointafterfive.com/?p=352</guid>
		<description><![CDATA[We just pushed out some hot new features to PunyPNG today: Added option to preserve EXIF data, to maintain copyright and other image metadata Added option to skip bit reduction when compressing.  This improved IE6 compatibility (see PunyPNG&#8217;s IE6 support) REST-based API support (beta) We also fixed a handful of outstanding issues: Improved performance of dirty transparency [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gracepointafterfive.com/wp-content/uploads/2009/12/punypng_new_version1.png"><img class="alignnone size-full wp-image-358" title="punypng_new_version" src="http://www.gracepointafterfive.com/wp-content/uploads/2009/12/punypng_new_version1.png" alt="punypng new version1 New Features in PunyPNG" width="500" height="309" /></a></p>
<p><span class="drop">W</span>e just pushed out some hot new features to PunyPNG today:</p>
<ul>
<li>Added option to preserve EXIF data, to maintain copyright and other image metadata</li>
<li>Added option to skip bit reduction when compressing.  This improved IE6 compatibility (see <a href="http://www.gracepointafterfive.com/ie6-support-with-punypng">PunyPNG&#8217;s IE6 support</a>)</li>
<li><a href="http://www.gracepointafterfive.com/punypng/api">REST-based API support</a> (beta)</li>
</ul>
<p>We also fixed a handful of outstanding issues:</p>
<ul>
<li>Improved performance of dirty transparency compression</li>
<li>Improved simultaneous uploading of multiple files</li>
<li>Fixed bug where the total savings being reported were incorrect</li>
</ul>
<p>You can now <a href="http://www.gracepointafterfive.com/punypng/signup" target="_blank">sign up for PunyPNG</a> to save your custom compression options and get assigned an API key.  We&#8217;re also excited to release the long-awaited PunyPNG API.  This will give you the ability to optimize multiple files in batch using a REST-based API (responses are in JSON).  <a href="http://github.com/grosser/smusher" target="_blank">Smusher</a> is a great example of how you can use the command-line to invoke PunyPNG without sacrificing your own CPU cycles.  The API is currently in limited beta, with some restrictions to ensure nobody decides to optimize their entire photo archive library over winter break or something.</p>
<p>Look out for more updates in the coming weeks.  Your feedback and <a href="http://punypng.uservoice.com" target="_blank">feature requests</a> are invaluable to making PunyPNG the awesome compression tool available.   Keep it coming.</p>
<p>Merry Christmas!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepointafterfive.com/new-features-in-punypng/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>GraceList &#8211; Craigslist-style classifieds app for small communities</title>
		<link>http://www.gracepointafterfive.com/gracelist-craigslist-style-classifieds-app-for-small-communities</link>
		<comments>http://www.gracepointafterfive.com/gracelist-craigslist-style-classifieds-app-for-small-communities#comments</comments>
		<pubDate>Tue, 18 Aug 2009 23:57:12 +0000</pubDate>
		<dc:creator>conrad</dc:creator>
				<category><![CDATA[Our Projects]]></category>
		<category><![CDATA[gracelist]]></category>
		<category><![CDATA[gracepoint]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://www.gracepointafterfive.com/?p=184</guid>
		<description><![CDATA[I originally created GraceList as an internal application for our church, Gracepoint Fellowship Church, Berkeley.  With a close-knit community that emphasizes open homes and lives, you can imagine how many things get lost and found.  I wanted a dead-simple classified apps so people could make postings about the small Bible they found at last week&#8217;s prayer [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gracepointafterfive.com/wp-content/uploads/2009/08/gracelist.jpg"><img class="aligncenter size-full wp-image-187" title="GraceList - Gracepoint Fellowship Church" src="http://www.gracepointafterfive.com/wp-content/uploads/2009/08/gracelist.jpg" alt="gracelist GraceList   Craigslist style classifieds app for small communities " width="507" height="388" /></a></p>
<p><span class="drop">I</span> originally created <a href="http://github.com/conradchu/GraceList" target="_blank">GraceList</a> as an internal application for our church, <a style="line-height: 1.4em; color: #4183c4; text-decoration: none; padding: 0px; margin: 0px;" href="http://www.gracepointonline.org/">Gracepoint Fellowship Church, Berkeley</a>.  With a close-knit community that emphasizes open homes and lives, you can imagine how many things get lost and found.  I wanted a dead-simple classified apps so people could make postings about the small Bible they found at last week&#8217;s prayer meeting to the new analyst opening at their work.  It has to be easy to use: from our techniest geeks to <a href="http://kellykangblog.wordpress.com/" target="_blank">Kelly</a>, our pastor&#8217;s wife ;) In the past, we would just email blast our Gracepoint member alias and that would just clutter hundreds of inboxes.  We needed our own little private Craigslist with a smart digest email to highlight new postings.</p>
<p><a href="http://www.gracepointafterfive.com/gracelist" target="_blank">View Demo</a></p>
<p>Features:</p>
<ul>
<li>Custom categories for posting</li>
<li>Simple UI for making posts.  All you need is an email!</li>
<li>Support for Textfile</li>
<li>Send digest HTML emails periodically to an alias with new postings highlighted</li>
</ul>
<p>GraceList requires Rails 2.2 or above.  Download and installation notes are available on GitHub:</p>
<p><a href="http://github.com/conradchu/GraceList" target="_blank">http://github.com/conradchu/GraceList</a></p>
<p>We hope you enjoy using this simple little app that has made life a lot easier for us.  We&#8217;re glad we can finally share it with the rest of the world.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepointafterfive.com/gracelist-craigslist-style-classifieds-app-for-small-communities/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>punypng Benchmarks</title>
		<link>http://www.gracepointafterfive.com/punypng-benchmarks</link>
		<comments>http://www.gracepointafterfive.com/punypng-benchmarks#comments</comments>
		<pubDate>Tue, 04 Aug 2009 20:08:00 +0000</pubDate>
		<dc:creator>conrad</dc:creator>
				<category><![CDATA[Our Projects]]></category>

		<guid isPermaLink="false">http://www.gracepointafterfive.com/?p=162</guid>
		<description><![CDATA[I recently ran some benchmarks, comparing punypng to a lot of the popular tools out there. I selected tools I felt were decently strong and versatile in handling images: punypng: the new kid of the block. smush.it: Uses pngcrush as the main PNG optimizer.  Currently, available in Yahoo&#8217;s YSlow Firefox plug-in.  I believe it uses [...]]]></description>
			<content:encoded><![CDATA[<p><span class="drop">I</span> recently ran some benchmarks, comparing punypng to a lot of the popular tools out there. I selected tools I felt were decently strong and versatile in handling images:</p>
<ul>
<li><a href="http://www.punypng.com">punypng</a>: the new kid of the block.</li>
<li><a href="http://www.smush.it">smush.it</a>: Uses pngcrush as the main PNG optimizer.  Currently, available in Yahoo&#8217;s YSlow Firefox plug-in.  I believe it uses the -brute option for pngcrush.</li>
<li><a href="http://optipng.sourceforge.net/">OptiPNG</a>: A slighlty better algorithm, compared to pngcrush.  In case you&#8217;re wondering, Google&#8217;s <a href="http://code.google.com/speed/page-speed/">PageSpeed</a> plugin also uses OptiPNG for it&#8217;s compression library.</li>
<li><a href="http://pornel.net/imageoptim/en">ImageOptim</a>: The heavyweight contender.  Available for OS X, ImageOptim uses every major library out there: advdef, pngcrush, optipng, pngcrush, jpegoptim, jpegtran, and optionally pngout.  I ran this the benchmarks with pngout enabled.</li>
</ul>
<p>Now, it&#8217;s tricky business to try to compare compressors side-by-side against a single image.  So instead, I selected some typical images that I found on the web, like sprites from some popular websites (Facebook, Yahoo&#8217;s icon set, and of course Ask.com, hehe).  Images vary from 24-bit transparent PNGs to 8-bit indexed GIFs.  Amount of transparency among the PNGs also varies.</p>
<p>I also included a blocky-styled JPEG to see how the different tools handled it.  I know some might cry foul because I included a JPEG with solid colors (since you could have just saved it as an indexed GIF or PNG).  However, I&#8217;ve seen hundreds of JPEGs that people have been uploading to punypng and it just shows that it&#8217;s often hard to know which format was certainly be the best one.</p>
<p>OptiPNG and ImageOptim also cannot process JPEGs and GIFs respectively.  Before benchmarking, I converted them to the more digestable PNG format using ImageMagick to ensure no metadata was added</p>
<p>In total, the test images in total weighed in at 276KB.</p>
<p><a href="http://www.gracepointafterfive.com/wp-content/uploads/2009/08/benchmark_images.zip">Download the Test Images</a></p>
<p>Here are the results:</p>
<p><img class="aligncenter size-full wp-image-164" title="benchmarks" src="http://www.gracepointafterfive.com/wp-content/uploads/2009/08/benchmarks.png" alt="benchmarks punypng Benchmarks" width="507" height="388" /></p>
<p>punypng was able to achieve 41% savings, almost double the competition  The most surprising result was how much punypng trounced ImageOptim, especially on the NASCAR image.  I was actually thinking that ImageOptim would beat punypng on some of the tests, since it uses everything under the sky.  In terms of processing time, punypng was a wee faster than smush.it, about the same as OptiPNG, and light-years ahead of ImageOptim, which took eons to compress as it&#8217;s CPU-intensive.</p>
<p>One caveat I want to make is that this benchmark is not meant to say punypng is going to beat out the competition every time.  However, on average, it does an excellent job, especially on images with 24-bit transparency.  Libraries like pngout (which is part of ImageOptim&#8217;s toolbox) does a good job as a standalone library, but it&#8217;s very slow.  I&#8217;ve often found that pngout only saves a few bytes here or there, and isn&#8217;t worth the wait.</p>
<p>I think one thing that favors punypng (as well as smush.it)  is that it handles every kind of image you would use on web page: PNGs, GIFs, JPEGs, and Animated GIFs.  I was kinda bummed with the other tools because they primarily processed only PNGs and had weak support for other formats.  Personally, I just want a tool I can use to compress all my images using the latest compression technologies and techniques, and for me, that&#8217;s why I recommend punypng to all.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepointafterfive.com/punypng-benchmarks/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>punypng now supports Dirty Transparency</title>
		<link>http://www.gracepointafterfive.com/punypng-now-supports-dirty-transparency</link>
		<comments>http://www.gracepointafterfive.com/punypng-now-supports-dirty-transparency#comments</comments>
		<pubDate>Tue, 21 Jul 2009 15:00:04 +0000</pubDate>
		<dc:creator>conrad</dc:creator>
				<category><![CDATA[Our Projects]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[punypng]]></category>
		<category><![CDATA[transparency]]></category>

		<guid isPermaLink="false">http://www.gracepointafterfive.com/?p=117</guid>
		<description><![CDATA[Gracepoint After Five&#8217;s super-ninja compression tool, punypng, got a new upgrade to help slice and dice the size of your website images.  punypng&#8217;s compression algorithm now automatically supports Dirty Transparency as described by Sergey Chikuyonok&#8217;s awesome article on Clever PNG Optimization Techniques that was recently published on Smashing Mazagine.  This unique and innovative technique offers additional [...]]]></description>
			<content:encoded><![CDATA[<p><span class="drop">G</span>racepoint After Five&#8217;s super-ninja compression tool, <a href="../punypng">punypng</a>, got a new upgrade to help slice and dice the size of your website images.  punypng&#8217;s compression algorithm now automatically supports Dirty Transparency as described by Sergey Chikuyonok&#8217;s awesome article on <a href="http://www.smashingmagazine.com/2009/07/15/clever-png-optimization-techniques/">Clever PNG Optimization Techniques</a> that was recently published on Smashing Mazagine.  This unique and innovative technique offers additional compression to any PNG or GIF as long as it has either 8-bit or 1-bit transparency.  <strong>On average, you can save about 10% more, and in some cases, you will save even as much as 35%!</strong></p>
<p>As I wrote <a href="http://www.gracepointafterfive.com/dirty-transparency">previously</a> regarding dirty transparency, you can use our Photoshop action to create a more optimized PNG.  If you ever find yourself outputting a layer that has been masked, you can look to get some serious savings.</p>
<div id="attachment_124" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.gracepointafterfive.com/wp-content/uploads/2009/07/example1.png"><img class="size-medium wp-image-124 " title="Butterfly Example" src="http://www.gracepointafterfive.com/wp-content/uploads/2009/07/example1-300x184.png" alt="example1 300x184 punypng now supports Dirty Transparency" width="300" height="184" /></a><p class="wp-caption-text">Typical use case where dirty transparency will give you the most savings</p></div>
<p>This butterfly image above was reduced by 36% when I ran it through the updated dirty transparency compression algorithms in punypng.  This image was only reduced by 7% when dirty transparency was disabled.</p>
<p>One of my Ask.com UX Design buddies was a little skeptical in terms of how dirty transparency would help our team.  He mentioned that our sprite preparation process already optimizes the transparency of our assets;  transparencies are already cut and matted &#8230; no hidden image data.  Right? Well, I wasn&#8217;t sure either way , so I decided to run a test on our Ask.com sprites.  Our sprites span a good variety of use cases, ranging from full 24-bit color PNGs to 8-bit GIFs to 24-bit hand-quantized, indexed PNGs.  In terms of image data, everything is as tight and pixel-pushed as they possibly can be &#8230; transparencies are matted and all masks applied.</p>
<p>Here are the results:</p>
<div id="attachment_129" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.gracepointafterfive.com/wp-content/uploads/2009/07/comparison1.png"><img class="size-medium wp-image-129" title="Dirty Transparency Comparison" src="http://www.gracepointafterfive.com/wp-content/uploads/2009/07/comparison1-300x268.png" alt="comparison1 300x268 punypng now supports Dirty Transparency" width="300" height="268" /></a><p class="wp-caption-text">punypng&#39;s new support for dirty transparency </p></div>
<p style="text-align: center;">
<p>The above results speak for themselves.  The results are very surprising!  <strong>punypng was still able to squeeze out another 3% of compression on average on top of the existing compression algorithm!</strong></p>
<p>So what&#8217;s the catch.  Well, in some minor cases, the dirty transparency technique produced images that were 1-2% larger than usual (though they were still smaller than anything that pngcrush or optipng could ever produce).  However, these were rare cases and the savings as a whole in fact did add up to 10% or more.  In terms of performance, using dirty transparency to compress 15 or more files adds only added 1-2 seconds to the process.</p>
<p>In general, I think it&#8217;s safe to say that dirty transparency is a proven technique that warrants inclusion in everyone&#8217;s arsenal.  It&#8217;s my hope that with this latest addition, punypng can start emerging from the myriad of compression tools on the market as the one-stop tool for designers and web geeks who are serious about making the web more puny.  Give a try and post your comparison results.</p>
<p>Thanks again to Sergey Chikuyonok for his original contributions.  I look forward to adding more of his techniques into punypng.</p>
<p>Update on 10/12/09: <a href="http://www.gracepointafterfive.com/ie6-support-with-punypng">PunyPNG supports IE6 using the dd_belatedpng plugin</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepointafterfive.com/punypng-now-supports-dirty-transparency/feed</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Apple&#8217;s Pretty Search Bar</title>
		<link>http://www.gracepointafterfive.com/apple-search-bar</link>
		<comments>http://www.gracepointafterfive.com/apple-search-bar#comments</comments>
		<pubDate>Fri, 17 Jul 2009 04:25:18 +0000</pubDate>
		<dc:creator>abeyang</dc:creator>
				<category><![CDATA[Our Projects]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.gracepointafterfive.com/?p=97</guid>
		<description><![CDATA[At my company a few years ago, we&#8217;ve been working on some projects that require some heavy UI overhaul. One of these projects requires a &#8220;filter bar&#8221; &#8212; a search bar that filters a long list dynamically. We thought that the typical text fields would clash with the style of our design, so we opted [...]]]></description>
			<content:encoded><![CDATA[<p><span class="drop">A</span>t my company a few years ago, we&#8217;ve been working on some projects that require some heavy UI overhaul. One of these projects requires a &#8220;filter bar&#8221; &#8212; a search bar that filters a long list dynamically.  We thought that the typical <a href="http://www.echoecho.com/htmlforms05.htm" target="_blank">text fields</a> would clash with the style of our design, so we opted for the <a href="http://www.bartelme.at/journal/archive/safaris_search_field/" target="_blank">Safari-esque search field</a> with the rounded corners.</p>
<h2>Initial Setbacks</h2>
<p>Unfortunately, Safari is the only browser currently that (natively) offers this nice-looking search field. What to do, what to do? Well, we could simply fake it, couldn&#8217;t we? That is, we could just have a simple text input field and tack on two rounded sides on the end, no? Unfortunately, it&#8217;s not that easy. You see, in Safari, when you select an input field, it &#8220;glows&#8221;:</p>
<p><img class="size-full wp-image-98" title="safari-search-nogood" src="http://www.gracepointafterfive.com/wp-content/uploads/2009/07/safari-search-nogood.gif" alt="safari search nogood Apples Pretty Search Bar" width="180" height="35" /></p>
<p>There were other problems that came up along the way:</p>
<ul>
<li>No way to disable glow in Safari, or</li>
<li>no way to only make the outside glow in Safari (if we were just using a standard text input)</li>
<li>Safari uses type=&#8221;search&#8221;. However, that isn&#8217;t W3C compliant.</li>
</ul>
<h2>Solution</h2>
<p>Well, without going into all the boring details as to what we&#8217;ve done, let me just say that we&#8217;ve turned it into a generic framework, and you can download it <a href="http://www.conviodesign.com/downloads/prettyinput.zip">here</a>. A thing to note is that it requires the <a href="http://mootools.net/" target="_blank">Mootools </a>framework.</p>
<h2>Implementation</h2>
<p>We first need to reference the right files. Remember, Mootools go before prettyinput.js.</p>
<p><code class="prettyprint">&lt;script src="mootools.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;<br />
&lt;script src="prettyinput.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;<br />
</code></p>
<p>Next, we&#8217;ll place the input tag inside the HTML file. Note that the span element is optional &#8212; it defines the text inside the search bar.</p>
<p><code class="prettyprint">&lt;label for="YOUR-ID"&gt;<br />
&lt;span class="prettyplaceholder"&gt;Search&lt;/span&gt;<br />
&lt;input id="YOUR-ID" class="prettysearch" type="text" /&gt;<br />
&lt;/label&gt;<br />
</code></p>
<p>Finally, let&#8217;s insert this Javascript snippet in the header.</p>
<p><code class="prettyprint">window.addEvent('domready', function() {<br />
new PrettyInput($('YOUR-ID'));<br />
});<br />
</code></p>
<p>Voila! That&#8217;s it!</p>
<h2>Compatibility</h2>
<p>This is fully compatible with the following browsers:</p>
<ul>
<li>IE6+</li>
<li>Firefox 2+</li>
<li>Safari 2+</li>
</ul>
<p><a href="http://www.gracepointafterfive.com/wp-content/uploads/2009/07/prettyinput.zip">Download PrettySearch</a> (15KB)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepointafterfive.com/apple-search-bar/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>punypng: making the web more puny, one png at a time</title>
		<link>http://www.gracepointafterfive.com/punypng-making-the-web-a-more-puny-place</link>
		<comments>http://www.gracepointafterfive.com/punypng-making-the-web-a-more-puny-place#comments</comments>
		<pubDate>Thu, 09 Jul 2009 06:00:39 +0000</pubDate>
		<dc:creator>conrad</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Our Projects]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[punypng]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://www.gracepointafterfive.com/?p=56</guid>
		<description><![CDATA[I finally released punypng to the world last week.  It&#8217;s a free png compression service that intelligently leverages multiple open-source png compression algorithms in the hopes of making the web  more puny, one png at a time. Try out punypng (as a short url: http://www.punypng.com works as well) How punypng came about punypng actually started [...]]]></description>
			<content:encoded><![CDATA[<p><span class="drop">I</span> finally released punypng to the world last week.  It&#8217;s a free png compression service that intelligently leverages multiple open-source png compression algorithms in the hopes of making the web  more puny, one png at a time.</p>
<p><a href="http://www.gracepointafterfive.com/punypng">Try out punypng</a> (as a short url: <a href="http://www.punypng.com">http://www.punypng.com</a> works as well)</p>
<p><a style="text-decoration: none;" href="http://www.gracepointafterfive.com/punypng"><img class="aligncenter size-full wp-image-69" title="punypng - png optimization" src="http://www.gracepointafterfive.com/wp-content/uploads/2009/07/punypng.png" alt="punypng punypng: making the web more puny, one png at a time" width="329" height="77" /></a></p>
<p><strong>How punypng came about</strong></p>
<p>punypng actually started not as a need at Gracepoint Fellowship Church, but rather at my day job.  At the <a href="http://www.ask.com">Ask.com User Experience Team</a>, we believe down to our toes that design is about craftsmanship.  Our designers are obsessive about detail, and though few notice, everything is &#8220;pixel-pushed&#8221; &#8212; no stray pixels, no unnecessary colors.  A big part of search is fast page load times.  Every search experience team (Google, Yahoo, etc) knows that the faster the page loads, the more loyal your users will be over time (if you don&#8217;t by now, well, now you know).  The Ask.com team previously relied on Yahoo&#8217;s <a href="http://www.smushit.com">smush.it</a> service (no shame, Yahoo dev tools are great and a huge asset to everyone), which was very impressive, but for our day-to-day work, we wanted something that was made for designers by designers.  So after a few sleepless nights thinking how I can make my PNGs smaller, I decided to start on the punypng project.  Fast forward a month later, punypng is now the bread and butter tool among the Ask.com UX designers (and the Gracepoint designers as well)</p>
<p><strong>The specialness of punypng</strong></p>
<p>I don&#8217;t claim that punypng is for everyone.  I wanted a tool made for designers, and so I also left out a lot features (for now) such as an API or fetching images via URLs (I assume all original assets are on your hard drive not on some website).  But though lacking in these small ways, it does boast some great features:</p>
<ul>
<li>Fully supports for PNG, .GIF, .JPG</li>
<li>Clear affordances for # of bytes saved (as well as being pretty bar graphs)</li>
<li>JPEG Compression &#8212; punypng doesn&#8217;t leave JPEGs out in the cold.  JPEGs are analyzed to see if a compressed PNG format is better (ex: JPEGs with heavy solid areas benefit from this).  But if not, don&#8217;t despair, punypng is backed with <a href="http://jpegclub.org/">jpeg-tran</a> and <a href="http://freshmeat.net/projects/jpegoptim/">jpegoptim</a> for further JPEG optimzation.</li>
<li>&#8220;Fire-and-forget&#8221; batch processing: You can upload up to 50 files in a single session.  Optimized versions are clearly labeled, and if no further optimization can be made to the uploaded file, you get the original back untouched.  After you upload a batch, you can go ahead and upload another batch without having to reload the page.</li>
<li>Download batch jobs as a single time-stamped ZIP.</li>
<li><a href="http://www.gracepointafterfive.com/punypng-changelog">See the changelog</a> for future updates</li>
</ul>
<p><strong>The future</strong></p>
<p>I don&#8217;t know what the future holds in store for punypng.  Please let me know if there&#8217;s some enhancement or new feature that would help your day to day work.  punypng has relentless commitment to making every png as small as possible, so barring enormous CPU requirements, let us know if there&#8217;s some experimental binary out there that we can include. The great thing of an online tool vs a desktop tool is that we can constantly improve the performance and efficiency of the compression as new algorithms are made available.  Just today I found a way to squeeze out 3-5% more.</p>
<p style="text-align: center;"><img class="aligncenter size-medium wp-image-72" title="Before and After" src="http://www.gracepointafterfive.com/wp-content/uploads/2009/07/comparison-300x140.png" alt="comparison 300x140 punypng: making the web more puny, one png at a time" width="300" height="140" /></p>
<p><strong>Help support punypng</strong></p>
<p>Well, every Gracepoint After Five project is free to the world, and is our belief, that all the little tools we build will end up benefiting the church at large (as well as my team at Ask.com of course).  Running a CPU-intensive site like punypng isn&#8217;t cheap.  Please help support the cause.  If not, please help spread the word.  Our gratitude to you is non-puny.</p>
<p>Update on 10/12/09: <a href="http://www.gracepointafterfive.com/ie6-support-with-punypng">PunyPNG supports IE6 using the dd_belatedpng plugin</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gracepointafterfive.com/punypng-making-the-web-a-more-puny-place/feed</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
	</channel>
</rss>

