<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-33247377</id><updated>2024-09-10T09:24:04.722-07:00</updated><category term="iphone"/><category term="classic asp"/><category term="engineering"/><category term="oauth"/><category term="phonegap"/><category term="windows"/><category term="errors"/><category term="google app engine"/><category term="iis"/><category term="javascript"/><category term="jqtouch"/><category term="jquery"/><category term="programming"/><category term="python"/><category term="twitter"/><category term="vbscript"/><category term="web apps"/><category term="amazon api"/><category term="apple"/><category term="contrast"/><category term="fiddler"/><category term="gmail"/><category term="iad"/><category term="internet explorer"/><category term="mac"/><category term="movie maker"/><category term="performance"/><category term="php"/><category term="pil"/><category term="refactoring"/><category term="ssl"/><category term="system tray"/><category term="tips"/><category term="volume"/><category term="window explorer"/><category term="xp"/><category term="yui 2"/><category term="yui 3"/><category term="zend server"/><title type='text'>Scott J. DeSapio (Engineering)</title><subtitle type='html'>Notes-to-self and other scattered ramblings about writing code and drinking lots of coffee.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default?start-index=26&amp;max-results=25'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>39</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-33247377.post-6963344657129138374</id><published>2018-02-22T07:05:00.003-08:00</published><updated>2018-02-22T08:04:17.470-08:00</updated><title type='text'>Use WiFi for Internet and Ethernet for Local File Transfer on MAC</title><content type='html'>On all machines that will use this configuration...&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Open &quot;System Preferences.&quot;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Click on &quot;Network.&quot;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Click on the Gear icon in the lower left and select &quot;Set Service Order.&quot;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Set Wi-Fi to first position and Ethernet to second.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;b&gt;NOTE ABOUT NETWORK SETUP&lt;/b&gt;: Separate the two networks by setting the wireless router to use a different subnet mask (e.g. 255.255.0.0) while also setting the DHCP range of addresses to assign from a different pool (e.g. 192.168.0.100).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;NOTE ABOUT SHAREMOUSE&lt;/b&gt;: Make sure to set Sharemouse to use the LAN addresses as using WiFi will result in serious lag making it impossible to use. To do this, open Sharemouse settings, click on &quot;Clients&quot; and make sure only the IP addresses from the LAN are in the client list. Also, make sure to setup static IP addresses for your Ethernet connection so you define clients explicitly in settings.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/6963344657129138374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2018/02/use-wifi-for-internet-and-ethernet-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/6963344657129138374'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/6963344657129138374'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2018/02/use-wifi-for-internet-and-ethernet-for.html' title='Use WiFi for Internet and Ethernet for Local File Transfer on MAC'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-2801792884867130335</id><published>2017-02-07T06:03:00.002-08:00</published><updated>2017-02-07T06:07:11.307-08:00</updated><title type='text'>Sublime Text Dark Theme in Sidebar Not Working</title><content type='html'>&lt;div&gt;
To ensure your theme is applied to all Sublime panels...&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to Sublime Text -&amp;gt; Preferences -&amp;gt; Settings -&amp;gt; &quot;Preferences.sublime-settings - User&quot;&lt;/li&gt;
&lt;li&gt;Make sure the &quot;color_scheme&quot; property and &quot;theme&quot; property are both present with the appropriate values set.&lt;br /&gt;&lt;br /&gt;For instance, using the &lt;a href=&quot;https://github.com/equinusocio/material-theme&quot;&gt;Material Theme&lt;/a&gt;:&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;&lt;code&gt;&quot;color_scheme&quot;: &quot;Packages/Material Theme/schemes/Material-Theme-Darker.tmTheme&quot;,
&quot;theme&quot;: &quot;Material-Theme-Darker.sublime-theme&quot;,&lt;/code&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/2801792884867130335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2017/02/sublime-text-dark-theme-in-sidebar-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/2801792884867130335'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/2801792884867130335'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2017/02/sublime-text-dark-theme-in-sidebar-not.html' title='Sublime Text Dark Theme in Sidebar Not Working'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-4382990374695875414</id><published>2017-01-29T08:34:00.001-08:00</published><updated>2017-02-02T11:28:11.239-08:00</updated><title type='text'>How to Restart Web Server After Google App Engine Launcher Crash </title><content type='html'>&lt;ol&gt;
&lt;li&gt;Open a terminal window.&lt;/li&gt;
&lt;li&gt;Copy and paste this: &lt;code&gt;sudo lsof -i -n -P | grep TCP&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Take&amp;nbsp;note of the process id (PID) currently listening on the port your app was running on (look for something that looks like:&amp;nbsp;&lt;code&gt;TCP 127.0.0.1:8080 (LISTEN)&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Open &lt;b&gt;Activity Monitor&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Sort the processes list by PID.&lt;/li&gt;
&lt;li&gt;Kill the process matching the PID you noted in step 3.&lt;/li&gt;
&lt;li&gt;Restart your server from &lt;b&gt;Google App Engine Launcher&lt;/b&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Thanks to irs8925 for providing the answer on &lt;a href=&quot;http://stackoverflow.com/a/37612873/2037540&quot;&gt;Stack Overflow&lt;/a&gt;.&lt;/div&gt;
&lt;br /&gt;
&lt;style type=&quot;text/css&quot;&gt;
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff}
span.s1 {font-variant-ligatures: no-common-ligatures}
&lt;/style&gt;


</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/4382990374695875414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2017/01/how-to-restart-web-server-after-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/4382990374695875414'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/4382990374695875414'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2017/01/how-to-restart-web-server-after-google.html' title='How to Restart Web Server After Google App Engine Launcher Crash '/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-7864966732626641799</id><published>2014-03-08T09:59:00.000-08:00</published><updated>2014-03-08T09:59:04.324-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="phonegap"/><title type='text'>Installing Phonegap plugins</title><content type='html'>Putting this example of installing Phonegap plugins here for myself as reference...&lt;br /&gt;
&lt;br /&gt;
Example using Plugman (for Native workflow; entered from anywhere):&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;plugman install --platform ios --project ./Phonegap/ios/beepwatch2/platforms/ios --plugin org.apache.cordova.splashscreen
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
Example using Cordova (for Global workflow; entered from project folder):&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;cordova plugin add org.apache.cordova.inappbrowser
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/7864966732626641799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2014/03/installing-phonegap-plugins.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/7864966732626641799'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/7864966732626641799'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2014/03/installing-phonegap-plugins.html' title='Installing Phonegap plugins'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-1215447628913217016</id><published>2013-08-24T08:36:00.002-07:00</published><updated>2013-08-24T08:36:55.825-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="phonegap"/><title type='text'>Force Phoegap app to maintain focus and not go into background</title><content type='html'>This one actually took me a second to research and find the answer to. I was putting together a beeping stopwatch app for myself and wanted the app to &lt;b&gt;remain in the foreground&lt;/b&gt; but, after about 60 seconds, the app kept going into the background. 
&lt;br /&gt;
&lt;br /&gt;
Finally, I stumbled on a &lt;a href=&quot;http://stackoverflow.com/questions/10661015/since-ios-does-not-allow-you-to-run-js-in-the-background-is-it-possible-to-keep&quot;&gt;stackoverflow conversation&lt;/a&gt;. Without further ado...
&lt;br /&gt;
&lt;br /&gt;
Add the following line to your &lt;b&gt;didFinishLaunchingWithOptions&lt;/b&gt; in &lt;b&gt;AppDelegate&lt;/b&gt;:

&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;[UIApplication sharedApplication].idleTimerDisabled = YES;
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/1215447628913217016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2013/08/force-phoegap-app-to-maintain-focus-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/1215447628913217016'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/1215447628913217016'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2013/08/force-phoegap-app-to-maintain-focus-and.html' title='Force Phoegap app to maintain focus and not go into background'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-354318208426577053</id><published>2013-02-06T11:59:00.001-08:00</published><updated>2013-04-17T06:42:50.232-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iad"/><category scheme="http://www.blogger.com/atom/ns#" term="iphone"/><category scheme="http://www.blogger.com/atom/ns#" term="phonegap"/><title type='text'>Add iAd to PhoneGap Application</title><content type='html'>&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;This post derives from the SiteKickr Blog post &quot;&lt;a href=&quot;http://www.sitekickr.com/blog/phonegap-cordova-iad-integration/&quot;&gt;PhoneGap/Cordova and iAd integration&lt;/a&gt;.&quot; I got stuck in a couple of spots and decided to attempt to lend a little clarity for anyone else seeking a solution. I&#39;ve also taken a couple of the comments from that post and integrated here.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;1. Click on the &quot;Project Navigator&quot; icon in the left most panel in XCode.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR8gVfrQeSMQ8lHLG05uhvqI3w_f3vBQGGOnr3AEZg2is9zEvoFzAqHNEQRKzGlYQUeFu4fqpd3oBfGMTGEl9zZgvcZn0CJT1HE-NBaipvOo92BA4zVDCunKL4iKGGSsQQzQYHRw/s1600/iAdStep1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;315&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR8gVfrQeSMQ8lHLG05uhvqI3w_f3vBQGGOnr3AEZg2is9zEvoFzAqHNEQRKzGlYQUeFu4fqpd3oBfGMTGEl9zZgvcZn0CJT1HE-NBaipvOo92BA4zVDCunKL4iKGGSsQQzQYHRw/s1600/iAdStep1.jpg&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;2. Click on the top-most item in your hierarchy.&amp;nbsp;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2P1fmYh65c3o5AolacZTl-q6b1f7e8bIBcjwBtHVel1OYUoyJS0MaI9k-7tE3BbYBIX_iS28qBmkKDCckFhGHLzcIxRt6L_tNMl9AtvhFC-mXoCugd-2sx7w1Zn01cCeMfxoLog/s1600/iAdStep2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;315&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2P1fmYh65c3o5AolacZTl-q6b1f7e8bIBcjwBtHVel1OYUoyJS0MaI9k-7tE3BbYBIX_iS28qBmkKDCckFhGHLzcIxRt6L_tNMl9AtvhFC-mXoCugd-2sx7w1Zn01cCeMfxoLog/s1600/iAdStep2.jpg&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;3. Click on the Build Phases tab.&amp;nbsp;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkK_m2C7AYq3Ot5eS9oJTFFd9M536-sdwhvtku3nPGq2GCxkVqwnywjbnFqlf1xero_ioTMWzpqjYojDWXu34yUwro8N_wF763LyXReWgvrXXD6eK5zpLoYB70-hmjFpmHcrCLAQ/s1600/iAdStep3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;315&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkK_m2C7AYq3Ot5eS9oJTFFd9M536-sdwhvtku3nPGq2GCxkVqwnywjbnFqlf1xero_ioTMWzpqjYojDWXu34yUwro8N_wF763LyXReWgvrXXD6eK5zpLoYB70-hmjFpmHcrCLAQ/s1600/iAdStep3.jpg&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;4. Expand &quot;Link Binary with Libraries.&quot;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR9PckMdVni1oqqKnr_NnaagtQ2zrJO9P91IzB-ygeXeUInqwtHkaqGrDjM1XlBsvuE-nQW_9X8SpjAhTvXaepS2ba3GsPSaE2pxrTopsrOZ3W6ahJvVZONQ72TTLfTvZEIIwF9w/s1600/iAdStep4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;315&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR9PckMdVni1oqqKnr_NnaagtQ2zrJO9P91IzB-ygeXeUInqwtHkaqGrDjM1XlBsvuE-nQW_9X8SpjAhTvXaepS2ba3GsPSaE2pxrTopsrOZ3W6ahJvVZONQ72TTLfTvZEIIwF9w/s1600/iAdStep4.jpg&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;5. Click the + icon to add the iAd.framework to your project.&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI24tlqg3QiyI5RUxx_tBqmToIZWWthHK5dc8yuUgiT899vRSrsMrv_E-MW7zcyZTP5n3nc0jkf86LWi3iVflxaCHE0BgctPFe7CRr2U9Z3vb3ft8nIKKSGyIwi-9SziAnXYEpIw/s1600/iAdStep5.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;315&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI24tlqg3QiyI5RUxx_tBqmToIZWWthHK5dc8yuUgiT899vRSrsMrv_E-MW7zcyZTP5n3nc0jkf86LWi3iVflxaCHE0BgctPFe7CRr2U9Z3vb3ft8nIKKSGyIwi-9SziAnXYEpIw/s1600/iAdStep5.jpg&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;6. In your App -&amp;gt; Classes folder, open up MainViewController.h, and drop in the following code after any existing #import statements but before @end: &lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwtfWA7mZbSSCOwhUuCb8T2OoAsNhrdT4XqeG0OvGr5n-XnLDmHHZ5DmHol2Rk97ZGxstzFMeIa01j6JintXNkfCWAqHhiWD5jkJ9_AeyqeLU6VmO3xQcdGZJep7TZXOd-YVlkWg/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; #import &amp;lt;iAd/iAd.h&amp;gt;
 @interface MainViewController : CDVViewController {  
   ADBannerView *adView;  
 }   
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4_MHqicxZDOlIGCtXogJqud061qnKGtJ4URe_QDc30ZEyx14QJ0oIKA1OQp_YunsKzxgfSKUhyphenhyphenPOluS_IbvZDnMU-QtSAQVQfaYg2_BWTmuRBC2sENWfEPxB5-cnxDJqhNog1yg/s1600/iAdStep6.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;315&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4_MHqicxZDOlIGCtXogJqud061qnKGtJ4URe_QDc30ZEyx14QJ0oIKA1OQp_YunsKzxgfSKUhyphenhyphenPOluS_IbvZDnMU-QtSAQVQfaYg2_BWTmuRBC2sENWfEPxB5-cnxDJqhNog1yg/s1600/iAdStep6.jpg&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjENiDsvzffmGPyZCxxJG6Tn5_kEkoipJwTFrMwJl6rtwTTqLBmEU-Czxc1w1dOE4_2T8yiUPw4LE71fTgwUt4frRrNxJPzuWeo7ojJWkclj_FMiY56nFd7hXJI3VkFhduvOTxEYw/s1600/iAdStep7.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;315&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjENiDsvzffmGPyZCxxJG6Tn5_kEkoipJwTFrMwJl6rtwTTqLBmEU-Czxc1w1dOE4_2T8yiUPw4LE71fTgwUt4frRrNxJPzuWeo7ojJWkclj_FMiY56nFd7hXJI3VkFhduvOTxEYw/s1600/iAdStep7.jpg&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;7. Open up MainViewController.m&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSdupfehQQSz3jgmT3i6N-kgGnDYs7OgsqQBcGjFWBCWcfvdjZvgzwUQTnVHdituDeTwyyVVXRBj3ASiSSb6PDxXJxOGUZOeR5aLEHVsXqQthxUahxFf9w_9YnedbT8GUZPdIMZw/s1600/iAdStep8.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;315&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSdupfehQQSz3jgmT3i6N-kgGnDYs7OgsqQBcGjFWBCWcfvdjZvgzwUQTnVHdituDeTwyyVVXRBj3ASiSSb6PDxXJxOGUZOeR5aLEHVsXqQthxUahxFf9w_9YnedbT8GUZPdIMZw/s1600/iAdStep8.jpg&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;8. In your viewDidUnload method, which should already exist, add:&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwtfWA7mZbSSCOwhUuCb8T2OoAsNhrdT4XqeG0OvGr5n-XnLDmHHZ5DmHol2Rk97ZGxstzFMeIa01j6JintXNkfCWAqHhiWD5jkJ9_AeyqeLU6VmO3xQcdGZJep7TZXOd-YVlkWg/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; [adView release];   
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1JYX6oWXpWx3xwMwQ5Vrqo-d3kB5_xYGT-e7-jXDFqpQz08ryz1y1go45g7MG9jwklpZoNko-YtQ4teBaz9IRvOonA2l5MN51eyhDdOKP7ewx1W5u0Hq9SLgfi0ZtxdHIbTRk0w/s1600/iAdStep10.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;315&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1JYX6oWXpWx3xwMwQ5Vrqo-d3kB5_xYGT-e7-jXDFqpQz08ryz1y1go45g7MG9jwklpZoNko-YtQ4teBaz9IRvOonA2l5MN51eyhDdOKP7ewx1W5u0Hq9SLgfi0ZtxdHIbTRk0w/s1600/iAdStep10.jpg&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;9. In your webViewDidFinishLoad method, add the following just before:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;s1&quot;&gt;&quot;return&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; [&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;webViewDidFinishLoad&lt;span class=&quot;s2&quot;&gt;:theWebView];&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwtfWA7mZbSSCOwhUuCb8T2OoAsNhrdT4XqeG0OvGr5n-XnLDmHHZ5DmHol2Rk97ZGxstzFMeIa01j6JintXNkfCWAqHhiWD5jkJ9_AeyqeLU6VmO3xQcdGZJep7TZXOd-YVlkWg/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;   adView = [[ADBannerView alloc] initWithFrame:CGRectZero];  
   CGRect adFrame = adView.frame;  
   if([UIApplication sharedApplication].statusBarOrientation  
     == UIInterfaceOrientationPortrait  
     || [UIApplication sharedApplication].statusBarOrientation  
     == UIInterfaceOrientationPortraitUpsideDown) {  
     adView.currentContentSizeIdentifier =  
       ADBannerContentSizeIdentifierPortrait;  
     adFrame.origin.y = self.view.frame.size.height-adView.frame.size.height;  
   } else {  
     adView.currentContentSizeIdentifier =  
       ADBannerContentSizeIdentifierLandscape;  
     adFrame.size.width = adView.frame.size.width;  
     adFrame.origin.y = self.view.frame.size.width-adView.frame.size.height;  
   }  
   adView.frame = adFrame;  
   [self.view addSubview:adView];  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;10. If you don&#39;t already have a willAnimateRotationToInterfaceOrientation method, add it, and drop in the following code:&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;   BOOL hide = (newInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || newInterfaceOrientation == UIInterfaceOrientationLandscapeRight);  
   [[UIApplication sharedApplication] setStatusBarHidden:hide withAnimation:UIStatusBarAnimationNone];  
   CGRect mainFrame = [[UIScreen mainScreen] applicationFrame];  
   [self.view setFrame:mainFrame];  
   if (newInterfaceOrientation != UIInterfaceOrientationLandscapeLeft &amp;amp;&amp;amp; newInterfaceOrientation != UIInterfaceOrientationLandscapeRight) {  
     adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;  
     [self.view bringSubviewToFront:adView];  
     adView.frame = CGRectMake(0.0, self.view.frame.size.height - adView.frame.size.height, adView.frame.size.width, adView.frame.size.height);  
   }  
   else {  
     adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;  
     [self.view bringSubviewToFront:adView];  
     adView.frame = CGRectMake(0.0, self.view.frame.size.width - adView.frame.size.height, adView.frame.size.width, adView.frame.size.height);  
   }  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: large;&quot;&gt;&lt;b&gt;A couple of points of note regarding ad placement:
&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;- iAd is not like Adwords or Admob. Ad placement is not done in your HTML and does not use your javascript or CSS.
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;- By default, the ad will be placed on the bottom of your app&#39;s UI. To change the position of the ad, you&#39;ll need to edit all instances of the value of adFrame.origin.y to equal 0 (&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;i&gt;adFrame.origin.y=0&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;- After you&#39;re done and ready to deploy, you&#39;ll need to enable iAd in your application through iConnect. Keep in mind you can only do this AFTER you upload your app.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Log in to &lt;/span&gt;&lt;a href=&quot;https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;iTunes Connect&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Click on &quot;Manage Your Applications&quot;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Click on the App you want to enable iAd on.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Click on the blue &quot;Set Up iAd Network&quot; button.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Follow the instructions.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;That&#39;s it! Good luck.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;UPDATE 03.06.2013:&lt;/b&gt; Check out this great response at StackOverflow regarding not showing the ad placeholder if an ad is not delivered:&amp;nbsp;&lt;a href=&quot;http://stackoverflow.com/a/14764349/2037540&quot;&gt;http://stackoverflow.com/a/14764349/2037540&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;UPDATE 04.17.2013:&lt;/b&gt; Brandon Hawkins has come up with a great solution to deal with the issue of the ad frame setting on top of the webview. Check it out here: &lt;a href=&quot;http://hawkinbj.wordpress.com/2013/04/16/implement-iad-banner-ads-without-covering-uiwebview-in-phonegap/&quot;&gt;http://hawkinbj.wordpress.com/2013/04/16/implement-iad-banner-ads-without-covering-uiwebview-in-phonegap/&lt;/a&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/354318208426577053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2013/02/add-iad-to-phonegap-application.html#comment-form' title='28 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/354318208426577053'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/354318208426577053'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2013/02/add-iad-to-phonegap-application.html' title='Add iAd to PhoneGap Application'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR8gVfrQeSMQ8lHLG05uhvqI3w_f3vBQGGOnr3AEZg2is9zEvoFzAqHNEQRKzGlYQUeFu4fqpd3oBfGMTGEl9zZgvcZn0CJT1HE-NBaipvOo92BA4zVDCunKL4iKGGSsQQzQYHRw/s72-c/iAdStep1.jpg" height="72" width="72"/><thr:total>28</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-7772074744607944393</id><published>2012-11-27T14:28:00.001-08:00</published><updated>2013-01-16T07:25:58.159-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="pil"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>Installing PIL on a Mac</title><content type='html'>&lt;div&gt;
After much torment, and many failures, PIL is now installed. And, it is embarrassing just how simple it ended up being. I&#39;m leaving this here so when I move to my next dev box, I don&#39;t spend three days figuring out again.&lt;br /&gt;
&lt;br /&gt;
At the time of this writing, I was running OSX 10.8.2 but I&#39;m sure this will work on earlier versions and probably subsequent versions for some time.&lt;br /&gt;
&lt;br /&gt;
1. Open Terminal&lt;br /&gt;
2. Type: sudo easy_install pip&lt;/div&gt;
&lt;div&gt;
3. Type: sudo pip install PIL&lt;br /&gt;
&lt;br /&gt;
&lt;span id=&quot;goog_1213219195&quot;&gt;&lt;/span&gt;Thanks to klobucar&amp;nbsp;at StackOverflow for his &lt;a href=&quot;http://stackoverflow.com/a/9781752&quot;&gt;answer regarding installing PIP&lt;/a&gt;&lt;span id=&quot;goog_1213219196&quot;&gt;&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/7772074744607944393'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/7772074744607944393'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2012/11/installing-pil-on-mac.html' title='Installing PIL on a Mac'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-2044848404062956140</id><published>2012-11-03T08:19:00.002-07:00</published><updated>2013-01-27T08:31:37.768-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="classic asp"/><category scheme="http://www.blogger.com/atom/ns#" term="engineering"/><category scheme="http://www.blogger.com/atom/ns#" term="oauth"/><title type='text'>Updates Posted to the Classic ASP VBScript OAuth Library</title><content type='html'>There&#39;s been a bit of drama over at the Classic ASP VBScript OAuth board regarding twitter&#39;s recent API URL changes. &amp;nbsp;All is well now as the project has been updated and a new example project zip uploaded.&lt;br /&gt;
&lt;br /&gt;
Essentially, it boils down to some Constant URL changes in one of the files. You can read more about it and download the latest version at the&amp;nbsp;&lt;a href=&quot;http://scottdesapio.com/VBScriptOAuth/&quot;&gt;Classic ASP VBScript OAuth&lt;/a&gt; site.</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/2044848404062956140'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/2044848404062956140'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2012/11/updates-posted-to-classis-asp-vbscript.html' title='Updates Posted to the Classic ASP VBScript OAuth Library'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-3403908867434587605</id><published>2012-04-10T11:55:00.003-07:00</published><updated>2013-01-16T07:25:58.140-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="engineering"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>Delete all pyc files</title><content type='html'>Scenario: You&#39;ve just pushed a slew of compiled python files&amp;nbsp; &lt;br /&gt;
Solution:&lt;br /&gt;
1. Terminal into your project directory &lt;br /&gt;
2. Enter: &lt;code&gt;&#39;find . -type f -name &quot;*.pyc&quot; -delete;&#39;&lt;/code&gt; (without the quotes)&lt;br /&gt;
3. Add a .gitignore file to the root of your project with &lt;code&gt;&#39;*.pyc&#39;&lt;/code&gt; as its content&lt;br /&gt;
4. Re-push the project</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/3403908867434587605'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/3403908867434587605'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2012/04/delete-all-pyc-files.html' title='Delete all pyc files'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-7666260193978615032</id><published>2011-09-22T20:53:00.000-07:00</published><updated>2015-05-28T12:20:30.421-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google app engine"/><title type='text'>Google App Engine Localhost from Parallels</title><content type='html'>&lt;br /&gt;
This post is for developers using a MAC, developing on the Google App Engine platform, attempting to connect to their development environment from Windows on Parallels to test browser compatibility.
&lt;br /&gt;
&lt;br /&gt;
NOTE: This post was updated on March 25th, 2013 to accommodate changes made to the &lt;a href=&quot;https://developers.google.com/appengine/docs/python/tools/devserver&quot;&gt;GAE Python Development Server&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
Again, you are:&lt;br /&gt;
1. Developing on a MAC.&lt;br /&gt;
2. Atop of Google App Engine&lt;br /&gt;
3. Using Parallels for browser testing&lt;br /&gt;
&lt;br /&gt;
Setup:&lt;br /&gt;
1. On your MAC, open Google App Engine&#39;s Launcher application&lt;br /&gt;
2. Double click on the project you&#39;re attempting to connect to&lt;br /&gt;
3. In the &quot;Extra Flags&quot; field, enter &quot;--host=0.0.0.0&quot; (without the quotes) and hit the &quot;Update&quot; button.&lt;br /&gt;
4. Make sure the Windows firewall is OFF in your Parallels Windows instance.&lt;br /&gt;
&lt;br /&gt;
That&#39;s it, open a browser in your Parallels Windows instance and hit the local network IP address of your MAC using the port delegation from Google App Engine launcher. For instance, if your MAC&#39;s IP address is 192.168.0.2, and your project&#39;s Google App Engine port is 8101, the address you put in your Parallels browser may be http://192.168.0.2:8101.&lt;br /&gt;
&lt;br /&gt;
Voila.</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/7666260193978615032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2011/09/google-app-engine-localhost-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/7666260193978615032'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/7666260193978615032'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2011/09/google-app-engine-localhost-from.html' title='Google App Engine Localhost from Parallels'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-6100676642195888160</id><published>2011-08-23T23:58:00.000-07:00</published><updated>2013-01-16T07:26:19.362-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gmail"/><category scheme="http://www.blogger.com/atom/ns#" term="iphone"/><title type='text'>Unsync/Remove Gmail Contacts from iPhone</title><content type='html'>Somehow you managed to get every single person you&#39;ve ever emailed jammed into your iPhone right?&lt;br /&gt;
&lt;br /&gt;
This solution assumes you have a Mac &amp; an iPhone:&lt;br /&gt;
1. On your Mac, open &quot;address book&quot;&lt;br /&gt;
2. Click on File -&gt; New Smart Group...&lt;br /&gt;
3. In Smart Group Name, type &quot;iPhone Tmp&quot;&lt;br /&gt;
4. In the first drop-down menu, select &quot;Phone&quot;&lt;br /&gt;
5. In the second drop-down menu, select &quot;is set&quot;&lt;br /&gt;
6. Click &quot;OK&quot;&lt;br /&gt;
7. Click File -&gt; New Group&lt;br /&gt;
8. Name the group &quot;iPhone Contacts&quot;&lt;br /&gt;
9. Click on the &quot;iPhone Tmp&quot; group and drag all of the contacts from that group into &quot;iPhone Contacts&quot;&lt;br /&gt;
10. Plug your iPhone into your Mac and open iTunes.&lt;br /&gt;
11. Click on your phone listed in &quot;Devices&quot;&lt;br /&gt;
12. Click on the &quot;Info&quot; tab/button.&lt;br /&gt;
13. Check the &quot;Sync Address Book Contacts&quot; checkbox.&lt;br /&gt;
14. Check &quot;Selected groups&quot;&lt;br /&gt;
15. Check &quot;iPhone Contacts&quot;&lt;br /&gt;
16. Make sure nothing else on the page is checked.&lt;br /&gt;
17. Sync.&lt;br /&gt;
18. Be happy.&lt;br /&gt;
  </content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/6100676642195888160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2011/08/unsyncremove-gmail-contacts-from-iphone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/6100676642195888160'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/6100676642195888160'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2011/08/unsyncremove-gmail-contacts-from-iphone.html' title='Unsync/Remove Gmail Contacts from iPhone'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-388733861379064463</id><published>2011-02-07T08:26:00.000-08:00</published><updated>2013-01-16T07:25:58.143-08:00</updated><title type='text'>Atlas Shrugged Movie</title><content type='html'>Went Galt. The &lt;a href=&quot;http://www.atlasshruggedpart1.com/&quot;&gt;Atlas Shrugged Movie&lt;/a&gt; called. I&#39;m back.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/388733861379064463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2011/02/atlas-shrugged-movie.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/388733861379064463'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/388733861379064463'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2011/02/atlas-shrugged-movie.html' title='Atlas Shrugged Movie'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-8154439054189988748</id><published>2010-07-10T06:42:00.000-07:00</published><updated>2013-01-16T07:25:58.161-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google app engine"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>Another transaction by user ... is already in progress for this app and major version.</title><content type='html'>Gotta love it when your app deployment tells you there was on error on your last attempt to deploy... 24 hours ago. WHAT!? Thanks for the heads up Google.&lt;br /&gt;&lt;br /&gt;Recently got hit with &quot;&lt;span style=&quot;font-weight: bold;&quot;&gt;Another transaction by user ... is already in progress for this app and major version.&lt;/span&gt;&quot; during what I thought was going to be a quick update.&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href=&quot;http://stackoverflow.com/users/111754/john-ballinger&quot;&gt;John Ballinger&lt;/a&gt; for posting instructions.&lt;br /&gt;&lt;br /&gt;1. Start -&gt; Run -&gt; cmd&lt;br /&gt;2. &lt;code&gt;cd&lt;/code&gt; into your application directory. For me, this is cd /Sites/appengine_myapp&lt;br /&gt;3. &lt;code&gt;appcfg.py --no_cookies --email=YOUR_EMAIL_HERE@gmail.com --passin rollback ./&lt;/code&gt;&lt;br /&gt;4. You should be prompted for your password.&lt;br /&gt;&lt;br /&gt;Nice.</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/8154439054189988748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2010/07/another-transaction-by-user-is-already.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/8154439054189988748'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/8154439054189988748'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2010/07/another-transaction-by-user-is-already.html' title='Another transaction by user ... is already in progress for this app and major version.'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-5485042563091232829</id><published>2010-06-23T06:56:00.000-07:00</published><updated>2013-01-16T07:25:58.148-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="performance"/><title type='text'>Web SIte Performance: Optimal Page Structure Vs. Reality</title><content type='html'>Recently, I had the opportunity to talk about &lt;a href=&quot;http://stevesouders.com/&quot;&gt;Steve Souders&lt;/a&gt;&#39; web site performance work with some old friends. While attempting to hammer home the importance of the Souders&#39; performance techniques, I failed to mention one VERY IMPORTANT thing...&lt;br /&gt;&lt;br /&gt;It&#39;s &lt;span style=&quot;font-style:italic;&quot;&gt;NOT&lt;/span&gt; an all or nothing proposition. &lt;br /&gt;&lt;br /&gt;Along with the ideal, there are two VERY important points that need to be conveyed:&lt;br /&gt;&lt;br /&gt;1. Not ALL of the techniques need to be deployed at the same time in order to have an impact. Implementing just a few can have a dramatic effect. The more the merrier BUT, all or nothing is DEFINITELY NOT the goal.&lt;br /&gt;&lt;br /&gt;2. The techniques are not biblical in stature. There are times when the ideal is simply incongruent with the required solution. For instance, the recipe for optimum performance and IDEAL page structure is:&lt;br /&gt;&lt;br /&gt;&lt;ul style=&quot;margin:0px 0px 0px 30px;padding:0px;&quot;&gt;&lt;br /&gt;&lt;li style=&quot;margin:0px;padding:0px;&quot;&gt;1 static HTML file&lt;/li&gt;&lt;br /&gt;&lt;li style=&quot;margin:0px;padding:0px;&quot;&gt;1 css resource&lt;/li&gt;&lt;br /&gt;&lt;li style=&quot;margin:0px;padding:0px;&quot;&gt;1 image resource&lt;/li&gt;&lt;br /&gt;&lt;li style=&quot;margin:0px;padding:0px;&quot;&gt;1 js resource&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Ideal Page Structure:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;html&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;head&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- 1 css resource --&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;[EXTERNAL_PATH]&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/head&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;body&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div id=&quot;container&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- begin content --&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- 1 image resource (to be used as sprite) --&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;img src=&quot;[EXTERNAL_PATH]&quot;&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- end content --&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- 1 js resource --&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;script src=&quot;[EXTERNAL_PATH]&quot;&gt;&amp;lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- embedded js if required --&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;script language=&quot;javascript&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;your.thing = new your.constructor({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name1: value1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name1: value2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;HOWEVER, while this may be the ideal, sometimes, you simply can&#39;t get down to a single resource request because of solution requirements. Case in point -  if you need to add Google Analytics to your page, you&#39;re NOT going to hit the ideal - you&#39;re going to have more than 1 js resource.&lt;br /&gt;&lt;br /&gt;So, in closing, the idea should always be to strive for the ideal and get as close as possible. Very simply put, taking 10 js requests down to 8 is a GREAT start. Don&#39;t skip it because you can&#39;t get 10 down to 1.</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/5485042563091232829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2010/06/web-site-performance-optimal-page.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/5485042563091232829'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/5485042563091232829'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2010/06/web-site-performance-optimal-page.html' title='Web SIte Performance: Optimal Page Structure Vs. Reality'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-3035599539729943782</id><published>2010-06-14T12:35:00.000-07:00</published><updated>2013-01-16T07:25:58.139-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iphone"/><category scheme="http://www.blogger.com/atom/ns#" term="web apps"/><title type='text'>Apple likes my wife.</title><content type='html'>To date, I&#39;ve built 3 iPhone Web Apps. None of them would be considered functionally unique or powerful by any stretch, HOWEVER... and it&#39;s a big HOWEVER... so far... ready for this? &lt;br /&gt;&lt;br /&gt;Two out of the three have earned &quot;Staff Pick&quot; awards from Apple!&lt;br /&gt;&lt;br /&gt;As much as I would like to take credit for being an absolute genius, it would appear that Apple has a thing... for my &lt;i&gt;wife&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;The two awarded iPhone Apps are &quot;&lt;a href=&quot;http://webapps.scottdesapio.com/iPhone/apps/converter/#home&quot; target=&quot;_blank&quot;&gt;Mila&#39;s Tools&lt;/a&gt;&quot;, a simple Unit Conversion Calculator and &quot;&lt;a href=&quot;http://veganmunch.com/iPhone&quot;&gt;VeganMunch Kombucha Calculator&lt;/a&gt;&quot; a simple Kombucha recipe calculator. Both are basically products of my wife, Mila. &lt;br /&gt;&lt;br /&gt;The other App - &lt;a href=&quot;http://webapps.scottdesapio.com/iPhone/apps/pinger/#home&quot;&gt;Scott&#39;s Pinger&lt;/a&gt;, a simple web site monitor, of which I am very proud - got nothin&#39;. Nada. Zilch. Zippo. &lt;br /&gt;&lt;br /&gt;I guess I&#39;ll be asking Mila for more App ideas.&lt;br /&gt;&lt;br /&gt;In the meantime, while waiting for Mila to tell me what App to build next, I decided to put a Mini-App of sorts together as a portal to all of my apps. The idea being, as I deploy new iPhone apps, they&#39;ll be listed in the portal app.&lt;br /&gt;&lt;br /&gt;Check it out from your iPhone here: Scott&#39;s &lt;a href=&quot;http://webapps.scottdesapio.com/#home&quot; target=&quot;_blank&quot;&gt;iPhone Web Apps&lt;/a&gt;. Don&#39;t forget to add it to your Home screen.&lt;br /&gt;&lt;br /&gt;Back to the grind. Uhm... eh ehm... Mila? What am I building next?</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/3035599539729943782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2010/06/to-date-ive-built-3-iphone-web-apps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/3035599539729943782'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/3035599539729943782'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2010/06/to-date-ive-built-3-iphone-web-apps.html' title='Apple likes my wife.'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-4446767678261303764</id><published>2010-06-14T10:19:00.000-07:00</published><updated>2013-01-16T07:25:58.144-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apple"/><category scheme="http://www.blogger.com/atom/ns#" term="iphone"/><category scheme="http://www.blogger.com/atom/ns#" term="web apps"/><title type='text'>Cannot Process Command: Internal Error.</title><content type='html'>*Knock, knock. knock.* &lt;br /&gt;&lt;br /&gt;Apple? Hello? Apple? &lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:2em;&quot;&gt;&lt;b&gt;Apple!&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Is there anyone even home over at the Apple &lt;a href=&quot;http://www.apple.com/webapps/&quot;&gt;iPhone Web Apps site&lt;/a&gt;? &lt;br /&gt;&lt;br /&gt;For the love of Pete already. After all of the hubub from Jobs about HTML 5, Safari 5, Web Apps, iPhone 4 and all of the other greatness spewing from the pores of Apple, you&#39;d think maybe they&#39;d have someone over there keeping an eye on the Web Apps site.&lt;br /&gt;&lt;br /&gt;Intermittently, THE VAST MAJORITY of the web app links point to this lovely page:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilfYsO5H79wWcKZd6WY7tN1qLi3dj51hfIT3r-Wtg9VAUUdKUsHPvmFepV7fKuZ7xLDO63q3qraZFuaLgLU-GrN8qrgeRP7rudGMsG_MaUoEjhjSfkSLDD1De10X54meRBoYFjZQ/s1600/CannotProcessCommand.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 172px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilfYsO5H79wWcKZd6WY7tN1qLi3dj51hfIT3r-Wtg9VAUUdKUsHPvmFepV7fKuZ7xLDO63q3qraZFuaLgLU-GrN8qrgeRP7rudGMsG_MaUoEjhjSfkSLDD1De10X54meRBoYFjZQ/s400/CannotProcessCommand.jpg&quot; border=&quot;0&quot; alt=&quot;Cannot Process Command: Internal Error.&quot; id=&quot;BLOGGER_PHOTO_ID_5481309508157645442&quot; /&gt;&lt;/a&gt;&lt;b&gt;Cannot Process Command: Internal Error.&lt;/b&gt; I&#39;m now having nightmares about this page! How many e-mails do I have to send!? How many forums need to be &lt;a href=&quot;http://discussions.apple.com/thread.jspa?messageID=11627024&amp;#11627024&quot;&gt;screaming&lt;/a&gt;!? &lt;br /&gt;&lt;br /&gt;PLEASE... someone at APPLE... FIX THE DAMN LEAK. &lt;i&gt;Oh... wait... wrong rant...&lt;/i&gt; Nevertheless!!! FIX IT ALREADY! &lt;br /&gt;&lt;br /&gt;K. I feel better. Love you Apple. :)&lt;br /&gt;&lt;br /&gt;If you&#39;re experiencing the same issue at Apple.com, please leave a comment below. A few more voices couldn&#39;t hurt.</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/4446767678261303764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2010/06/cannot-process-command-internal-error.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/4446767678261303764'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/4446767678261303764'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2010/06/cannot-process-command-internal-error.html' title='Cannot Process Command: Internal Error.'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilfYsO5H79wWcKZd6WY7tN1qLi3dj51hfIT3r-Wtg9VAUUdKUsHPvmFepV7fKuZ7xLDO63q3qraZFuaLgLU-GrN8qrgeRP7rudGMsG_MaUoEjhjSfkSLDD1De10X54meRBoYFjZQ/s72-c/CannotProcessCommand.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-7712578068237550139</id><published>2010-05-23T22:00:00.001-07:00</published><updated>2013-01-16T07:25:58.157-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="system tray"/><category scheme="http://www.blogger.com/atom/ns#" term="volume"/><title type='text'>Add a mute button to your system tray</title><content type='html'>So you&#39;re working... jammmin&#39; to some Zeppelin... and the phone rings. You then proceed to fumble around your systray with your volume control attempting to open it to mute. I&#39;m not one to critique another UI engineer&#39;s &lt;i&gt;flow&lt;/i&gt; but... DUDE! REALLY!? WHERE THE HELL IS THE DAMN MUTE BUTTON IN THE SYSTRAY!?&lt;br /&gt;&lt;br /&gt;Get ready to go around your ass to get to your elbow. Ready?&lt;br /&gt;&lt;br /&gt;1. Download &lt;a href=&quot;from http://www.nirsoft.net/utils/nircmd.html&quot;&gt;NirCmd&lt;/a&gt; &lt;br /&gt;2. Download &lt;a href=&quot;http://www.johnnyfoster.com/Downloads/BeTrayed/BeTrayed.msi&quot;&gt;BeTrayed!&lt;/a&gt;&lt;br /&gt;3. Assuming you installed NirCmd in your Program Files directory, create a shortcut on your desktop to: &lt;code&gt; &quot;C:\Program Files\nircmd\nircmd.exe&quot; mutesysvolume 2&lt;/code&gt;&lt;br /&gt;4. Create a new txt document with the following as the body:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;C:&lt;br /&gt;&amp;nbsp;&amp;nbsp;cd C:\Program Files\JohnnyFoster.com\BeTrayed!&lt;br /&gt;&amp;nbsp;&amp;nbsp;start BeTrayed &quot;C:\Program Files\nircmd\nircmd.exe&quot; mutesysvolume 2&lt;br /&gt;&amp;nbsp;&amp;nbsp;Y:&lt;br /&gt;&amp;nbsp;&amp;nbsp;exit&lt;br /&gt;&amp;nbsp;&amp;nbsp;cls&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;5. Save the file as &lt;code&gt;MUTE_SYSTRAY.cmd&lt;/code&gt;&lt;br /&gt;6. Create a shortcut to MUTE_SYSTRAY.cmd in your &lt;code&gt;Start -&gt; All Programs -&gt; Startup&lt;/code&gt; folder&lt;br /&gt;&lt;br /&gt;Double click to toggle your sound. &lt;br /&gt;&lt;br /&gt;Nice.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;TODO: Find volume control UI designer. Yell.&lt;/span&gt;&lt;br /&gt;&lt;p&gt;</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/7712578068237550139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2010/05/add-mute-button-to-your-system-tray.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/7712578068237550139'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/7712578068237550139'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2010/05/add-mute-button-to-your-system-tray.html' title='Add a mute button to your system tray'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-688712121429922013</id><published>2010-05-22T12:03:00.000-07:00</published><updated>2013-01-16T07:25:58.154-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iphone"/><category scheme="http://www.blogger.com/atom/ns#" term="jqtouch"/><category scheme="http://www.blogger.com/atom/ns#" term="jquery"/><title type='text'>&quot;Mila&#39;s Tools&quot; on the Apple Web Apps homepage</title><content type='html'>Let me tell you something... if you&#39;ve built yourself a simple iPhone Web App... and you&#39;d like to get a few hundred users REAL QUICK... &lt;a href=&quot;https://adcweb.apple.com/iphone/&quot; target=&quot;_blank&quot;&gt;SUBMIT YOUR APP TO THE APPLE WEB APPS DIRECTORY&lt;/a&gt;. Run. Don&#39;t walk. Run to the Apple Web Apps site and do it now.&lt;br /&gt;&lt;br /&gt;I about fell out of my chair after submitting my app late one night only to wake up to 100s of new users. Upon checking the directory, there it was... right on the &lt;a href=&quot;http://www.apple.com/webapps/index.html&quot; target=&quot;_blank&quot;&gt;Apple Web Apps&lt;/a&gt; home page as a &quot;Staff Pick&quot; - &quot;Mila&#39;s Tools&quot;, my new &lt;a href=&quot;http://www.apple.com/webapps/calculate/milastools.html&quot; target=&quot;_blank&quot;&gt;iPhone Unit Conversion App&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Pure awesomeness, drenched in awesome juice.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih-hnDu5_KCTkrkN2y8Lt9EgSIg1m1Ijw5ZRw62i4Bg3B1exCDEsWtgga3yO4xd3wfC4i2kuTiYX63vPyHnNGKZyls8tOLxQld3hdQt84OAdw9-a3JIxQFRqx4WtsRE-EXygpSpQ/s1600/milasToolsB.gif&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 378px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih-hnDu5_KCTkrkN2y8Lt9EgSIg1m1Ijw5ZRw62i4Bg3B1exCDEsWtgga3yO4xd3wfC4i2kuTiYX63vPyHnNGKZyls8tOLxQld3hdQt84OAdw9-a3JIxQFRqx4WtsRE-EXygpSpQ/s400/milasToolsB.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5474177085024403682&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFA1zaOwWC23lUzZufN5EVXgtRG7slGOhivtt4-g8rvsyimHLVI53p9Mohs0uWkZMgrl-9pq-NlxO2Wx3t9LJS1qMfH_8AYdzosb-hnLPYD99gepdqb5pnVp4smQkiLWYv9R-RUQ/s1600/milasToolsA.gif&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 378px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFA1zaOwWC23lUzZufN5EVXgtRG7slGOhivtt4-g8rvsyimHLVI53p9Mohs0uWkZMgrl-9pq-NlxO2Wx3t9LJS1qMfH_8AYdzosb-hnLPYD99gepdqb5pnVp4smQkiLWYv9R-RUQ/s400/milasToolsA.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5474177419554167634&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/688712121429922013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2010/05/milas-tools-on-apple-webapps-homepage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/688712121429922013'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/688712121429922013'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2010/05/milas-tools-on-apple-webapps-homepage.html' title='&quot;Mila&#39;s Tools&quot; on the Apple Web Apps homepage'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih-hnDu5_KCTkrkN2y8Lt9EgSIg1m1Ijw5ZRw62i4Bg3B1exCDEsWtgga3yO4xd3wfC4i2kuTiYX63vPyHnNGKZyls8tOLxQld3hdQt84OAdw9-a3JIxQFRqx4WtsRE-EXygpSpQ/s72-c/milasToolsB.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-7870527611127451240</id><published>2010-05-20T15:18:00.000-07:00</published><updated>2013-01-16T07:25:58.160-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="errors"/><category scheme="http://www.blogger.com/atom/ns#" term="iis"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><category scheme="http://www.blogger.com/atom/ns#" term="zend server"/><title type='text'>Error Number: 1413 (0x80070585)</title><content type='html'>PROBLEM: Immediately after installing Zend server, upon testing you are faced with:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;FastCGI Error&lt;br /&gt;&lt;br /&gt;The FastCGI Handler was unable to process the request.&lt;br /&gt;Error Details:&lt;br /&gt;&lt;br /&gt;Could not find entry for &quot;php&quot; on site 1 in [Types] section.&lt;br /&gt;Error Number: 1413 (0x80070585).&lt;br /&gt;Error Description: Invalid index.&lt;br /&gt;HTTP Error 500 - Server Error.&lt;br /&gt;Internet Information Services (IIS)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;SOLUTION: Add the following to the end of C:\WINDOWS\system32\inetsrv\fcgiext.ini&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[Types]&lt;br /&gt;php=PHP&lt;br /&gt;&lt;br /&gt;[PHP]&lt;br /&gt;ExePath=C:\Program Files\Zend\ZendServer\bin\php-cgi.exe&lt;br /&gt;&lt;br /&gt;EnvironmentVars=PHP_FCGI_MAX_REQUESTS:1000&lt;br /&gt;IdleTimeout=1500&lt;br /&gt;ActivityTimeout=3000&lt;br /&gt;RequestTimeout=1500&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/7870527611127451240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2010/05/error-number-1413-0x80070585.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/7870527611127451240'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/7870527611127451240'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2010/05/error-number-1413-0x80070585.html' title='Error Number: 1413 (0x80070585)'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-2899359367776937093</id><published>2010-05-18T13:42:00.000-07:00</published><updated>2013-01-16T07:25:58.137-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="engineering"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="refactoring"/><title type='text'>REFACTORING: A day in the life</title><content type='html'>I put this video up months ago and just realized I never blogged about it! How&#39;d that happen!? If you&#39;re an engineer, this butting-my-head-up-against-the-wall moment is for you.&lt;br /&gt;&lt;br /&gt;So, without further ado... I bring to you... &quot;Refactoring: A day in the life.&quot; [dat-do-do]&lt;br /&gt;&lt;br /&gt;&lt;object width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/-Ih49VHpd74&amp;hl=en_US&amp;fs=1&amp;&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/-Ih49VHpd74&amp;hl=en_US&amp;fs=1&amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;P.S. Turn up the volume. [Really. Turn it up.]&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/2899359367776937093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2010/05/refactoring-day-in-life.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/2899359367776937093'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/2899359367776937093'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2010/05/refactoring-day-in-life.html' title='REFACTORING: A day in the life'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-3690149527837460264</id><published>2010-05-16T21:46:00.000-07:00</published><updated>2013-01-16T07:25:58.141-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iphone"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="jqtouch"/><category scheme="http://www.blogger.com/atom/ns#" term="jquery"/><title type='text'>iPhone Unit Conversion Calculator</title><content type='html'>So, I dove into &lt;a href=&quot;http://jQuery.com&quot;&gt;jQuery&lt;/a&gt; and &lt;a href=&quot;http://jQTouch.com&quot;&gt;jQTouch&lt;/a&gt; development for the iPhone and all I know is, I can&#39;t wait to do it again. &lt;br /&gt;&lt;br /&gt;&lt;a style=&quot;float:left;margin-right:20px;&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZWSDBgFroLQBH4XrcN_LsDun99cwiDeDUMtHxM8K1ULxbzZWeahYKSCdREphwmv-2kjoOiEby8zef0AAB6yu5xzu2nCZlGKqpY0z8H0hMJAS8l0no9yscxcReykbw_mPjETPnRg/s1600/Converter.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 30px; text-align:center;cursor:pointer; cursor:hand;width: 218px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZWSDBgFroLQBH4XrcN_LsDun99cwiDeDUMtHxM8K1ULxbzZWeahYKSCdREphwmv-2kjoOiEby8zef0AAB6yu5xzu2nCZlGKqpY0z8H0hMJAS8l0no9yscxcReykbw_mPjETPnRg/s400/Converter.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5472099480930403762&quot; /&gt;&lt;/a&gt;Wow, wow, wow... talk about easy-peasy-Japanese. I could not have been more impressed. The functionality of the unit conversion calculator in-and-of-itself is nothing to write home about BUT, that which comes with employing jQuery + jQTouch most certainly is.&lt;br /&gt;&lt;br /&gt;Wowsers. Yep. That&#39;s all I got. Wowsers.&lt;br /&gt;&lt;br /&gt;The iPhone app includes four conversion calculators - a length converter, liquid converter, temperature converter, and time converter. From your iPhone, check out the converter here: &lt;a href=&quot;http://scottdesapio.com/iPhone/apps/converter&quot;&gt;iPhone Unit Conversion Calculator&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Don&#39;t forget to add it as a full screen app by hitting the + sign. :)&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/3690149527837460264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2010/05/iphone-unit-conversion-calculator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/3690149527837460264'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/3690149527837460264'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2010/05/iphone-unit-conversion-calculator.html' title='iPhone Unit Conversion Calculator'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZWSDBgFroLQBH4XrcN_LsDun99cwiDeDUMtHxM8K1ULxbzZWeahYKSCdREphwmv-2kjoOiEby8zef0AAB6yu5xzu2nCZlGKqpY0z8H0hMJAS8l0no9yscxcReykbw_mPjETPnRg/s72-c/Converter.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-6422547472393269587</id><published>2010-05-02T08:04:00.000-07:00</published><updated>2013-01-16T07:25:58.152-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="amazon api"/><title type='text'>Amazon API &quot;Tags&quot; Response Group</title><content type='html'>PROBLEM: &lt;span style=&quot;font-weight:bold;&quot;&gt;Amazon API&lt;/span&gt; is not returning &quot;Tags&quot; even when &lt;span style=&quot;font-weight:bold;&quot;&gt;&quot;Tags&quot; response group&lt;/span&gt; is specified in the request URL.&lt;br /&gt;&lt;br /&gt;SOLUTION: Add the &quot;Version&quot; parameter to your request. &lt;br /&gt;&lt;br /&gt;EXAMPLE: http://webservices.amazon.com/onca/xml?AWSAccessKeyId=...&amp;Version=2009-10-01&lt;br /&gt;&lt;br /&gt;For valid &quot;Version&quot; values, keep your eyes on the API&#39;s &lt;a href=&quot;http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=17&quot;&gt;release notes&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;NOTE: By default, the API will return the top 5 tags. To have more returned or to page through tags, check out the TagPage and TagsPerPage parameters in the &lt;a href=&quot;http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/ItemLookup.html&quot;&gt;ItemLookup documentation&lt;/a&gt;.&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/6422547472393269587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2010/05/amazon-api-tags-response-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/6422547472393269587'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/6422547472393269587'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2010/05/amazon-api-tags-response-group.html' title='Amazon API &quot;Tags&quot; Response Group'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-5090288649325734491</id><published>2010-04-30T17:03:00.001-07:00</published><updated>2013-01-16T07:25:58.147-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="internet explorer"/><title type='text'>Run multiple instances of Internet Explorer</title><content type='html'>Dear Lord,&lt;br /&gt;&lt;br /&gt;Thank you for my life, my wife and FOR Hilbrand Edskes who built &lt;a href=&quot;http://finalbuilds.edskes.net/iecollection.htm&quot;&gt;THIS APPLICATION&lt;/a&gt; allowing me to run multiple instances of Internet Explorer. &lt;br /&gt;&lt;br /&gt;One more thing... &lt;br /&gt;&lt;br /&gt;LAST YEAR YOU TOOK MY FAVORITE ACTOR, PATRICK SWAYZIE. YOU TOOK MY FAVORITE ACTRESS, FARAH FAWCETT. YOU TOOK MY FAVORITE SINGER, MICHAEL JACKSON. I JUST WANTED TO LET YOU KNOW, MY FAVORITE BROWSER IS INTERNET EXPLORER. &lt;br /&gt;&lt;br /&gt;AMEN.&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/5090288649325734491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2010/04/run-multiple-instances-of-internet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/5090288649325734491'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/5090288649325734491'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2010/04/run-multiple-instances-of-internet.html' title='Run multiple instances of Internet Explorer'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-4572073285027824543</id><published>2010-04-18T12:53:00.000-07:00</published><updated>2013-01-16T07:25:58.146-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="classic asp"/><category scheme="http://www.blogger.com/atom/ns#" term="oauth"/><category scheme="http://www.blogger.com/atom/ns#" term="twitter"/><category scheme="http://www.blogger.com/atom/ns#" term="vbscript"/><title type='text'>Classic ASP VBScript OAuth</title><content type='html'>FINALLY. &lt;a href=&quot;http://scottdesapio.com/VBScriptOAuth/&quot;&gt;VBScript OAuth&lt;/a&gt; with example project!&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;OAuth is hard. I don&#39;t care if you&#39;re the greatest engineer on Earth, at first glance OAuth is a WTF moment. Having a slew of Classic ASP sites to maintain, and no luck finding any help in the VBSCript OAuth department, I dove in to the HELL that is OAuth. When I&#39;d finally emerged, although scarred for life, I had a full fledged OAuth implementation... done entirely in VBScript... OK, not entirely... but mostly no doubt.&lt;/span&gt;&lt;/blockquote&gt; &lt;br /&gt;&lt;br /&gt;Check it out here: &lt;a href=&quot;http://scottdesapio.com/VBScriptOAuth/&quot;&gt;Classic ASP VBScript OAuth&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/4572073285027824543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2010/04/classic-asp-vbscript-oauth.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/4572073285027824543'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/4572073285027824543'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2010/04/classic-asp-vbscript-oauth.html' title='Classic ASP VBScript OAuth'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33247377.post-7637604879955821357</id><published>2010-04-18T12:48:00.000-07:00</published><updated>2013-01-16T07:25:58.155-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="twitter"/><title type='text'>Get twitter user profile pic by name, unauthenticated</title><content type='html'>No javascript required. No server side component to deal with. Just drop the image tag in using this generic handler as the src: &lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;http://api.twitter.com/1/users/profile_image/[SCREEN_NAME]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Replace &quot;[SCREEN_NAME]&quot; with the actual screen name and, voilà.&lt;br /&gt;&lt;br /&gt;EX: &amp;lt;img src=&quot;http://api.twitter.com/1/users/profile_image/sdesapio&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://api.twitter.com/1/users/profile_image/sdesapio&quot;&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='https://engineering.scottdesapio.com/feeds/7637604879955821357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://engineering.scottdesapio.com/2010/04/get-twitter-user-profile-pic-by-name.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/7637604879955821357'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/33247377/posts/default/7637604879955821357'/><link rel='alternate' type='text/html' href='https://engineering.scottdesapio.com/2010/04/get-twitter-user-profile-pic-by-name.html' title='Get twitter user profile pic by name, unauthenticated'/><author><name>Scott DeSapio</name><uri>http://www.blogger.com/profile/14858286014271500278</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEwWttn0ZTJ1SepSyrXZHmmx1xRDaDH9EwVyjwJYrGN9EMkBMY3P1xZESi6VfnHVCP2nGwFQq7UcNB__vTExhoB1z09AJUXhjAOEQJDj4u-ByrlRd7QKrURi07MnWZlI/s220/_sjd_cropped.jpg'/></author><thr:total>2</thr:total></entry></feed>