<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>derekfernholz.com</title>
	
	<link>http://derekfernholz.com</link>
	<description />
	<pubDate>Fri, 27 Feb 2009 21:38:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/dfdotcom" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>FOWA Miami 2009</title>
		<link>http://feedproxy.google.com/~r/dfdotcom/~3/INWW0i8wH7c/</link>
		<comments>http://derekfernholz.com/2009/02/27/fowa-miami-2009/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 08:24:20 +0000</pubDate>
		<dc:creator>derek</dc:creator>
		
		<category><![CDATA[Carsonified]]></category>

		<category><![CDATA[Conferences]]></category>

		<category><![CDATA[featured]]></category>

		<guid isPermaLink="false">http://derekfernholz.com/?p=62</guid>
		<description><![CDATA[In a blaze of glory and a whirlwind of a travel schedule I attended the Future of Web Apps conference in sunny Florida this week. As my schedule shows no signs of slowing right now, I will give you the short of it, with every hope of divulging full details in the near future!
Backstory
In an [...]]]></description>
			<content:encoded><![CDATA[<p>In a blaze of glory and a whirlwind of a travel schedule I attended the Future of Web Apps conference in sunny Florida this week. As my schedule shows no signs of slowing right now, I will give you the short of it, with every hope of divulging full details in the near future!<span id="more-62"></span></p>
<h3>Backstory</h3>
<p>In an amazing and lucky chain of events and due to the help of twitter, I secured a free pass to the conference and a place to stay. You see, <a href="http://propstm.com">Matt Propst</a>, <a href="http://twitter.com/jonathanbradley">@propstm</a> had some unfortunate luck this year in this fine economy of ours, and lost his job. He tweeted that he was running a contest to give away his ticket as he would be unable to afford the travel expenses of attending. The contest was in hopes that it would generate a bit of buzz and get him a lead or two for some new work. I entered and won (I may have been the only entrant, sadly).</p>
<p>Next up (this was about 2 weeks out from the conference), I realized I needed a place to stay, as I am not made of money either. I tweeted that I was going as a last minute thing and wondered if anyone had a spare couch or a room they would let me crash in, and as my luck would have it <a href="http://cakedojo.com">Jonathan Bradley</a>, <a href="http://twitter.com/jonathanbradley">@jonathanbradley</a>, responded and saved the day! He even picked me up at the airport (delayed flight and all)!</p>
<h3>The Trip</h3>
<p>I work for &#8216;the man&#8217; *cough* IBM *cough* and thus I have to ration my vacation time&#8230; being that, I took 1.5 days of vacation to go to Miami for a conference, leaving from Rochester Minnesota at 4pm on Monday and landing back here at 12pm on Wednesday.</p>
<p>My flight out of RST was about 10 minutes late, nothing too bad, got to Chicago (ORD) and my flight there was already delayed by 30 minutes (this was still ok, since I didn&#8217;t have to sprint over 2 concourses to make it), but then the delay just kept lengthening&#8230; The plane that we were to take just came in from an international flight and couldn&#8217;t clear customs for some reason, we finally boarded 1.5 hours late.</p>
<p>This put me in Miami at 11pm EST, I felt bad that Jonathan had to be inconvenienced this much, but am very thankful that he picked me up! We got back to his place, about 30 miles north (near Fort Lauderdale) and crashed out for the night. The next morning we got a little bit of a late start and then I saw the greatest traffic I&#8217;ve ever witnessed. Miami in the morning. Wow. It took us nearly 2 hours to go those 30 miles&#8230; but we made it!</p>
<h3>The Conference</h3>
<p><img src="http://farm4.static.flickr.com/3366/3312543069_4066453f50.jpg?v=0" alt="The man behind the curtain himself, Ryan Carson, and myself." /></p>
<p class="caption">The man behind the curtain himself, Ryan Carson, and myself.</p>
<p>Due to the traffic and lateness we regrettably missed Ryan Carson&#8217;s opening remarks and Jason Fried&#8217;s &#8220;Getting Real 2.0&#8243; (if you haven&#8217;t read the 37signals book <a href="http://gettingreal.37signals.com/toc.php">&#8220;Getting Real&#8221;</a>, Do It NOW!).</p>
<p>Next up we had a great talk from Dion Almaer of Google and Ben Galbraith of Mozilla about the Future of the Browser, so many amazing things are coming our way. Here&#8217;s to hoping we aren&#8217;t 10 years out from seeing some of it (I&#8217;m looking at you IE)!</p>
<p>Nothing too notable about the Open Strategy :: Applied talk by Dan Theurer of Yahoo!, could&#8217;ve been that his presentation didn&#8217;t work&#8230;</p>
<p><img src="http://farm4.static.flickr.com/3373/3313373258_5d3a9e92f6.jpg?v=0" alt="Joe Stump and Daniel Burka from Digg and Myself" /></p>
<p class="caption">Joe Stump and Daniel Burka from Digg and Myself</p>
<p>Right after our morning break we had Joe Stump of Digg telling us how we can Scale our Team, so many great points from that talk! Will definitely keep in close as things hopefully progress with <a href="http://socialsift.com">SocialSift</a>.</p>
<p>Not much to mention on Kristina Halvorson of Brain Traffic&#8217;s talk about web copy and why yours sucks&#8230; she mostly used it as a pulpit to push her personal agenda. Which don&#8217;t get me wrong, I have no problem with her wanting to get more women in technology and speaking, but she should&#8217;ve had a foundation or a plan. Don&#8217;t just state a problem and expect the world to solve it for you, not if you&#8217;re truly passionate.</p>
<p> <br />
<h3 style="display: inline;" id="update">Update:</h3>
<p id="update">If you look below (comments area) you will see that Kristina responded to this post. I will address some of it here and some down in the comments. I was quite tired and it was about 3am when I finished this post. I did forget to mention something from her talk.</p>
<p id="update">
After her initial presentation about copy, she had Ryan Carson and Chris Messina on stage to do an open discussion of the topic of &#8220;Futore of White Boys&#8221; and &#8220;Too few women are on the speaking circuit and in technology in general&#8221;. Their tentative solution, or jumping off points are:
</p>
<ul id="update">
<li id="update">Tag speaker ideas and offers with #fowaspeak </li>
<li id="update">Tweet and blog the challenge TODAY </li>
<li id="update">Ask speakers about how they got started </li>
<li id="update">Support your friends to speak up!</li>
</ul>
<p id="update">
    Now on to the comment response below (scroll with me).
</p>
<p> </p>
<p><img src="http://farm4.static.flickr.com/3659/3313371164_a6768f477f.jpg?v=0" alt="Aza Raskin, Myself, and Jason Fried of 37signals" /></p>
<p class="caption">Aza Raskin of Mozilla Labs, Myself, and Jason Fried of 37signals</p>
<p>Aza Raskin took the stage next and I being the huge nerd that I am just so happened to have his father&#8217;s book &#8220;The Humane Interface&#8221; in my bag. Aza is the Head of UI Design for Mozilla Labs and he gave a great talk called &#8220;Order from Chaos - Future of the web&#8221;. Really great stuff, per the usual, high level and thought provoking!</p>
<p>Facebook told us how to allow the users of our sites and web apps to be more social with Facebook Connect. Made some good points, but in my case, with all the reading I&#8217;ve been doing, they were things I already knew. Seems like a great guy though.</p>
<p>After lunch was the Phizzpop Design Challenge, some ridiculous ploy by, you guessed it, M$. Only 2 teams (although there were supposedly 3) competed to win an all expense paid trip to SXSW! I really wish I would&#8217;ve known about it, I would sell my soul and develop a silverlight demo site for that sort of reward. All that said, Team Phenomblue of the design agency of the <a href="http://phenomblue.com">same name</a> took home the &#8220;gold&#8221;. They had an interesting take on the challenge and presented what was basically a 401K for personal space travel, genius!</p>
<p>Joel Spolsky of Joel on Software, StackOverflow, and more notably FogCreek Software gave a presentation on how to achieve team nirvana. I personally look up to Joel, but I really disagreed on some of his takes on personal work ethic and hustle. One thing I will not disagree on is how he takes care of his developers at FogCreek!</p>
<p>Next up, we had Alex Hunter of Virgin speaking about &#8220;Brand 2.0&#8243;. I was confused when I first heard that he / that company had a speaker at the event, but he nailed it! He had some great points about how you need to really be cautious about what you put out there and what is associated with your name. People, not just media, controls what you&#8217;re viewed as in this world.</p>
<p><img src="http://farm4.static.flickr.com/3609/3313372848_3c6ea998ae.jpg?v=0" alt="The Game Changer! Francisco Tolmasky of 280North" /></p>
<p class="caption">The Game Changer! Francisco Tolmasky of 280North</p>
<p>After our final break of the day, we all had our minds blown and our pants slightly moistened, by Francisco Tolmasky of <a href="http://280north.com">280North</a>. He announce an open source book that they&#8217;re doing with O&#8217;Reilly, which is HUGE, but nothing compared to the bomb he dropped next. You MUST go to check out this <a href="http://280atlas.com" target="_blank">demo video</a>, go ahead, I&#8217;ll wait right here.</p>
<p>Now, wasn&#8217;t that incredible! I cannot wait for this to come out and am eagerly and rather impatiently awaiting the beta! This. Changes. Everything.</p>
<p>Then Ryan interviewed Jason Fried and Joel Spolsky about what makes them tick and how they became successful. Two very different guys, who pretty much disagree on everything. I, like I said, love Joel and what he&#8217;s accomplished, but my thoughts were siding with Jason on pretty much everything. He. Just. Gets it.</p>
<p><img src="http://farm4.static.flickr.com/3502/3313371618_516c7254c1.jpg?v=0" alt="Garyvee gets in close! Such a great man!" /></p>
<p class="caption">Garyvee gets in close! Such a great man!</p>
<p>Lastly, and in no way, shape, or form, least, We had, Gary Vay - Ner - Chuk! He completely killed it, bringing the passion and the true thunder that only he could! I came out of it ready to take on the world with nothing but a number 2 pencil and my whits. I was completely humbled and honored to meet him and that he recognized my name from the likes of Twitter, Seesmic, <a href="http://winelibrary.com">and WineLibrary.TV</a>.</p>
<p>I met a ton of people, had a great time, and will hopefully write more later (even though this is 10 times longer than I originally intended).</p>
<p>Keep an eye on my Flickr stream, down there, as I will be uploading my tons of pictures as the days go by.</p>
<p>Next up: TechStars for a Day in Boulder next week. Maybe see some of you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://derekfernholz.com/2009/02/27/fowa-miami-2009/feed/</wfw:commentRss>
		<feedburner:origLink>http://derekfernholz.com/2009/02/27/fowa-miami-2009/</feedburner:origLink></item>
		<item>
		<title>Review: IntenseDebate</title>
		<link>http://feedproxy.google.com/~r/dfdotcom/~3/u7rqjIql2aM/</link>
		<comments>http://derekfernholz.com/2008/11/13/review-intensedebate/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 21:37:00 +0000</pubDate>
		<dc:creator>derek</dc:creator>
		
		<category><![CDATA[Wordpress]]></category>

		<category><![CDATA[featured]]></category>

		<category><![CDATA[introducing]]></category>

		<category><![CDATA[IntenseDebate]]></category>

		<guid isPermaLink="false">http://derekfernholz.com/?p=52</guid>
		<description><![CDATA[Update: I just noticed that as of yesterday, 13 November 2008, that IntenseDebate is no longer restricted to invite-only registration! So head on over to their site and grab an account today! 
Yesterday I finally got an invite code for IntenseDebate and promptly installed it right here on my Wordpress blog. Here are my initial [...]]]></description>
			<content:encoded><![CDATA[<p id="update"><strong>Update:</strong> I just noticed that as of yesterday, 13 November 2008, that <a href="http://intensedebate.com">IntenseDebate </a>is no longer restricted to invite-only registration! So head on over to <a href="http://intensedebate.com/install">their site</a> and grab an account today! </p>
<p>Yesterday I finally got an invite code for <a title="Revolutionary Commenting System" href="http://intensedebate.com" target="_self">IntenseDebate</a> and promptly installed it right here on my Wordpress blog. Here are my initial thoughts.</p>
<h3>Installation</h3>
<p>The installation process for IntenseDebate was really quite straight forward and simple for Wordpress, seeing as they have made it a plugin. For those of you familiar with WP and the use of plugins will have no problems installing this system. you simply download the plugin zip file, unzip, upload to your plugins directory, and activate. Then it&#8217;s just a matter of modifying a few settings (I left everything pretty much stock) and taking a look on your site to see how it looks.<span id="more-52"></span></p>
<p>That&#8217;s the simplified version, what I left out is, you have to let IntenseDebate &#8216;grab&#8217; all the existing comments off of your site before it is fully installed. This process could take awhile if you have a well established blog with years of comments to sync. Being as I just relaunched mine about 2 months ago and I have relatively sparse comments, this process only took a few minutes to complete.</p>
<p>Also, a note in the way of compatibility with your theme: My theme is a completely one-off design / implementation by me, and as such, my styling for the unordered lists (&lt;ul&gt;) and list items (&lt;li&gt;) got in the way just a bit. You see, all of the comment elements, or most of them, are contained in an unordered list, well, contained in a lot of little unordered lists. My styling for the lists in my main content area, where the comments also reside, caused my comments to elements to have some residual images from the bullet point styling that I had included.</p>
<p><a href="http://derekfernholz.com/wp-content/uploads/2008/11/intensedebate-ghosting.png"><img class="screenshot" title="intensedebate-ghosting" src="http://derekfernholz.com/wp-content/uploads/2008/11/intensedebate-ghosting.png" alt="With ghosting, before CSS tweak" /></a></p>
<p id="img-caption">With ghosting, before CSS tweak <small>(notice the &#8216;glowing&#8217; circles around them)</small></p>
<p><a href="http://derekfernholz.com/wp-content/uploads/2008/11/intensedebate-ghostingfix.png"><img class="screenshot" title="intensedebate-ghostingfix" src="http://derekfernholz.com/wp-content/uploads/2008/11/intensedebate-ghostingfix.png" alt="Without ghosting, after CSS tweak" /></a></p>
<p id="img-caption">Without ghosting, after CSS tweak</p>
<h3>Notable Features</h3>
<p>There are so many features included into IntenseDebate that I haven&#8217;t even had the chance to touch yet. I am just going to name a few of my favorites so far.</p>
<ul>
<li>Slick Interface / Layout - I really like the way that the comments are displayed on the page. The incorporation of the different elements is seamless and non-obtrusive, yielding a very pleasant and intuitive user experience.</li>
<li>Threaded Comments - This feature works similar to a lot of other systems, most notably, <a title="Social News" href="http://digg.com" target="_self">Digg</a>. This means that users can truly have a conversation in your comments, which greatly adds to the community feel of any site.</li>
<li>Rating System - I don&#8217;t think that this feature needs much of an explanation, there are &#8216;thumbs up&#8217; and &#8216;thumbs down&#8217; (digg or bury anyone?) links on the right side of a comment that allow the user to voice whether they think that the particular comment is relevant, poignant, etc. The only problem that I potentially see with this is, with such a small user base, will arbitrary ratings mess with the overall delivery of the comments? I guess only time will tell.</li>
<li>Report Comment - The ability to have your community evaluate / moderate comments could be a huge plus / weight lifted, for the owner of the site. Given the great community that seems to develop around these &#8216;Tech-centric&#8217; blogs, I feel that this feature can and will be <strong>huge</strong>!</li>
<li>OpenID Support - Integrating OpenID support might seem like a no-brainer to some, but I think that IntenseDebate &#8217;shipping&#8217; with this feature is ingenious! Also, now that Google has made all Gmail addresses work as OpenID&#8217;s, this will only make it easier for users to be a logged in member of the discussion.</li>
</ul>
<h3>Final, Initial Thoughts</h3>
<p>After playing around with this system, even for just a short period of time, I can see that this will prove highly useful to me and others. I can honestly say though, that this would be far more useful for a site that has a large readership, but, that is also what I hope to grow this into.</p>
<p>Also, it should be known, that <a title="Automagic" href="http://automattic.com" target="_self">Automattic</a>, the company behind <a title="Blogging Platform and then some" href="http://wordpress.com" target="_self">Wordpress</a> and Akismet, has <a title="Dreams do come true" href="http://blog.intensedebate.com/2008/09/23/automattic-acquires-intensedebate/" target="_self">acquired</a> this little startup and I can only imagine that it will be fully integrated into a future release near you.</p>
<p>How important is commenting to you? Do you think the features that I&#8217;ve outlined make a difference over the default system? I&#8217;d love to hear your thoughts!</p>
]]></content:encoded>
			<wfw:commentRss>http://derekfernholz.com/2008/11/13/review-intensedebate/feed/</wfw:commentRss>
		<feedburner:origLink>http://derekfernholz.com/2008/11/13/review-intensedebate/</feedburner:origLink></item>
		<item>
		<title>Testing: Pingie Widget</title>
		<link>http://feedproxy.google.com/~r/dfdotcom/~3/ZW73AyuKdjE/</link>
		<comments>http://derekfernholz.com/2008/10/31/testing-pingie-widget/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 14:46:16 +0000</pubDate>
		<dc:creator>derek</dc:creator>
		
		<category><![CDATA[Plugin]]></category>

		<category><![CDATA[introducing]]></category>

		<guid isPermaLink="false">http://derekfernholz.com/?p=48</guid>
		<description><![CDATA[I &#8216;borrowed&#8217; this widget from the sidebar of Paul Stamatiou&#8217;s blog, changing the feed link of course and I want to see if it works for me. You&#8217;ll see now, in the sidebar to the right and near the bottom, that you can subscribe to this blog via SMS. This means, that if everything works [...]]]></description>
			<content:encoded><![CDATA[<p>I &#8216;borrowed&#8217; this widget from the sidebar of <a title="Stammy's Blog" href="http://pstam.com">Paul Stamatiou&#8217;s blog</a>, changing the feed link of course and I want to see if it works for me. You&#8217;ll see now, in the sidebar to the right and near the bottom, that you can subscribe to this blog via SMS. This means, that if everything works the way I think it does, You&#8217;ll get a text message when I post this.</p>
]]></content:encoded>
			<wfw:commentRss>http://derekfernholz.com/2008/10/31/testing-pingie-widget/feed/</wfw:commentRss>
		<feedburner:origLink>http://derekfernholz.com/2008/10/31/testing-pingie-widget/</feedburner:origLink></item>
		<item>
		<title>I Want a Golden Ticket</title>
		<link>http://feedproxy.google.com/~r/dfdotcom/~3/KmBa6AOqAfc/</link>
		<comments>http://derekfernholz.com/2008/09/26/i-want-a-golden-ticket/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 02:02:36 +0000</pubDate>
		<dc:creator>derek</dc:creator>
		
		<category><![CDATA[Carsonified]]></category>

		<category><![CDATA[Dream]]></category>

		<category><![CDATA[Golden Ticket]]></category>

		<category><![CDATA[featured]]></category>

		<category><![CDATA[Future of]]></category>

		<guid isPermaLink="false">http://derekfernholz.com/?p=38</guid>
		<description><![CDATA[

Who can take a sunrise, Sprinkle it with dew&#8230;
Cover it in chocolate and a miracle or two? The Candyman of course, and in this case that Candyman is Carsonified. I&#8217;m writing this in response to a recent post by Ryan Carson over on the Carsonified blog about a contest they are having. This contest is [...]]]></description>
			<content:encoded><![CDATA[<p><center><a href="http://www.carsonified.com/events/carsonified-golden-ticket"><img class="size-full wp-image-39" src="http://derekfernholz.com/wp-content/uploads/2008/09/golden-ticket.jpg" alt="Carsonified Golden Ticket" width="500" height="320" /></a></center></p>
<div style="clear:both"></div>
<h3>Who can take a sunrise, Sprinkle it with dew&#8230;</h3>
<p>Cover it in chocolate and a miracle or two? The Candyman of course, and in this case that Candyman is <a title="The Candyman" href="http://carsonified.com">Carsonified</a>. I&#8217;m writing this in response to a recent <a title="Golden Ticket" href="http://www.carsonified.com/events/carsonified-golden-ticket">post</a> by Ryan Carson over on the Carsonified blog about a <a title="Golden Ticket" href="http://www.carsonified.com/events/carsonified-golden-ticket">contest</a> they are having. This contest is HUGE!<span id="more-38"></span></p>
<h3>Summing it up</h3>
<p>The crux of this contest is that an entrant (ie ME), writes a post, drums up 25 comments on said post, and then submits the link to this post to Carsonified. Then, at random, October 2nd at 5pm London Time (live on UStream.tv), they will draw one name to receive the most amazing prize! This prize is an all expense paid trip to one of the many Caronified events, not to mention a free ticket to all of the 2009 events!</p>
<h3>Why the Hype?</h3>
<p>I dream about this! Ever since the first time I heard about one of the Carsonified &#8220;Future of&#8221; events, I&#8217;ve wanted to attend. Being from the Midwest, USA and having a passion for Web Development and the future of the internet is not the ideal match. I crave being around like minded people. I would love the chance to &#8216;feed&#8217; off of the energy and passion of the people that both attend and present at these events!</p>
<h3>What do I need from you?</h3>
<p>Help me attain my dream! How can you do this? Leave me a comment on this post! Please? From the rules of the <a title="Golden Ticket" href="http://www.carsonified.com/events/carsonified-golden-ticket">contest</a>, I need 25 unique, no-spam comments from real individuals (ie YOU). So, I am asking, nay, begging you to assist me in this very small, but coincidentally HUGE way, and I will help you in any way that I can in return. Ask! I will help in any way, shape, or form that I possibly can!</p>
]]></content:encoded>
			<wfw:commentRss>http://derekfernholz.com/2008/09/26/i-want-a-golden-ticket/feed/</wfw:commentRss>
		<feedburner:origLink>http://derekfernholz.com/2008/09/26/i-want-a-golden-ticket/</feedburner:origLink></item>
		<item>
		<title>TweetFeed Plugin Released</title>
		<link>http://feedproxy.google.com/~r/dfdotcom/~3/vbwxPQARgPM/</link>
		<comments>http://derekfernholz.com/2008/09/19/tweetfeed-plugin-released/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 04:18:26 +0000</pubDate>
		<dc:creator>derek</dc:creator>
		
		<category><![CDATA[Plugin]]></category>

		<category><![CDATA[TweetFeed]]></category>

		<category><![CDATA[coding]]></category>

		<category><![CDATA[featured]]></category>

		<category><![CDATA[introducing]]></category>

		<category><![CDATA[Twitter Wordpress Plugin]]></category>

		<guid isPermaLink="false">http://derekfernholz.com/?p=33</guid>
		<description><![CDATA[I&#8217;m going to keep this one short and sweet. I spent a little bit of time (when I wasn&#8217;t working) over the last week and turned that little script I mentioned in the last post into a full blown wordpress plugin with a working settings page and everything! This is my first plugin, but I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going to keep this one short and sweet. I spent a little bit of time (when I wasn&#8217;t working) over the last week and turned that little script I mentioned in the last <a title="TweetFeed Original Script Post" href="http://derekfernholz.com/2008/09/10/really-simple-tweet-gathering-with-a-few-bonuses/">post</a> into a full blown wordpress plugin with a working settings page and everything! This is my first plugin, but I did test it quite a bit. Obviously, if you run into any issues in using it, do not hesitate to contact me by leaving a comment on this post.<span id="more-33"></span></p>
<p><center><a href="http://derekfernholz.com/wp-content/uploads/2008/09/picture-3.png"><img class="aligncenter size-full wp-image-34" title="TweetFeed Settings Page" src="http://derekfernholz.com/wp-content/uploads/2008/09/picture-3.png" alt="" width="500" height="332" /></a></center></p>
<p>This plugin consists of 4 configurable options settings:</p>
<ol>
<li>Set you cache time, if you do not set one, it will default to 1 minute. 1 minute is the smallest value that this will accept. This is to make sure that you do not exceed the 100 requests per hour limit on <a title="Tweet Tweet" href="http://twitter.com">Twitter&#8217;s API</a> and it makes things simpler on the backend.</li>
<li>Make links clickable. This option will turn any text that starts with http:// into an actual html link, otherwise it would just come through as plain text.</li>
<li>Make usernames clickable. This option takes any string that starts with the &#8216;@&#8217; symbol and is longer than 1 character, and turns it into a link to that user&#8217;s twitter profile page (ie @theunlivedlife becomes http://twitter.com/theunlivedlife).</li>
<li>Display @ replies. This option is one I was really attimate about getting implemented. I don&#8217;t think that people coming to my blog need to know who I&#8217;m saying what to, I want them to see what I&#8217;m doing (the question twitter aims to answer). Other&#8217;s may say that they want a feed of what is the most current from their twitter feed and that&#8217;s an option too.</li>
</ol>
<h3>Where can you get it?</h3>
<p>I am hosting this plugin on my server for the time being until I test out the waters on how desirable it is. So if you want to get your hands on it for your own use, go <a title="TweetFeed Download Link" href="http://lab.derekfernholz.com/plugin/tweetfeed.zip">here.</a></p>
<h3>I got it, now what?</h3>
<ol>
<li>Extract the file.</li>
<li>Upload the TweetFeed folder to your Wordpress Plugins directory.</li>
<li>Go to your plugins section in your Wordpress Dashboard and Activate TweetFeed</li>
<li>Now go to the settings area and click on the TweetFeed link.</li>
<li>Enter in your Twitter username and configure your options to suit you and click Update Options.</li>
<li>Now the only &#8216;code&#8217; related thing you have to do. Simply put, &lt;?php do_action(&#8217;get_twitter_message&#8217;); ?&gt; wherever you want your tweets to be displayed. Done!</li>
</ol>
<p>Since this is just pulling in the text (and optionally links) you can easily put this in a &lt;div&gt; or &lt;p&gt; element and style it to suit your needs in CSS.</p>
<p>I can&#8217;t wait to see what you guys do with this. What other options could you see being useful for something like this? What plugins do you think are missing currently or could be done better or differently?</p>
]]></content:encoded>
			<wfw:commentRss>http://derekfernholz.com/2008/09/19/tweetfeed-plugin-released/feed/</wfw:commentRss>
		<feedburner:origLink>http://derekfernholz.com/2008/09/19/tweetfeed-plugin-released/</feedburner:origLink></item>
		<item>
		<title>Really Simple Tweet Gathering (with a few bonuses)</title>
		<link>http://feedproxy.google.com/~r/dfdotcom/~3/D1iUgURu6HY/</link>
		<comments>http://derekfernholz.com/2008/09/10/really-simple-tweet-gathering-with-a-few-bonuses/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 22:02:26 +0000</pubDate>
		<dc:creator>derek</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Plugin]]></category>

		<category><![CDATA[Widget]]></category>

		<category><![CDATA[Wordpress]]></category>

		<category><![CDATA[coding]]></category>

		<category><![CDATA[introducing]]></category>

		<guid isPermaLink="false">http://derekfernholz.com/?p=17</guid>
		<description><![CDATA[Update:
I just realized that for some reason the wp-syntax plugin has converted a bunch of my characters to their HTML equivalents. I will go through and try to fix that later. For now, take it with a grain of salt. I will upload the file later and put a &#60;link here&#62;. Thanks and Enjoy!
Preface:
I wrote [...]]]></description>
			<content:encoded><![CDATA[<h3>Update:</h3>
<p>I just realized that for some reason the wp-syntax plugin has converted a bunch of my characters to their HTML equivalents. I will go through and try to fix that later. For now, take it with a grain of salt. I will upload the file later and put a &lt;link here&gt;. Thanks and Enjoy!</p>
<h3>Preface:</h3>
<p>I wrote this simple script / plugin so that I could get my latest tweet from twitter to display on my blog (right over there &rarr; in the sidebar). I know, I know, there are plenty of prepackaged and readily available plugins for twitter on wordpress in the wild, but none of them did things the way I wanted them to be done. Some allowed you to tweet directly from you blog, I don&#8217;t want that. So were quite intrusive and bore quite the burden on the page loading, you couldn&#8217;t possibly want that. The best one I found was a plugin called Simple Twitter, and as the name so succinctly states, it&#8217;s incrediby simple. I found this one to be nearly what I wanted, which is why I used it as a &#8220;jumping off point&#8221; for the script I&#8217;m presenting here, but it lacked a couple of key functionalities that I wanted.<span id="more-17"></span></p>
<ul>
<li>I wanted just my tweet to be displayed</li>
<li>I wanted only regular tweets, not @replies, to come through</li>
<li>I wanted links to be actually clickable (really the only point of a link)</li>
<li>I wanted other twitter usernames to link to their respective twitter pages</li>
</ul>
<p>Through a little ingenuity and a couple hours of time I have come up with this solution. I present to you, sTwitter. Let me walk you through it!</p>
<h3>Code Rundown</h3>
<p>I chose to wrap this script in a class for extensibility&#8217;s sake and ease of use. My implementation on my website simply includes this file and these first 3 lines create a new instance of the class, sets a variable, and then calls the function that runs the show. At the end of it&#8217;s execution the code will echo or print out the tweet, I simply wrapped this include in a paragraph (&lt;p&gt;) tag and then formatted that in CSS to display my tweet as I see fit.</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000088;">$t</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> stwitter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #000088;">$t</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">last</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span>;
<span style="color: #000088;">$t</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_twitter_msg</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> stwitter <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000088;">$page</span>;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000088;">$last</span>;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000088;">$msg</span>;</pre></div></div>

<p>This first section is essentially the &#8216;main&#8217; function of the script, it&#8217;s the one called by whatever it is you choose to have call it, so that the tweet can be returned. It in turn calls the functions necessary to get that done.</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Returns the stored message</span>
<span style="color: #000000; font-weight: bold;">function</span> get_twitter_msg<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">//get the next message from your twitter rss feed</span>
	<span style="color: #000088;">$msg</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">update_twitter_message</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #666666; font-style: italic;">//check to see if it is an @ reply - I didn't want to display</span>
	<span style="color: #666666; font-style: italic;">//@ replies so if you do, remove this check.</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$msg</span><span style="color: #009900;">&#91;</span><span style="color:#800080;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="">'@'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$msg</span><span style="color: #009900;">&#41;</span>;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_twitter_msg</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #009900;">&#125;</span>
	<span style="color: #666666; font-style: italic;">//This is the bit of logic that changes things into appropriate links</span>
	<span style="color: #666666; font-style: italic;">//first we 'explode' the message by the spaces, this puts each word</span>
	<span style="color: #666666; font-style: italic;">//or group of characters into an array, see php.net/explode</span>
	<span style="color: #000088;">$msg_chunks</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$msg</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #666666; font-style: italic;">//now I parse through that array and examine each of the 'words'</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$msg_chunks</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$chunk</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//is this a twitter username? if it starts with '@'</span>
		<span style="color: #666666; font-style: italic;">//and is longer than 1 character I make it link to that</span>
		<span style="color: #666666; font-style: italic;">//user's twitter page</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$chunk</span><span style="color: #009900;">&#91;</span><span style="color:#800080;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="">'@'</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$chunk</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$out_msg</span> <span style="color: #339933;">.=</span> <span style="">' &lt;a href=&quot;http://twitter.com/'</span> <span style="color: #339933;">.</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$chunk</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="">'&quot;&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$chunk</span> <span style="color: #339933;">.</span> <span style="">'&lt;/a&gt; '</span>;
		<span style="color: #009900;">&#125;</span>
		<span style="color: #666666; font-style: italic;">//is this a link? Does it contain 'http://' in the string?</span>
		<span style="color: #666666; font-style: italic;">//if so, I make it into an actual clickable link to that page</span>
		<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">strstr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$chunk</span><span style="color: #339933;">,</span> <span style="">'http://'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$out_msg</span> <span style="color: #339933;">.=</span> <span style="">' &lt;a href=&quot;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$chunk</span> <span style="color: #339933;">.</span> <span style="">'&quot;&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$chunk</span> <span style="color: #339933;">.</span> <span style="">'&lt;/a&gt; '</span>;
		<span style="color: #009900;">&#125;</span>
		<span style="color: #666666; font-style: italic;">//if you make it this far you're probably just a 'word'</span>
		<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$out_msg</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot; &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$chunk</span>;
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #666666; font-style: italic;">//'print' out the tweet</span>
	<span style="color: #990000;">echo</span> <span style="color: #000088;">$out_msg</span>;
	<span style="color: #666666; font-style: italic;">//unset all the variables, this is needed due to the recursion of this function</span>
	<span style="color: #666666; font-style: italic;">//and it's good practice, don't leave those remnants behind</span>
	<span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$out_msg</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">page</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">last</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>The update_twitter_message function takes the username for the twitter account that you&#8217;re trying to gather tweets from and uses it to concatenate the correct URL for that user&#8217;s RSS feed. It then calls the function to get the tweet and also the function that strips off the username (which is included in the returned string). Then the tweet is returned up to the fuction above.</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Updates the message cache</span>
<span style="color: #000000; font-weight: bold;">function</span> update_twitter_message<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// Update cache</span>
	<span style="color: #000088;">$twitterId</span> <span style="color: #339933;">=</span> <span style="">'theunlivedlife'</span>; <span style="color: #666666; font-style: italic;">//this is where your Twitter ID should go</span>
	<span style="color: #666666; font-style: italic;">//make sure that there is a twitter id that is not 'null'</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$twitterId</span> <span style="color: #339933;">!=</span> <span style="">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//$url is the link to the user's public rss feed</span>
		<span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="">'http://twitter.com/statuses/user_timeline/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$twitterId</span><span style="color: #339933;">.</span><span style="">'.rss'</span>;
		<span style="color: #666666; font-style: italic;">//fetch the next tweet from this rss feed</span>
		<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_message_from_url</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span>;
		<span style="color: #666666; font-style: italic;">//if it finds a title in the feed</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span> <span style="color: #339933;">!=</span> <span style="">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">//chop off the username from the beginning of the string</span>
			<span style="color: #000088;">$msg</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">extract_message_from_twitter_title</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span>;
			<span style="color: #b1b100;">return</span> <span style="color: #000088;">$msg</span>;
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>This is a pretty self explanatory function, strips off the Username.</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Message comes in the format 'Name : Message'. This removes the 'Name : ' part</span>
<span style="color: #000000; font-weight: bold;">function</span> extract_message_from_twitter_title<span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$msg</span> <span style="color: #339933;">=</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #339933;">,</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #339933;">,</span> <span style="">':'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$msg</span>;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>This function iterates through the &#8216;page&#8217; which on the first run through, is all of the user&#8217;s latest tweets. However, on each execution of this function that page gets trimmed down, one tweet at a time, until we arrive at the latest tweet that is not an @ reply.</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Gets the RSS feed and handles its business</span>
<span style="color: #000000; font-weight: bold;">function</span> get_message_from_url<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #339933;">,</span> <span style="color: #000088;">$tag</span> <span style="color: #339933;">=</span> <span style="">'title'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$item</span> <span style="color: #339933;">=</span> <span style="">'item'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$msg</span> <span style="color: #339933;">=</span> <span style="">''</span>;
&nbsp;
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">page</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_page</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">page</span> <span style="color: #339933;">==</span> <span style="">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="">''</span>;
	<span style="color: #009900;">&#125;</span>
	<span style="color: #666666; font-style: italic;">//behind the scenes is an xml-like data set, this sets what tags to be</span>
	<span style="color: #666666; font-style: italic;">//looking for when parsing through the data on the feed</span>
	<span style="color: #000088;">$itemTag</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;$item&gt;&quot;</span>;
	<span style="color: #000088;">$startTag</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;$tag&gt;&quot;</span>;
	<span style="color: #000088;">$endTag</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;/$tag&gt;&quot;</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">//this was a hack, changed from Simple Twitter, since I'm iterating</span>
	<span style="color: #666666; font-style: italic;">//through the feed to find the latest non @ reply I'm doing things</span>
	<span style="color: #666666; font-style: italic;">//a bit differently, see below - will be changed in future</span>
	<span style="color: #000088;">$inItem</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">true</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">//this was used before, but then I found a different way around</span>
	<span style="color: #666666; font-style: italic;">//will change in the future</span>
	<span style="color: #000088;">$offset</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">last</span>;
	<span style="color: #666666; font-style: italic;">//calls a function that can find the nth position of a string in a string</span>
	<span style="color: #000088;">$titlePos</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">strposOffset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$itemTag</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">page</span><span style="color: #339933;">,</span> <span style="color: #000088;">$offset</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #666666; font-style: italic;">//truncate the page data to 6 characters after the found string start</span>
	<span style="color: #666666; font-style: italic;">//this makes sure that next time we iterate through, if this was an</span>
	<span style="color: #666666; font-style: italic;">//@ reply, that we skip over it, because the tag we searched for is gone</span>
	<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">page</span> <span style="color: #339933;">=</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">page</span><span style="color: #339933;">,</span> <span style="color: #000088;">$titlePos</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #666666; font-style: italic;">//break up the page into lines in an array</span>
	<span style="color: #000088;">$lines</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">page</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #666666; font-style: italic;">//parse through the array to find the actual tweet</span>
	<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$lines</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$s</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$s</span> <span style="color: #339933;">=</span> <span style="color: #990000;">rtrim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$s</span><span style="color: #009900;">&#41;</span>;
			<span style="color: #666666; font-style: italic;">//not needed anymore, will be removed in next revision</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$s</span><span style="color: #339933;">,</span> <span style="color: #000088;">$itemTag</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$inItem</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">true</span>;
			<span style="color: #009900;">&#125;</span>
			<span style="color: #666666; font-style: italic;">//condition unnecessary, will be removed in next revision</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$inItem</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$msg</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$s</span>;
			<span style="color: #009900;">&#125;</span>
			<span style="color: #666666; font-style: italic;">//did we locate the start and end of the tag in question?</span>
			<span style="color: #666666; font-style: italic;">//if so, strip out the tweet and save it to $msg</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$inItem</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$s</span><span style="color: #339933;">,</span> <span style="color: #000088;">$endTag</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$msg</span> <span style="color: #339933;">=</span> <span style="color: #990000;">substr_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$msg</span><span style="color: #339933;">,</span> <span style="">''</span><span style="color: #339933;">,</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$msg</span><span style="color: #339933;">,</span> <span style="color: #000088;">$endTag</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
				<span style="color: #000088;">$msg</span> <span style="color: #339933;">=</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$msg</span><span style="color: #339933;">,</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$msg</span><span style="color: #339933;">,</span> <span style="color: #000088;">$startTag</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$startTag</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
				<span style="color: #b1b100;">break</span>; <span style="color: #666666; font-style: italic;">//hop out of the for each since we're done</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
	<span style="color: #666666; font-style: italic;">//return the tweet to the calling function</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$msg</span>;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>This function merely gets the page of data from the user&#8217;s twitter RSS feed and sets it as a public class variable. This way all members can interact with it and the script won&#8217;t cause you to burn through the 100 requests per hour cap that twitter has enforced.</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//Using the PHP Client URL functions, fetch the rss feed for a particular</span>
<span style="color: #666666; font-style: italic;">//twitter user account</span>
<span style="color: #000000; font-weight: bold;">function</span> get_page<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">page</span> <span style="color: #339933;">=</span> <span style="">''</span>;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="">'curl_init'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$curl_session</span> <span style="color: #339933;">=</span> curl_init<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span>;
		curl_setopt<span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_session</span><span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>;
		curl_setopt<span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_session</span><span style="color: #339933;">,</span> CURLOPT_CONNECTTIMEOUT<span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span>;
		curl_setopt<span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_session</span><span style="color: #339933;">,</span> CURLOPT_TIMEOUT<span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span>;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">page</span> <span style="color: #339933;">=</span> curl_exec<span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_session</span><span style="color: #009900;">&#41;</span>;
		curl_close<span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl_session</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h3>Wrap Up:</h3>
<p>This was a fun little project and I think it might have legs. You&#8217;ll have to be the judge of that. I have plans to turn it into an actual Wordpress Plugin and make the &#8216;bonuses&#8217; that I spoke of optional / configurable.</p>
<p>What do you see as a benefit to widgets or addons like this?</p>
]]></content:encoded>
			<wfw:commentRss>http://derekfernholz.com/2008/09/10/really-simple-tweet-gathering-with-a-few-bonuses/feed/</wfw:commentRss>
		<feedburner:origLink>http://derekfernholz.com/2008/09/10/really-simple-tweet-gathering-with-a-few-bonuses/</feedburner:origLink></item>
		<item>
		<title>From the Ashes</title>
		<link>http://feedproxy.google.com/~r/dfdotcom/~3/LwQXSivuLL0/</link>
		<comments>http://derekfernholz.com/2008/09/07/from-the-ashes/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 02:51:57 +0000</pubDate>
		<dc:creator>derek</dc:creator>
		
		<category><![CDATA[featured]]></category>

		<category><![CDATA[introducing]]></category>

		<guid isPermaLink="false">http://derekfernholz.com/?p=6</guid>
		<description><![CDATA[Hello all and welcome!
As you can see, things are looking a bit different around here, both the layout/design and the actual domain name itself. I am taking things in a new direction and wanted to officially welcome you to my new home on the internet! Here I will be writing Tech Reviews, How To&#8217;s, and [...]]]></description>
			<content:encoded><![CDATA[<p>Hello all and welcome!</p>
<p>As you can see, things are looking a bit different around here, both the layout/design and the actual domain name itself. I am taking things in a new direction and wanted to officially welcome you to my new home on the internet! Here I will be writing Tech Reviews, How To&#8217;s, and Posting things that I find interesting or new from all around.<span id="more-6"></span></p>
<p>This is my first Wordpress theme and I have to say that I am really pleased with it. I will be adjusting and tweaking in in the coming days / weeks, so be patient, but the main aspects will remain the same.</p>
<h3>Brief Walkthough</h3>
<ul>
<li>Up top you see a picture of myself and a brief about snippet.</li>
<li>Just beneath that is your standard navigation.</li>
<li>The main content area is just that, you will see the intro of the latest posts on the main page and the body of the entire post on each individual posts page.</li>
<li>The sidebar to the right will be one area that&#8217;s changing a bit, but you will find:
<ul>
<li>my latest <a href="http://twitter.com/theunlivedlife">Tweet</a> and <a href="http://twittercounter.com">Twittercounter</a></li>
<li> a reserved section just in case someone decides they want to advertise on my site (*hint *hint) there are two spots available - each 150px X 150px</li>
<li> next to that there is a widget for a brilliant new service, <a title="Tshirt Search Engine" href="http://pleasedress.me">pleasedressme</a>, from <a href="http://ajvaynerchuk.com">AJ Vaynerchuk</a>, <a href="http://garyvaynerchuk.com">Gary Vaynerchuk</a>, and <a href="http://joestump.net">Joe Stump</a>(all three are incredible guys, if you don&#8217;t know that already, read around the web and see for yourselves)</li>
<li>Below that currently I am including a section for featured and recent posts, but this may change</li>
</ul>
</li>
<li>Lastly, but certainly not last in importance is my footer section, here I have included(which may be subject to change):
<ul>
<li>Left, A section for links to other projects or sites that I have around the web</li>
<li>Middle, A smattering of different social sites that you can find me and <strong>friend</strong> me up on!</li>
<li>Right, The latest 4 photos from my flickr account</li>
</ul>
</li>
</ul>
<p>So, Now that I have walked you through somewhat of a senseless (to most of you) rundown of my site, I hope you&#8217;ll stick around and enjoy the content that I will be sending your way. Feel free to <a title="Rss Feed" href="feed://http//derekfernholz.com/feed/">subscribe</a> to or just bookmark this site!</p>
<p>Thanks again and I look forward to hearing your thoughts on what I&#8217;m doing here and where this site is heading (blatant hint for comments).</p>
<p>What&#8217;s your latest venture?</p>
]]></content:encoded>
			<wfw:commentRss>http://derekfernholz.com/2008/09/07/from-the-ashes/feed/</wfw:commentRss>
		<feedburner:origLink>http://derekfernholz.com/2008/09/07/from-the-ashes/</feedburner:origLink></item>
	</channel>
</rss>
