<?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>Acceptable Exceptions</title>
	<atom:link href="http://petesaia.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://petesaia.com</link>
	<description></description>
	<lastBuildDate>Thu, 23 May 2013 13:42:59 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Appcelerator Event Garbage Collection</title>
		<link>http://petesaia.com/2012/10/appcelerator-event-garbage-collection/</link>
		<comments>http://petesaia.com/2012/10/appcelerator-event-garbage-collection/#comments</comments>
		<pubDate>Mon, 01 Oct 2012 22:49:34 +0000</pubDate>
		<dc:creator>petesaia</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[appcelerator]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[garbage collection]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[ti.api.addeventlistener]]></category>
		<category><![CDATA[titanium]]></category>

		<guid isPermaLink="false">http://petesaia.com/?p=203</guid>
		<description><![CDATA[As you apply API level event listeners throughout your application you must remember to remove the event when you are done with it, usually when the window is closed. Otherwise your events will end up firing multiple times and things can get messy. Especially if a sql query is part of the call. These stray [...]]]></description>
				<content:encoded><![CDATA[<p>As you apply API level event listeners throughout your application you must remember to remove the event when you are done with it, usually when the window is closed. Otherwise your events will end up firing multiple times and things can get messy. Especially if a sql query is part of the call. These stray event listeners are also known as <a href="http://developer.appcelerator.com/question/57081/tiappaddeventlistener---zombies">&#8220;zombie event listeners&#8221;</a>.</p>
<p>The object below can help you manage your events and you will never have to worry about removing them. Any event listener you add with this wrapper will automatically get removed when the window is closed. It is essentially a wrapper for <a href="http://docs.appcelerator.com/titanium/2.1/index.html#!/api/Titanium.API" target="_blank">Ti.API.addEventListener</a> and allows you to assign an event to a specific window.</p>
<p>This is a basic <a href="https://wiki.appcelerator.org/display/guides/CommonJS+Modules+in+Titanium">commonjs</a> module.</p>
<p><script src="https://gist.github.com/1755885.js?file=egc.js"></script></p>
<p><strong>Usage:</strong><br />
<script type="text/javascript" src="https://gist.github.com/1755885.js?file=EventGarbageCollectionImplementation.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://petesaia.com/2012/10/appcelerator-event-garbage-collection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modest Maps Wax Zoomer</title>
		<link>http://petesaia.com/2012/05/modestmaps-wax-zoomer/</link>
		<comments>http://petesaia.com/2012/05/modestmaps-wax-zoomer/#comments</comments>
		<pubDate>Thu, 24 May 2012 19:17:14 +0000</pubDate>
		<dc:creator>petesaia</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[modestmaps]]></category>

		<guid isPermaLink="false">http://petesaia.com/?p=193</guid>
		<description><![CDATA[Wax is an extension for Modest Maps and other various JavaScript based mapping libraries. One of the utilities offered is the Zoomer. Out of the box it just has basic zoom in and out buttons which is great, but often a zoom scale is required. Here is an extended Zoomer with a Google-style scale. I [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://mapbox.com/wax/">Wax</a> is an extension for <a href="http://modestmaps.com/">Modest Maps</a> and other various JavaScript based mapping libraries. One of the utilities offered is the Zoomer. Out of the box it just has basic zoom in and out buttons which is great, but often a zoom scale is required. Here is an extended Zoomer with a Google-style scale. I have applied a bit of styling to it so it is visible but it requires nothing but the Wax library. Style and use how you please.</p>
<p><a href="http://petesaia.com/work/wax-zoom/">Example</a> | <a href="https://gist.github.com/2783589">Github</a></p>
]]></content:encoded>
			<wfw:commentRss>http://petesaia.com/2012/05/modestmaps-wax-zoomer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Merging Multiple Geographic Files to One ESRI Shapfile</title>
		<link>http://petesaia.com/2012/05/merging-multiple-geographic-files-to-one-esri-shapfile/</link>
		<comments>http://petesaia.com/2012/05/merging-multiple-geographic-files-to-one-esri-shapfile/#comments</comments>
		<pubDate>Tue, 08 May 2012 18:10:54 +0000</pubDate>
		<dc:creator>petesaia</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[gdal]]></category>
		<category><![CDATA[kml]]></category>
		<category><![CDATA[kmz]]></category>
		<category><![CDATA[Maps]]></category>
		<category><![CDATA[ogr2ogr]]></category>
		<category><![CDATA[shapefile]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://petesaia.com/?p=182</guid>
		<description><![CDATA[Perhaps this could helpful to someone. Here is a basic shell script I wrote for merging hundreds KMZ, KML and Shapefiles in to one nice ESRI Shapefile. This depends on ogr2ogr. To run, edit the first 4 variables if needed and then cd to the directory containing this script and do: ./merge]]></description>
				<content:encoded><![CDATA[<p>Perhaps this could helpful to someone. Here is a basic shell script I wrote for merging hundreds KMZ, KML and Shapefiles in to one nice ESRI Shapefile. This depends on <a href="http://www.gdal.org/ogr2ogr.html" title="ogr2ogr">ogr2ogr</a>.</p>
<p><script src="https://gist.github.com/2638080.js?file=bash.sh"></script></p>
<p>To run, edit the first 4 variables if needed and then cd to the directory containing this script and do:<br />
<code>./merge</code></p>
]]></content:encoded>
			<wfw:commentRss>http://petesaia.com/2012/05/merging-multiple-geographic-files-to-one-esri-shapfile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Peach Database Migration</title>
		<link>http://petesaia.com/2012/03/peach-database-migration/</link>
		<comments>http://petesaia.com/2012/03/peach-database-migration/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 23:16:31 +0000</pubDate>
		<dc:creator>petesaia</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[migration]]></category>

		<guid isPermaLink="false">http://petesaia.com/?p=173</guid>
		<description><![CDATA[A cute javascript app to safely migrate a database with serialized PHP objects. At work we have a shell script to handle the migration from to dev to staging to production and so on. The script properly converts the serialized objects containing the domain name and replacing the old one. It works great, however, it&#8217;s [...]]]></description>
				<content:encoded><![CDATA[<blockquote><p>A cute javascript app to safely migrate a database with serialized PHP objects.</p></blockquote>
<p>At work we have a shell script to handle the migration from to dev to staging to production and so on. The script properly converts the serialized objects containing the domain name and replacing the old one. It works great, however, it&#8217;s a shell script. I wanted something faster, easier, and something I could use from any computer, anywhere. So I wrote <a href="http://petesaia.com/work/peach/" title="mvwpdb" target="_blank">peach</a>. Also, this doesn&#8217;t have to be WordPress site, it will handle ANY standard mysql dump. And I named it Peach. Enjoy.</p>
<p>Feel free to clone it on <a href="https://github.com/petesaia/Peach">github</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://petesaia.com/2012/03/peach-database-migration/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Custom Mapping API&#8217;s</title>
		<link>http://petesaia.com/2012/02/custom-mapping-apis/</link>
		<comments>http://petesaia.com/2012/02/custom-mapping-apis/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 19:04:03 +0000</pubDate>
		<dc:creator>petesaia</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[map tiles]]></category>
		<category><![CDATA[Mapping API's]]></category>
		<category><![CDATA[Maps]]></category>

		<guid isPermaLink="false">http://petesaia.com/?p=153</guid>
		<description><![CDATA[Google Maps is a great library but it only offers so much out of the box when it comes to customization. I compiled a list of API&#8217;s for creating custom &#8220;slippy maps&#8220;. Polymaps Leaflet Modest Maps Cloudmade Map API Open Layers Mapbox These maps require tiles. Preferably a tile server will generate these so you [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://code.google.com/apis/maps/documentation/javascript/">Google Maps</a> is a great library but it only offers so much out of the box when it comes to customization. I compiled a list of API&#8217;s for creating custom &#8220;<a href="https://www.google.com/webhp?sourceid=chrome-instant&#038;ix=iea&#038;ie=UTF-8&#038;ion=1#sclient=psy-ab&#038;hl=en&#038;site=webhp&#038;source=hp&#038;q=slippy%20maps&#038;pbx=1&#038;oq=&#038;aq=&#038;aqi=&#038;aql=&#038;gs_sm=&#038;gs_upl=&#038;bav=on.2,or.r_gc.r_pw.,cf.osb&#038;fp=2cc53293e09aad47&#038;biw=2196&#038;bih=1275&#038;ix=iea&#038;ion=1&#038;ix=iea&#038;ion=1&#038;pf=p&#038;pdl=500" target="_blank">slippy maps</a>&#8220;. </p>
<ul>
<li><a href="http://polymaps.org/" title="Polymaps" target="_blank">Polymaps</a></li>
<li><a href="http://leaflet.cloudmade.com/" title="Leaflet" target="_blank">Leaflet</a></li>
<li><a href="https://github.com/stamen/modestmaps-js/wiki" title="Modest Maps" target="_blank">Modest Maps</a></li>
<li><a href="http://developers.cloudmade.com/projects/web-maps-api/examples" title="Cloudmade Map API" target="_blank">Cloudmade Map API</a></li>
<li><a href="http://openlayers.org/" title="Open Layers" target="_blank">Open Layers</a></li>
<li><a href="http://mapbox.com/" title="Mapbox" target="_blank">Mapbox</a></li>
</ul>
<p>These maps require tiles. Preferably a tile server will generate these so you don&#8217;t have create your own massive directory tree containing all of the tiles. Below are options.</p>
<ul>
<li><a href="http://tilestache.org/" title="Tile Stache" target="_blank">Tile Stache</a></li>
<li><a href="http://tilecache.org/" title="Tile Cache" target="_blank">Tile Cache</a></li>
<li><a href="http://www.openstreetmap.org/" title="Open Street Map" target="_blank">Open Street Map</a></li>
<li><a href="https://github.com/mapbox/tilestream" title="Tilestream" target="_blank">Tilestream</a></li>
</ul>
<p>Oh yeah, and of course, these are all JavaScript based. This is the first of many posts to come about custom mapping.</p>
]]></content:encoded>
			<wfw:commentRss>http://petesaia.com/2012/02/custom-mapping-apis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SVG to JSON</title>
		<link>http://petesaia.com/2011/11/svg-to-json/</link>
		<comments>http://petesaia.com/2011/11/svg-to-json/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 16:33:34 +0000</pubDate>
		<dc:creator>petesaia</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[svg]]></category>

		<guid isPermaLink="false">http://petesaia.com/?p=138</guid>
		<description><![CDATA[I&#8217;ve been making a lot of map based applications lately using primarily Rapha&#235;l.js. Using the method below I can easily convert any svg exported from Illustrator to json. I find this to be a much better solution than parsing SVG with javascript for performance reasons. I will be building this class up a bit as [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been making a lot of map based applications lately using primarily <a href="http://raphaeljs.com/">Rapha&euml;l.js</a>. Using the method below I can easily convert any svg exported from Illustrator to json. I find this to be a much better solution than parsing SVG with javascript for performance reasons. I will be building this class up a bit as I go and create a Github repo eventually, but I just wanted to get this out in the world to maybe help someone else doing the same thing.<br />
<span id="more-138"></span><br />
<script src="https://gist.github.com/1755885.js?file=peachsvg.php"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://petesaia.com/2011/11/svg-to-json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Animation Stepping with jQuery</title>
		<link>http://petesaia.com/2011/10/animation-stepping-with-jquery/</link>
		<comments>http://petesaia.com/2011/10/animation-stepping-with-jquery/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 18:12:15 +0000</pubDate>
		<dc:creator>petesaia</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://petesaia.com/?p=126</guid>
		<description><![CDATA[If all you need is great JavaScript animation and tweening I recommend using Shifty or one of the other great libraries on MicroJS. They are small, efficient and optimized for high performance. However, if your project is already using jQuery and you want a basic low-level tweening method there is no need to re-create the [...]]]></description>
				<content:encoded><![CDATA[<p>If all you need is great JavaScript animation and tweening I recommend using <a href="https://github.com/jeremyckahn/shifty" target="_blank">Shifty</a> or one of the other great libraries on <a href="http://microjs.com/#jsanimation" target="_blank">MicroJS</a>. They are small, efficient and optimized for high performance. However, if your project is already using jQuery and you want a basic low-level tweening method there is no need to re-create the wheel or import any other library. Everyone is familiar with the jQuery <a href="http://api.jquery.com/animate/" target="_blank">animation method</a>. It goes a little something like this:</p>
<p><script src="https://gist.github.com/1755885.js?file=well-known.js"></script></p>
<p>It is commonly used for tweening powered by css. This is all well and good, but what if you want to tween a dom element attribute such as viewBox on a SVG element? Well, the animation method can handle that as well. Take a look.</p>
<p><script src="https://gist.github.com/1755885.js?file=lesser-known.js"></script></p>
<p>Also, see a working example <strong><a href="http://petesaia.com/work/svgzoom/">here</a></strong>. <em>(Works in all modern browsers)</em></p>
<p>The &#8220;duration&#8221; is the amount of milliseconds the tween will last. &#8220;step&#8221; will be called at every step of the tween which is where you will put your animation logic of course, and finally &#8220;complete&#8221; will be called once the tween if finished. Tween on.</p>
]]></content:encoded>
			<wfw:commentRss>http://petesaia.com/2011/10/animation-stepping-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Personal Project: EFF &amp; APR Calculator</title>
		<link>http://petesaia.com/2011/09/eff-apr-calculator/</link>
		<comments>http://petesaia.com/2011/09/eff-apr-calculator/#comments</comments>
		<pubDate>Sun, 11 Sep 2011 22:41:57 +0000</pubDate>
		<dc:creator>petesaia</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[apr]]></category>
		<category><![CDATA[eef]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[manifest]]></category>

		<guid isPermaLink="false">http://petesaia.com/?p=109</guid>
		<description><![CDATA[This app distinguishes itself in it&#8217;s ease of use by instantly calculating rates without having to press extraneous buttons. When negotiating a loan, this can be useful on both sides of the table by allowing the users to convert from APR to Effective rate and back seamlessly and effortlessly. What The EFF is a simple [...]]]></description>
				<content:encoded><![CDATA[<blockquote><p>This app distinguishes itself in it&#8217;s ease of use by instantly calculating rates without having to press extraneous buttons. When negotiating a loan, this can be useful on both sides of the table by allowing the users to convert from APR to Effective rate and back seamlessly and effortlessly.</p></blockquote>
<p><a title="What The EFF" href="http://petesaia.com/work/whattheeff/" target="_blank">What The EFF</a> is a simple JavaScript &amp; HTML5 powered converter. This is not the <a href="http://www.google.com/search?sourceid=chrome&amp;ie=UTF-8&amp;q=apr+eff+converter#sclient=psy&amp;hl=en&amp;source=hp&amp;q=apr+eff+converter&amp;pbx=1&amp;oq=apr+eff+converter&amp;aq=f&amp;aqi=&amp;aql=&amp;gs_sm=e&amp;gs_upl=5377l5721l1l8155l3l3l2l0l0l0l191l191l0.1l1l0&amp;bav=on.2,or.r_gc.r_pw.r_cp.&amp;fp=7e974ee4e8ae23f3&amp;biw=1008&amp;bih=658" target="_blank">first</a> APR/EFF converter, but it&#8217;s definitely the most intuitive. The app makes use of <a title="Manifest Files" href="http://diveintohtml5.org/offline.html" target="_blank">HTML5 caching</a> (you can use it offline), <a title="Tests" href="http://petesaia.com/work/whattheeff/testing/" target="_blank">Jasmine</a> testing suite and <a title="Shifty JS" href="https://github.com/jeremyckahn/shifty" target="_blank">Shifty</a>. I developed this app specifically for Webkit browser; Chrome &amp; Safari.</p>
<p>Check it out <a title="What The EFF" href="http://petesaia.com/work/whattheeff/" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://petesaia.com/2011/09/eff-apr-calculator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook Sharing Using Open Graph</title>
		<link>http://petesaia.com/2011/07/facebook-sharing-open-graph/</link>
		<comments>http://petesaia.com/2011/07/facebook-sharing-open-graph/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 17:17:27 +0000</pubDate>
		<dc:creator>petesaia</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[sharer.php]]></category>
		<category><![CDATA[social networking]]></category>

		<guid isPermaLink="false">http://petesaia.com/?p=33</guid>
		<description><![CDATA[People like having a convenient Facebook share link on their website. Facebook allows you to do this by passing a few arguments to their sharer.php script. Like so: The u argument is the url that you are sharing. The t argument should be the descriptive text that goes along with the post. However this is [...]]]></description>
				<content:encoded><![CDATA[<p>People like having a convenient Facebook share link on their website. Facebook allows you to do this by passing a few arguments to their sharer.php script. Like so:</p>
<pre class="brush: xml; title: ; notranslate">&lt;a href=&quot;https://www.facebook.com/sharer/sharer.php?u=http://example.com/stuff/11/2200&amp;t=Some text about the shared item.&quot;&gt;Share!&lt;/a&gt;</pre>
<ol>
<li>The <b>u</b> argument is the url that you are sharing.</li>
<li>The <b>t</b> argument should be the descriptive text that goes along with the post. However this is deprecated and no longer works. Awesome, thanks Facebook.</li>
</ol>
<p>Facebook now uses the new <a href="https://developers.facebook.com/docs/opengraph/">Open Graph mata tags</a> to read in the information about the page. This is good because it allows you to be specific about what gets shared and how it&#8217;s displayed. Although, you can not share items differently that reside on the same page. This is more common with JavaScript driven sites that make use of lightboxes and auto-scrollers. These type of sites use the hash tag to distinguish sections but all share the same meta tags, which means each page will be shared the exact same. To get around this I created a share page that is simply for sharing.<br />
<span id="more-33"></span><br />
Take a look at the following file:<br />
<script src="https://gist.github.com/2008325.js?file=fb-share.php"></script></p>
<p>We will now serve this file to Facebook. Now your share button URL would be the following.</p>
<p><em>https://www.facebook.com/sharer/sharer.php?u=<strong>http://YOUR-SITE.com/fb-share.php?url=http://example.com/stuff|section2&#038;image=path/to/image.jpg&#038;title=the title&#038;description=some descriptive text&#038;ect&#8230;</strong></em></p>
<p>Now Facebook will receive the correct meta tags and when the user actually visits the link they will be re-directed to the correct url because of the JavaScript in the body. You will also notice the bit of ugly PHP in the header that changes | into a hash tag. <b>You must share the hash tags as a pipe symbol because they get stripped out of the get requests.</b></p>
<p>Share freely.</p>
]]></content:encoded>
			<wfw:commentRss>http://petesaia.com/2011/07/facebook-sharing-open-graph/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to Rye</title>
		<link>http://petesaia.com/2011/07/introduction-to-rye/</link>
		<comments>http://petesaia.com/2011/07/introduction-to-rye/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 02:06:14 +0000</pubDate>
		<dc:creator>petesaia</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://petesaia.com/?p=7</guid>
		<description><![CDATA[Rye is a professional and bone dry WordPress starter theme that I have been working on. Assuming you are quite familiar with the almighty Loop, it is not included. Along with all of the other mumbojumbo you either end up stripping out or let take up lines in your code. With the default WordPress themes [...]]]></description>
				<content:encoded><![CDATA[<p>Rye is a professional and bone dry <a href="http://wordpress.org/">WordPress</a> starter theme that I have been working on. Assuming you are quite familiar with the almighty <a href="http://codex.wordpress.org/The_Loop">Loop</a>, it is not included. Along with all of the other mumbojumbo you either end up stripping out or let take up lines in your code. With the default WordPress themes I find much of my time is used removing unwanted code, deleting files and re-writing code from previous sites. Rye aims to correct these issues by giving a solid site foundation with out a <a href="http://2010dev.wordpress.com/">specific theme</a> in mind. The heart of Rye is the beautiful <a href="https://github.com/petesaia/WP-Rye/blob/master/rye/functions.php">functions.php</a> file.</p>
<p>Check it out on <a href="https://github.com/petesaia/WP-Rye">GitHub</a> or <a href="https://github.com/petesaia/WP-Rye/zipball/master">Download it</a></p>
]]></content:encoded>
			<wfw:commentRss>http://petesaia.com/2011/07/introduction-to-rye/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
