<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ryan Stemkoski &#187; Web Development</title>
	<atom:link href="http://www.stemkoski.com/category/web-design-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stemkoski.com</link>
	<description>Web design tips &#38; tricks plus anything else I want to talk about...</description>
	<lastBuildDate>Sat, 07 Jan 2012 18:34:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to create click-to-call phone number links in PhoneGap</title>
		<link>http://www.stemkoski.com/how-to-create-click-to-call-phone-number-links-in-phonegap/</link>
		<comments>http://www.stemkoski.com/how-to-create-click-to-call-phone-number-links-in-phonegap/#comments</comments>
		<pubDate>Sat, 07 Jan 2012 18:32:28 +0000</pubDate>
		<dc:creator>Ryan Stemkoski</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Mobile Apps]]></category>
		<category><![CDATA[Mobile Websites]]></category>
		<category><![CDATA[PhoneGap]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.stemkoski.com/?p=1533</guid>
		<description><![CDATA[When presented with this problem, my first instinct was to look through the PhoneGap API documentation to see if I could find a way to interact with the internal phone system. After reviewing the documentation, I wasn&#8217;t able to find the desired solution, so, I started thinking of other ways to solve this problem. After [...]


Related posts:<ol><li><a href='http://www.stemkoski.com/solved-problem-linking-to-google-maps-using-phonegap-and-childbrowser-plugin/' rel='bookmark' title='Permanent Link: Solved: Problem Linking to Google Maps Using PhoneGap and Childbrowser Plugin'>Solved: Problem Linking to Google Maps Using PhoneGap and Childbrowser Plugin</a> <small>Today, I had an odd issue which took me a...</small></li>
<li><a href='http://www.stemkoski.com/how-to-get-fixed-header-and-footer-toolbars-in-jquery-mobile-1-0/' rel='bookmark' title='Permanent Link: How to get Fixed Header and Footer Toolbars in jQuery Mobile 1.0'>How to get Fixed Header and Footer Toolbars in jQuery Mobile 1.0</a> <small>At Zipline Interactive, we have been doing mobile websites for...</small></li>
<li><a href='http://www.stemkoski.com/how-to-detect-a-users-language-with-php/' rel='bookmark' title='Permanent Link: How to Detect a User&#8217;s Language with PHP'>How to Detect a User&#8217;s Language with PHP</a> <small>I was recently looking for a simple way to automatically...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.stemkoski.com/wp-content/uploads/2012/01/using-iphone-phone-app-2.jpeg" alt="" title="iPhone phone screen" width="200" class="alignright size-full wp-image-1534" style="float:right; margin-left: 10px;" />When presented with this problem, my first instinct was to look through the PhoneGap API documentation to see if I could find a way to interact with the internal phone system.  After reviewing the documentation, I wasn&#8217;t able to find the desired solution, so, I started thinking of other ways to solve this problem.   After some contemplation, I realized PhoneGap runs using the UIWebView browser, which, is more or less Safari without a back button. This led me to my solution,  I realized I could use the same methodology I would use with a mobile website to create the click-to-call buttons inside of my PhoneGap app.</p>
<p>The solution I came up with was to use the tel: URI-scheme that is found in most mobile web browsers including: iOS, Android, WebOS, Symbian, and Internet Explorer.  Using this, I was able to create a simple HTML link using the following syntax:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span>”<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;tel:8009229999&quot;</span>&gt;</span>(800) 922-9999<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></pre></div></div>

<p>This link when clicked will trigger the internal phone system either from a browser or from within PhoneGap to initiate a call to (800) 922-9999. I haven&#8217;t yet tested this strategy with PhoneGap on non iOS devices but I anticipate it should work in most if not all cases.  I can say it working splendidly on the iOS app I currently have in development.</p>


<p>Related posts:<ol><li><a href='http://www.stemkoski.com/solved-problem-linking-to-google-maps-using-phonegap-and-childbrowser-plugin/' rel='bookmark' title='Permanent Link: Solved: Problem Linking to Google Maps Using PhoneGap and Childbrowser Plugin'>Solved: Problem Linking to Google Maps Using PhoneGap and Childbrowser Plugin</a> <small>Today, I had an odd issue which took me a...</small></li>
<li><a href='http://www.stemkoski.com/how-to-get-fixed-header-and-footer-toolbars-in-jquery-mobile-1-0/' rel='bookmark' title='Permanent Link: How to get Fixed Header and Footer Toolbars in jQuery Mobile 1.0'>How to get Fixed Header and Footer Toolbars in jQuery Mobile 1.0</a> <small>At Zipline Interactive, we have been doing mobile websites for...</small></li>
<li><a href='http://www.stemkoski.com/how-to-detect-a-users-language-with-php/' rel='bookmark' title='Permanent Link: How to Detect a User&#8217;s Language with PHP'>How to Detect a User&#8217;s Language with PHP</a> <small>I was recently looking for a simple way to automatically...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stemkoski.com/how-to-create-click-to-call-phone-number-links-in-phonegap/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to Make a Cross Domain AJAX Request with jQuery</title>
		<link>http://www.stemkoski.com/how-to-make-a-cross-domain-ajax-request-with-jquery/</link>
		<comments>http://www.stemkoski.com/how-to-make-a-cross-domain-ajax-request-with-jquery/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 22:04:37 +0000</pubDate>
		<dc:creator>Ryan Stemkoski</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Cross Domain]]></category>

		<guid isPermaLink="false">http://www.stemkoski.com/?p=1522</guid>
		<description><![CDATA[I am currently working on a project that required me to make a cross-domain AJAX request using jQuery. This is a function that is disabled by default because of security implications, however, there is occasionally a need for this type of request. In this case, I need to load content from a remote URL or [...]


Related posts:<ol><li><a href='http://www.stemkoski.com/how-to-get-fixed-header-and-footer-toolbars-in-jquery-mobile-1-0/' rel='bookmark' title='Permanent Link: How to get Fixed Header and Footer Toolbars in jQuery Mobile 1.0'>How to get Fixed Header and Footer Toolbars in jQuery Mobile 1.0</a> <small>At Zipline Interactive, we have been doing mobile websites for...</small></li>
<li><a href='http://www.stemkoski.com/accurate-cross-browser-testing-with-browserstack-com/' rel='bookmark' title='Permanent Link: Accurate Cross Browser Testing With BrowserStack.com'>Accurate Cross Browser Testing With BrowserStack.com</a> <small>The worst job for any web developer is testing your...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I am currently working on a project that required me to make a cross-domain AJAX request using jQuery.  This is a function that is disabled by default because of security implications, however, there is occasionally a need for this type of request.  In this case, I need to load content from a remote URL or website similar to how you would load content using jQuery&#8217;s .load() function or using PHP&#8217;s file_get_contents() function.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">/********************************************************************************
FUNCTION FOR CROSS DOMAIN AJAX REQUEST USING JQUERY 1.5+
********************************************************************************/</span>  
<span style="color: #003366; font-weight: bold;">function</span> loadContents<span style="color: #009900;">&#40;</span>url<span style="color: #339933;">,</span> callback<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  
&nbsp;
    <span style="color: #006600; font-style: italic;">//CONFIRM A URL WAS PROVIDED  </span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>url<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  
&nbsp;
	    <span style="color: #006600; font-style: italic;">//SET URL FOR YAHOO YQL QUERY</span>
	    <span style="color: #003366; font-weight: bold;">var</span> yql <span style="color: #339933;">=</span> <span style="color: #3366CC;">'http://query.yahooapis.com/v1/public/yql?q='</span> <span style="color: #339933;">+</span> encodeURIComponent<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'select * from html where url=&quot;'</span> <span style="color: #339933;">+</span> url <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&quot;'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&amp;format=xml&amp;callback=?'</span><span style="color: #339933;">;</span>  
&nbsp;
		<span style="color: #006600; font-style: italic;">//MAKE YAHOO YQL QUERY  </span>
	   	$.<span style="color: #660066;">getJSON</span><span style="color: #009900;">&#40;</span>yql<span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
			<span style="color: #006600; font-style: italic;">//BUILD CALLBACK FUNCTION</span>
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> callback <span style="color: #339933;">===</span> <span style="color: #3366CC;">'function'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  
			    callback<span style="color: #009900;">&#40;</span>data.<span style="color: #660066;">results</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
			<span style="color: #009900;">&#125;</span>  
&nbsp;
		<span style="color: #006600; font-style: italic;">//WRITES ERROR TO LOG	</span>
	    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">error</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>jqXHR<span style="color: #339933;">,</span> textStatus<span style="color: #339933;">,</span> errorThrown<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
	    	console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span>errorThrown<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
	    <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  	<span style="color: #006600; font-style: italic;">//LOG ERROR IF NO URL WAS PASSED TO THE SCRIPT</span>
  	<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
  		 console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'No site was passed to the script.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
  	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #006600; font-style: italic;">/********************************************************************************
SAMPLE USAGE
********************************************************************************/</span> 
loadContents<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'http://www.ziplineinteractive.com/frame/'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>results<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#wrapper'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>results<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>I have tested this function in IE, Firefox, Chrome, and Safari and it should allow you to make cross-domain AJAX requests in jQuery 1.3, 1.4, 1.5, 1.6, 1.7, and from what I been able to find online it should also be supported in 1.8, although, 1.8 is not available at this time.</p>
<p>Let me know how this works in your application.</p>


<p>Related posts:<ol><li><a href='http://www.stemkoski.com/how-to-get-fixed-header-and-footer-toolbars-in-jquery-mobile-1-0/' rel='bookmark' title='Permanent Link: How to get Fixed Header and Footer Toolbars in jQuery Mobile 1.0'>How to get Fixed Header and Footer Toolbars in jQuery Mobile 1.0</a> <small>At Zipline Interactive, we have been doing mobile websites for...</small></li>
<li><a href='http://www.stemkoski.com/accurate-cross-browser-testing-with-browserstack-com/' rel='bookmark' title='Permanent Link: Accurate Cross Browser Testing With BrowserStack.com'>Accurate Cross Browser Testing With BrowserStack.com</a> <small>The worst job for any web developer is testing your...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stemkoski.com/how-to-make-a-cross-domain-ajax-request-with-jquery/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Redefining or changing a PHP $_SERVER variable for an entire website.</title>
		<link>http://www.stemkoski.com/redefining-or-changing-a-php-_server-variable-for-an-entire-website/</link>
		<comments>http://www.stemkoski.com/redefining-or-changing-a-php-_server-variable-for-an-entire-website/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 22:54:57 +0000</pubDate>
		<dc:creator>Ryan Stemkoski</dc:creator>
				<category><![CDATA[PHP Development]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.stemkoski.com/?p=1516</guid>
		<description><![CDATA[Today, I was faced with the need to redefine a PHP $_SERVER variable for an entire application, made up of hundreds of PHP pages. In this case, I needed to redefine $_SERVER['DOCUMENT_ROOT'] for an entire website. The application was built by another company under the assumption that $_SERVER['DOCUMENT_ROOT'] would always point to the document root, [...]


Related posts:<ol><li><a href='http://www.stemkoski.com/how-to-detect-a-users-language-with-php/' rel='bookmark' title='Permanent Link: How to Detect a User&#8217;s Language with PHP'>How to Detect a User&#8217;s Language with PHP</a> <small>I was recently looking for a simple way to automatically...</small></li>
<li><a href='http://www.stemkoski.com/remove-unnecessary-querystring-from-htaccess-301-permanent-redirects/' rel='bookmark' title='Permanent Link: Remove Unnecessary Querystring From .htaccess 301 Permanent Redirects'>Remove Unnecessary Querystring From .htaccess 301 Permanent Redirects</a> <small>Today I ran into an odd problem while trying to...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Today, I was faced with the need to redefine a PHP $_SERVER variable for an entire application, made up of hundreds of PHP pages. In this case, I needed to redefine $_SERVER['DOCUMENT_ROOT'] for an entire website.  The application was built by another company under the assumption that $_SERVER['DOCUMENT_ROOT'] would always point to the document root, however, on some virtual servers this is not the case.  The solution actually proved to be very easy, and could be used to redefine other PHP $_SERVER variables as required.</p>
<h2>Solution:</h2>
<h3>Step 1:</h3>
<p>Create a PHP file, in this case we are naming it document_root.php.   The PHP file should contain the following code (Make sure to replace our path with your path to your document root):</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;DOCUMENT_ROOT&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;/usr/local/www/htdocs/domainname.com/www&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<h3>Step 2:</h3>
<p>Add the following code at the top of your .htaccess file (Make sure to replace the document_root.php with your file.  If your file is nested in a directory include the file path as well):</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">php_value auto_prepend_file &quot;document_root.php&quot;</pre></div></div>

<p>Reload your website and poof, Apache will parse the document_root.php file and set the $_SERVER['DOCUMENT_ROOT'] value on every page you load. </p>
<p>Note: If you are redefining a different global variable or multiple global variables you can revise the PHP file accordingly.</p>


<p>Related posts:<ol><li><a href='http://www.stemkoski.com/how-to-detect-a-users-language-with-php/' rel='bookmark' title='Permanent Link: How to Detect a User&#8217;s Language with PHP'>How to Detect a User&#8217;s Language with PHP</a> <small>I was recently looking for a simple way to automatically...</small></li>
<li><a href='http://www.stemkoski.com/remove-unnecessary-querystring-from-htaccess-301-permanent-redirects/' rel='bookmark' title='Permanent Link: Remove Unnecessary Querystring From .htaccess 301 Permanent Redirects'>Remove Unnecessary Querystring From .htaccess 301 Permanent Redirects</a> <small>Today I ran into an odd problem while trying to...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stemkoski.com/redefining-or-changing-a-php-_server-variable-for-an-entire-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to get Fixed Header and Footer Toolbars in jQuery Mobile 1.0</title>
		<link>http://www.stemkoski.com/how-to-get-fixed-header-and-footer-toolbars-in-jquery-mobile-1-0/</link>
		<comments>http://www.stemkoski.com/how-to-get-fixed-header-and-footer-toolbars-in-jquery-mobile-1-0/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 13:23:09 +0000</pubDate>
		<dc:creator>Ryan Stemkoski</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Mobile Apps]]></category>
		<category><![CDATA[Mobile Websites]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[jQuery Mobile]]></category>

		<guid isPermaLink="false">http://www.stemkoski.com/?p=1457</guid>
		<description><![CDATA[At Zipline Interactive, we have been doing mobile websites for a number of years. When we originally started building them, most customers were satisfied with a very simple website but as the mobile market has grown and more and more users have smartphones, many customers expect their mobile website to function much like a mobile [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.stemkoski.com/wp-content/uploads/2011/11/Screen-Shot-2011-11-23-at-5.28.58-AM.png"><img src="http://www.stemkoski.com/wp-content/uploads/2011/11/Screen-Shot-2011-11-23-at-5.28.58-AM.png" alt="" title="Screen Shot 2011-11-23 at 5.28.58 AM" width="266" height="288" class="alignright size-full wp-image-1461" style="margin-left: 10px;" /></a>At Zipline Interactive, we have been doing mobile websites for a number of years. When we originally started building them, most customers were satisfied with a very simple website but as the mobile market has grown and more and more users have smartphones, many customers expect their mobile website to function much like a mobile app.   In addition, tools like PhoneGap and Appcelerator have provided web developers with the ability to create cross platform mobile applications using HTML5 and Javascript.  The key with developing mobile websites or applications using web technologies, is mimicking the devices user interface and animations for a consisten user experiene.  There are a number of great Javascript frameworks designed to assist with this task.  As I have worked with and tested these platforms my clear favorite is jQuery Mobile. It has a great deal of momentum and support, plus I am already a heavy jQuery user so the learning curve is very low. </p>
<p>One of the the biggest problems facing mobile web developers is the ability to create fixed headers and footers on mobile websites and HTML5 powered mobile applications.  The problem is caused by the lack of standard support for the CSS properties position:fixed and overflow.  Originally, these were not supported because they interfered with the touch interactions of the phone operating system but as of iOS5 and Android 2.1 there is rudimentary support for position:fixed. If you would like to see the level of support for these properties in the various mobile browsers, there is a handy chart available here: http://e.com/css-fixed. </p>
<p>The good news is that default support is on the way.  The bad news is that it is not here yet.  Regardless of the mobile platform you are targeting, there will be a large percentage of users that are unable to use your interface properly if you rely on position:fixed or overflow.  In jQuery Mobile, there is a default solution.  They have built in toolbars that mimic a fixed header and footer by fading out and repositioning as the screen moves.  While this is an improvement, it is still not a solution for a developer wanting a native app look and feel.</p>
<h2>So what is the solution?</h2>
<p>After a great deal of research and testing I found there were two primary solutions for this problem being used by fans of the jQuery Mobile platform.  They both use Javascript to modify the elements and mimic the scrolling functionality of a native application. </p>
<h3>Solution 1: iScroll jQuery Mobile Plugin</h3>
<p>URL: https://github.com/yappo/javascript-jquery.mobile.iscroll<br />
This jQuery Mobile plugin is a wrapper for the iScroll Javascript function. (http://cubiq.org/iscroll-4)  This plugin is made up of a single file that drops in to your HTML and then is initiated by adding &#8216;data-iscroll=&#8221;scroller&#8221;&#8216; to the element you want to scroll.  This plugin was very easy to setup and worked, however, the animation was slow on android applications and when loading websites on the iPhone I had a persistent space at the bottom of the page that I could not remove.  I believe it was caused during loading by the default iPhone toolbars but I am uncertain. I searched online and wasn&#8217;t able to find a suitable solution.  Many users have reported this solution worked well for them and several indicated they were using it successfully with the PhoneGap platform.</p>
<h3>Solution 2: Scrollivew</h3>
<p>URL: http://jquerymobile.com/test/experiments/scrollview/<br />
Download URL: https://github.com/jquery/jquery-mobile/tree/master/experiments/scrollview<br />
This jQuery Mobile plugin is actually sponsored by jQuery and is currently listed under their experiments section on the jQuery Mobile website.  It was a bit harder to get running.  It required 4 files, 3 Javascript files and 1 CSS file, although, I was able to lump them together into existing application files to minimize HTTP requests.  This solution worked very well for my application. After installing the scripts I simply added  data-scroll=&#8221;true&#8221; to the element I wanted scrollable and the plugin took care of the rest.  One important thing to note about this solution, is that in addition to simple fixed toolbars, this plugin also allows scrolling of on page elements left or right and can also handle scrollable lists with inline headers.</p>
<h2>My Conclusion:</h2>
<p>After extensively testing both of the primary scrolling options for jQuery Mobile I feel like the jQuery Mobile Scrollview is the best solution.  It was very easy to install and configure, offered great support on iPhone and Android devices, and has more options and configurations available to customize your application.  In addition, it may at some point be integrated into jQuery mobile as default functionality to serve as a bridge until position:fixed and overflow are full supported by the majority of active smartphones.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.stemkoski.com/how-to-get-fixed-header-and-footer-toolbars-in-jquery-mobile-1-0/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Remove Unnecessary Querystring From .htaccess 301 Permanent Redirects</title>
		<link>http://www.stemkoski.com/remove-unnecessary-querystring-from-htaccess-301-permanent-redirects/</link>
		<comments>http://www.stemkoski.com/remove-unnecessary-querystring-from-htaccess-301-permanent-redirects/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 16:53:47 +0000</pubDate>
		<dc:creator>Ryan Stemkoski</dc:creator>
				<category><![CDATA[PHP Development]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[redirect]]></category>

		<guid isPermaLink="false">http://www.stemkoski.com/?p=1430</guid>
		<description><![CDATA[Today I ran into an odd problem while trying to create permanent redirects on a website to help with search engine optimization. The website I was working on used a fairly standard URL rewrite rule that rewrite all portions of the URL to a querystring and then the application handled the querystring internally. This methodology [...]


Related posts:<ol><li><a href='http://www.stemkoski.com/how-to-detect-a-users-language-with-php/' rel='bookmark' title='Permanent Link: How to Detect a User&#8217;s Language with PHP'>How to Detect a User&#8217;s Language with PHP</a> <small>I was recently looking for a simple way to automatically...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Today I ran into an odd problem while trying to create permanent redirects on a website to help with search engine optimization.  The website I was working on used a fairly standard URL rewrite rule that rewrite all portions of the URL to a querystring and then the application handled the querystring internally.  This methodology is common in many CMS systems and also in the popular Codeigniter framework.  When I attempted to use standard .htaccess 301 permanent redirects they would add an unexpected querystring to the URL containing the previous URL that we were rewriting.</p>
<p>To illustrate the problem.  I was attempting to rewrite /old-page to http://www.website.com/new-page and when the redirection occurred I would get something along the address of http://www.website.com/new-page/?url=old-page.</p>
<p>I couldn&#8217;t figure out a solution for the problem using standard redirects such as:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;">Redirect 301 /old-url http://www.website.com/new-url</pre></div></div>

<p>I tried different variations and position and nothing seemed to work.  After some experimentation I decided to approach the problem from another direction.  Instead I created a RewriteRule to handle the rewriting and then included two designations [L] indicating this is the final rule and to tell apache to stop looking for additional rules if this condition is met and then I specified [R=301] indicating this is 301 redirect.  (CAUTION: Do not just use [R] as this is recorded as  302 redirect which is not a preferred redirect type for SEO)</p>
<p>The final redirect looks like this in .htaccess and seems to work as expected.</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;">RewriteRule ^old-url?/?$ http://www.website.com/new-url [L,R=301]</pre></div></div>

<p>There are likely other ways to approach this problem but this one is working great for me. Let me know if you have any problems implementing this methodology into your .htaccess file.</p>


<p>Related posts:<ol><li><a href='http://www.stemkoski.com/how-to-detect-a-users-language-with-php/' rel='bookmark' title='Permanent Link: How to Detect a User&#8217;s Language with PHP'>How to Detect a User&#8217;s Language with PHP</a> <small>I was recently looking for a simple way to automatically...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stemkoski.com/remove-unnecessary-querystring-from-htaccess-301-permanent-redirects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Detect a User&#8217;s Language with PHP</title>
		<link>http://www.stemkoski.com/how-to-detect-a-users-language-with-php/</link>
		<comments>http://www.stemkoski.com/how-to-detect-a-users-language-with-php/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 14:20:26 +0000</pubDate>
		<dc:creator>Ryan Stemkoski</dc:creator>
				<category><![CDATA[PHP Development]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.stemkoski.com/?p=1424</guid>
		<description><![CDATA[I was recently looking for a simple way to automatically detect a user&#8217;s language using PHP. There are a number of ways this could be accomplished but after some thought I realized the easiest is to get that information from the users web browser. Users are most likely to browse the web in a language [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>I was recently looking for a simple way to automatically detect a user&#8217;s language using PHP.  There are a number of ways this could be accomplished but after some thought I realized the easiest is to get that information from the users web browser.  Users are most likely to browse the web in a language they are comfortable with and your browser will send your accepted language in the HTTP headers when loading a page. After some quick research we realized this is indeed correct and the data is contained within the $_SERVER object, it just happened to be one of the variables we hadn&#8217;t used previously.</p>
<p>I put together a quick snippet below that extracts the two digit language code and stores it as a variable.  You could use this to load different content, to redirect to another version of the website using the proper language, or to sculpt the user experience.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?PHP</span> 
&nbsp;
    <span style="color: #666666; font-style: italic;">//EXTRACT THE TWO DIGIT LANGUAGE CODE FROM THE HTTP HEADERS</span>
    <span style="color: #000088;">$lang</span> <span style="color: #339933;">=</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_ACCEPT_LANGUAGE'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>



<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.stemkoski.com/how-to-detect-a-users-language-with-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easily Find the Latest Versions of Javascript Libraries at Google Code</title>
		<link>http://www.stemkoski.com/easily-find-the-latest-versions-of-javascript-libraries-at-google-code/</link>
		<comments>http://www.stemkoski.com/easily-find-the-latest-versions-of-javascript-libraries-at-google-code/#comments</comments>
		<pubDate>Tue, 04 May 2010 18:21:17 +0000</pubDate>
		<dc:creator>Ryan Stemkoski</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery UI]]></category>

		<guid isPermaLink="false">http://www.stemkoski.com/?p=1408</guid>
		<description><![CDATA[A couple days ago Dustin brought a great site to my attention. It is called ScriptSrc.net and is located at: http://scriptsrc.net/. Using this site, a developer can easily locate and copy the latest stable version of their favorite library. This can be a real time saver in searching out the various library links. It would [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>A couple days ago Dustin brought a great site to my attention.  It is called ScriptSrc.net and is located at: <a href="http://scriptsrc.net/">http://scriptsrc.net/</a>. </p>
<p>Using this site, a developer can easily locate and copy the latest stable version of their favorite library.  This can be a real time saver in searching out the various library links.  It would be really nice if they also had associated elements like the sets of pre-constructed stylesheets for jQuery UI.  I keep a list here: <a href="http://www.stemkoski.com/jquery-ui-1-7-2-themes-list-at-google-code/">http://www.stemkoski.com/jquery-ui-1-7-2-themes-list-at-google-code/</a> but being able to get all of that information in one location would be fantastic.</p>
<p>Right now SrcriptSrc.net supports jQuery, jQuery UI, Chrome Frame, SwfObject, MooTools,m Prototype, YUI, Dojo, ExtJS, and Script.aculo.us.  All you have to do is find your library, click on the copy button, and you have on your clipboard all of the code required to embed the library.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.stemkoski.com/easily-find-the-latest-versions-of-javascript-libraries-at-google-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS3 Support for Internet Explorer 6, 7, and 8</title>
		<link>http://www.stemkoski.com/css3-support-for-internet-explorer-6-7-and-8/</link>
		<comments>http://www.stemkoski.com/css3-support-for-internet-explorer-6-7-and-8/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 18:14:51 +0000</pubDate>
		<dc:creator>Ryan Stemkoski</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[VML]]></category>

		<guid isPermaLink="false">http://www.stemkoski.com/?p=1402</guid>
		<description><![CDATA[Internet Explorer, the browser with the largest percentage of legacy users tends to lag far behind the other popular browsers in adopting new standards. This is like a double roundhouse kick to a web developer. There are a number of great JavaScript tools out there that help Internet Explorer 6 and even 7, and 8 [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Internet Explorer, the browser with the largest percentage of legacy users tends to lag far behind the other popular browsers in adopting new standards.  This is like a double  roundhouse kick to a web developer.  There are a number of great JavaScript tools out there that help Internet Explorer 6 and even 7, and 8 peform like a modern standards compliant browser. </p>
<p>Now thanks to a script you can get CSS3 support in the latest 3 versions of Internet Explorer with very little work.  I tested it out and it worked great for me, however, there are a few known bugs you should review before implementing it.   </p>
<p>You can get the script here: <a href="http://fetchak.com/ie-css3/" rel="nofollow" target="_blank">http://fetchak.com/ie-css3/</a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.stemkoski.com/css3-support-for-internet-explorer-6-7-and-8/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>2010 Yakima Advertising Federation Chinook Awards</title>
		<link>http://www.stemkoski.com/2010-yakima-advertising-federation-chinook-awards/</link>
		<comments>http://www.stemkoski.com/2010-yakima-advertising-federation-chinook-awards/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 16:29:37 +0000</pubDate>
		<dc:creator>Ryan Stemkoski</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Zipline]]></category>
		<category><![CDATA[Advertising Blogs]]></category>
		<category><![CDATA[Judges]]></category>
		<category><![CDATA[Judging]]></category>
		<category><![CDATA[SAF]]></category>
		<category><![CDATA[Spokane Adfed]]></category>
		<category><![CDATA[Spokane Advertising Federation]]></category>
		<category><![CDATA[YAF]]></category>
		<category><![CDATA[Yakima Advertising Federation]]></category>

		<guid isPermaLink="false">http://www.stemkoski.com/?p=1389</guid>
		<description><![CDATA[Zipline Interactive has been a participating member in Spokane Advertising Federation since we opened shop in 2005. Our team members have attended a number of programs, helped with events, sat on the SAF board, and even helped develop and host the SAF website.    We believe the SAF is an important resource for Spokane creatives. [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.stemkoski.com/wp-content/uploads/2010/02/photo.jpg"><img src="http://www.stemkoski.com/wp-content/uploads/2010/02/photo.jpg" alt="" title="photo" width="250" height="333" style="float:right;" /></a>Zipline Interactive has been a participating member in Spokane Advertising Federation since we opened shop in 2005.  Our team members have attended a number of programs, helped with events, sat on the SAF board, and even helped develop and host the SAF website.    </p>
<p>We believe the SAF is an important resource for Spokane creatives. The SAF helps to educate, inspire, and motivate our creative community.  This in turns raises the image of Spokane and all regional companies that rely on the SAF members for their marketing and advertising needs.</p>
<p>This year we had the privilege of hosting the judging for the Yakima Advertising Federation at our office on Madison Street here in Spokane.  It was a great event.  There were a number of good entries from both students and professionals.  </p>
<p>The judges for the event where:  <br />
Kevin Armstrong &#8211; Addison/Kimberly<br />
 Jesse Pierpoint &#8211; Pierpoint Design &#038; Branding <br />
Rick Hosmer &#8211; Klündt | Hosmer<br />
Ryan Stemkoski &#8211; Zipline Interactive</p>
<p>Judging took several grueling hours but in the end kings were crowned. We won’t share the winners now but hopefully once they are announced we can share some of this great work with you.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.stemkoski.com/2010-yakima-advertising-federation-chinook-awards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Analytics Not Tracking Data on Your Website? Could be a JavaScript Error.</title>
		<link>http://www.stemkoski.com/google-analytics-not-tracking-data-on-your-website-could-be-a-javascript-error/</link>
		<comments>http://www.stemkoski.com/google-analytics-not-tracking-data-on-your-website-could-be-a-javascript-error/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 19:01:53 +0000</pubDate>
		<dc:creator>Ryan Stemkoski</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.stemkoski.com/?p=1386</guid>
		<description><![CDATA[This fix wont solve all Google Analytics tracking problems but it does address a specific issue. Outside of this problem, there are many other issues including disabled cookies, disabled JavaScript etc. that cannot be helped or fixed. If you have an existing website and Google Analytics is installed properly but is not collecting data please [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.stemkoski.com/wp-content/uploads/2010/02/1246831917417792463.png"><img src="http://www.stemkoski.com/wp-content/uploads/2010/02/1246831917417792463.png" alt="" title="1246831917417792463" width="256" height="256" style="float:right;" /></a>This fix wont solve all Google Analytics tracking problems but it does address a specific issue.  Outside of this problem, there are many other issues including disabled cookies, disabled JavaScript etc. that cannot be helped or fixed. If you have an existing website and Google Analytics is installed properly but is not collecting data please read on.</p>
<p>I recently talked to a new customer with an existing website.  Her website was working great and was bringing in lots of business, however, no matter what she did she could not get Google Analytics to work on her website.  The website was well designed, and modern, the Google Analytics tracking code was installed properly and the code did not contain any errors.  I was perplexed so I started digging deeper.</p>
<h3>The Solution:</h3>
<p>After reviewing her code and analyzing her website I started reviewing the source code to see if some of the other JavaScript was somehow interfering with the Google Analytics.  This was not the problem, but the problem was directly related to JavaScript.  Some of the JavaScript code copy and pasted from another source contained a small syntax error.  This syntax error occurred early in the page and was preventing the rest of the on page JavaScript including Google Analytics from being executed.  The error, didn’t however effect the user experience and had gone unnoticed by her previous development company.  Once we repaired the issue Google Analytics begin to function as expected.</p>
<p>Note:  If you think this may be your problem I would suggest installing the web developer toolbar for Firefox.  It has a fantastic error and warning notification system that will help you find and debug these types of errors.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.stemkoski.com/google-analytics-not-tracking-data-on-your-website-could-be-a-javascript-error/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

