<?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>Patrick Tulskie &#187; status</title>
	<atom:link href="http://www.patricktulskie.com/tag/status/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.patricktulskie.com</link>
	<description>Building a Better Internet</description>
	<lastBuildDate>Wed, 16 Jun 2010 19:12:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Lessons from Twitter: Displaying Content from other Sites on your Own</title>
		<link>http://www.patricktulskie.com/2008/07/lessons-from-twitter-displaying-content-from-other-sites-on-your-own/</link>
		<comments>http://www.patricktulskie.com/2008/07/lessons-from-twitter-displaying-content-from-other-sites-on-your-own/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 15:10:49 +0000</pubDate>
		<dc:creator>Patrick Tulskie</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[status]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.patricktulskie.com/?p=11</guid>
		<description><![CDATA[I decided to start writing a little series of articles based on the lessons I&#8217;ve learned in writing code the uses twitter, using twitter itself, and just generally getting the most out of it.  This is the first one, and maybe there will be more depending on how I like it.
The Problem &#8211; Why You [...]]]></description>
			<content:encoded><![CDATA[<p>I decided to start writing a little series of articles based on the lessons I&#8217;ve learned in writing code the uses twitter, using twitter itself, and just generally getting the most out of it.  This is the first one, and maybe there will be more depending on how I like it.</p>
<p><strong>The Problem &#8211; Why You Should Care</strong></p>
<p>Other sites that you pull content from are not always going to be reliable.  They could be down, running slow, or some other possible problem.  If you are using something like twitter to display your status on your site but you have a lot of other content you want people to see then it would be wise to use client-side scripting to get the content.  You might be saying in your head &#8220;Oh but I have this sweet PHP script that does that for me.&#8221; but you should tell that voice in your head to shut up and just listen.</p>
<p><span id="more-11"></span></p>
<p><strong>The Solution&#8230;</strong></p>
<p>When you use server-side scripting then the server that is dishing out your website needs to go to the other (possibly) slow website.  If it&#8217;s waiting for this content then your user is waiting for your site to finish being generated server side and then sent to their browser.  This was a problem when twitter was doing its thing with the &#8220;fail whale&#8221; on a regular basis and was generally taking forever to display tweets.  This in turn was making my site very slow.  Realizing the problem, I took out the PHP widget that I had and replaced it with my own little creation that utilizes javascript and a tiny bit of PHP.</p>
<p><strong>Let&#8217;s take a look at how to do that&#8230;</strong></p>
<p>First thing you&#8217;re going to want to do is make a little div with some static text in it that gets killed when your stuff finishes loading.  You can make it kinda like this:</p>
<blockquote><p>&lt;div id=&#8221;twit_text&#8221;&gt;<br />
&lt;ul id=&#8221;twitter_update_list&#8221;&gt;&lt;li&gt;Waiting for Twitter.com to reply.  Please hold.&lt;/li&gt;&lt;/ul&gt;<br />
&lt;/div&gt;</p></blockquote>
<p>The ul in there will be replaced by the script which actually sits right on twitter&#8217;s servers.  This is pretty simple and basic stuff.  It is advisable to put some static content in there so that users know that something else is going to happen and you don&#8217;t have a blank spot on the page.  There is one other piece of magic that actually uses a little bit of PHP but not for the same purpose the other scripts use it for&#8230;</p>
<blockquote><p>&lt;?<br />
$currURL = currPageURL();</p>
<p>if (($currURL == &#8220;http://www.patricktulskie.com/&#8221;) || ($currURL == &#8220;http://patricktulskie.com/&#8221;))<br />
{<br />
echo &#8220;&lt;script type=\&#8221;text/javascript\&#8221; src=\&#8221;http://twitter.com/javascripts/blogger.js\&#8221;&gt;&lt;/script&gt;&#8221;;<br />
echo &#8220;&lt;script type=\&#8221;text/javascript\&#8221; src=\&#8221;http://twitter.com/statuses/user_timeline/PatrickTulskie.json?callback=twitterCallback2&amp;count=1\&#8221;&gt;&lt;/script&gt;&#8221;;<br />
}<br />
?&gt;</p></blockquote>
<p>This goes in the footer of the page to only load the javascript if the page you&#8217;re looking at is the index page.  You can modify the PHP to load on different pages but for my purposes I only want you to see the status on the index.  You can&#8217;t easily do this with a plugin because plugins are loaded entirely as the page loads.  The PHP above is in the very footer of the page and it only kicks off the javascript IF we&#8217;re on the index of the site AND after everything else on the page has already loaded.</p>
<p><strong>One Other Thing&#8230;</strong></p>
<p>I use this function to get the URL of the page.  You can put it in your wordpress theme&#8217;s functions or you can put it wherever you need it on your site.  It&#8217;s fairly reusable too.</p>
<blockquote><p>function currPageURL()<br />
{<br />
$pageURL = &#8216;http&#8217;;<br />
if ($_SERVER["HTTPS"] == &#8220;on&#8221;) {$pageURL .= &#8220;s&#8221;;}<br />
$pageURL .= &#8220;://&#8221;;<br />
if ($_SERVER["SERVER_PORT"] != &#8220;80&#8243;)<br />
{<br />
$pageURL .= $_SERVER["SERVER_NAME"].&#8221;:&#8221;.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];<br />
}<br />
else<br />
{<br />
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];<br />
}<br />
return $pageURL;<br />
}</p></blockquote>
<p><strong>I Hate Twitter</strong></p>
<p>Well thats fine.  I&#8217;m sure it doesn&#8217;t like you much either.  Regardless, this is a really basic usability concept that many people don&#8217;t seem to grasp or even think about when creating a website.  Say you want to pull news feeds from a Digg category using an RSS parser on your page.  You have other stuff on the page but this Digg box is in your sidebar.  If you don&#8217;t think about where the script is going to execute in relation to your page loading, then you&#8217;re going to have problems when Digg is running slow or is down.  For those of you who don&#8217;t want to get into a full blown ajax setup, or simply don&#8217;t know how to then this is a great work around that uses really minimal coding.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patricktulskie.com/2008/07/lessons-from-twitter-displaying-content-from-other-sites-on-your-own/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
