<?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>140dev &#187; Custom Twitter Client</title>
	<atom:link href="http://140dev.com/twitter-api-programming-blog/category/custom-twitter-client/feed/" rel="self" type="application/rss+xml" />
	<link>http://140dev.com</link>
	<description>Twitter API Programming Tips, Tutorials, Source Code Libraries and Consulting</description>
	<lastBuildDate>Wed, 31 Jul 2019 10:03:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
		<item>
		<title>The simplest Twitter OAuth tutorial possible</title>
		<link>http://140dev.com/twitter-api-programming-blog/the-simplest-twitter-oauth-tutorial-possible/</link>
		<comments>http://140dev.com/twitter-api-programming-blog/the-simplest-twitter-oauth-tutorial-possible/#comments</comments>
		<pubDate>Mon, 15 Nov 2010 01:25:25 +0000</pubDate>
		<dc:creator>Adam Green</dc:creator>
				<category><![CDATA[Automated Tweets]]></category>
		<category><![CDATA[Custom Twitter Client]]></category>
		<category><![CDATA[Twitter API Tutorials]]></category>
		<category><![CDATA[Twitter OAuth]]></category>

		<guid isPermaLink="false">http://140dev.com/?p=994</guid>
		<description><![CDATA[There is something about OAuth that brings out the worst in techies. You can see it when someone asks how to get started with OAuth on the Twitter development talk mailing list. The general response is &#8220;get a copy of library X, and you&#8217;re all set.&#8221; Well if downloading a library would solve the problem, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>There is something about OAuth that brings out the worst in techies. You can see it when someone asks how to get started with OAuth on the <a href="http://groups.google.com/group/twitter-development-talk">Twitter development talk</a> mailing list. The general response is &#8220;get a copy of library X, and you&#8217;re all set.&#8221; Well if downloading a library would solve the problem, I don&#8217;t think so many people would keep asking for help. </p>
<p>The disconnect is that all the Twitter docs on OAuth assume that you already know how it works. It&#8217;s like giving driving directions to someone who does not know how to operate a car. If someone has never driven before, saying &#8220;Just go north 5 miles, and you&#8217;re all set&#8221; doesn&#8217;t help much.</p>
<p>What OAuth beginners need is a step by step set of instructions that starts by showing where all the moving parts are, and how to assemble them for a first working program that controls the Twitter API. That is what I have tried to do with my latest tutorial. It is called <a href="http://140dev.com/twitter-api-programming-tutorials/hello-twitter-oauth-php/">Hello Twitter OAuth</a>, and it shows every step necessary to post tweets with OAuth. These techniques can then be applied to any API command. </p>
]]></content:encoded>
			<wfw:commentRss>http://140dev.com/twitter-api-programming-blog/the-simplest-twitter-oauth-tutorial-possible/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First day in the life of the 140dev framework</title>
		<link>http://140dev.com/twitter-api-programming-blog/first-day-in-the-life-of-the-140dev-framework/</link>
		<comments>http://140dev.com/twitter-api-programming-blog/first-day-in-the-life-of-the-140dev-framework/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 05:52:13 +0000</pubDate>
		<dc:creator>Adam Green</dc:creator>
				<category><![CDATA[140dev Source Code]]></category>
		<category><![CDATA[Custom Twitter Client]]></category>
		<category><![CDATA[Database Cache]]></category>
		<category><![CDATA[Streaming API]]></category>
		<category><![CDATA[Tweet Aggregation]]></category>
		<category><![CDATA[Tweet Display]]></category>

		<guid isPermaLink="false">http://140dev.com/?p=926</guid>
		<description><![CDATA[The first day has gone well. I announced the code on the Twitter dev list, and got 16 visitors to the site. The good thing is that the average pages per visitor was 7, and they spent an average of 11 minutes on the site. So people who get to the code are giving it [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>The first day has gone well. I announced the code on the Twitter dev list, and got 16 visitors to the site. The good thing is that the average pages per visitor was 7, and they spent an average of 11 minutes  on the site. So people who get to the code are giving it a good amount of attention. </p>
<p>I&#8217;m also using this code as an starting point to teach my son Web programming. He has taken a course in Java in school, and has experience setting up WordPress blogs, but hasn&#8217;t done any PHP or server based coding. Working through the install process for 140dev with him was very informative. I&#8217;m going to rewrite the <a href="http://140dev.com/free-twitter-api-source-code-library/twitter-database-server/install/">install page</a> for the Twitter Database Server based on his feedback. </p>
<p>The biggest problem is identifying the target audience. Is it people who have never used Telnet or worked at a Unix-style prompt? Is it someone who has coded in PHP for a while, but has never used the Twitter API? One solution is to produce tutorials and programming primers to help bridge this gap. </p>
<p>I also want to make the install process much simpler. That is the obvious blocking point. If I can make the install on the database server module easy, the rest of the framework will be a breeze. </p>
<p>Overall, I&#8217;m happy with the first day&#8217;s results. </p>
]]></content:encoded>
			<wfw:commentRss>http://140dev.com/twitter-api-programming-blog/first-day-in-the-life-of-the-140dev-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The 140dev Twitter framework is now available</title>
		<link>http://140dev.com/twitter-api-programming-blog/the-140dev-twitter-framework-is-now-available/</link>
		<comments>http://140dev.com/twitter-api-programming-blog/the-140dev-twitter-framework-is-now-available/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 03:34:47 +0000</pubDate>
		<dc:creator>Adam Green</dc:creator>
				<category><![CDATA[140dev Source Code]]></category>
		<category><![CDATA[Custom Twitter Client]]></category>
		<category><![CDATA[Database Cache]]></category>
		<category><![CDATA[Tweet Aggregation]]></category>

		<guid isPermaLink="false">http://140dev.com/?p=922</guid>
		<description><![CDATA[I just opened up access to version 0.10 of my free Twitter source code library. At first it just has modules for a tweet aggregation database and a tweet display plugin. My next module will be a WordPress display plugin. I also have a lot of tutorials planned that can use this source code as [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>I just opened up access to version 0.10 of my <strong><a href="http://140dev.com/free-twitter-api-source-code-library/" title="Download free Twitter source code">free Twitter source code library</a></strong>. At first it just has modules for a <strong>tweet aggregation database</strong> and a <strong>tweet display</strong> plugin. My next module will be a WordPress display plugin. I also have a lot of tutorials planned that can use this source code as examples. </p>
]]></content:encoded>
			<wfw:commentRss>http://140dev.com/twitter-api-programming-blog/the-140dev-twitter-framework-is-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>140dev open source progress report</title>
		<link>http://140dev.com/twitter-api-programming-blog/open-source-progress-report/</link>
		<comments>http://140dev.com/twitter-api-programming-blog/open-source-progress-report/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 19:31:52 +0000</pubDate>
		<dc:creator>Adam Green</dc:creator>
				<category><![CDATA[140dev Source Code]]></category>
		<category><![CDATA[Custom Twitter Client]]></category>
		<category><![CDATA[Streaming API]]></category>
		<category><![CDATA[Tweet Aggregation]]></category>
		<category><![CDATA[Tweet Display]]></category>

		<guid isPermaLink="false">http://140dev.com/?p=319</guid>
		<description><![CDATA[I&#8217;ve been cleaning up the code the last few days. I finally got around to switching to tweet entities. They&#8217;ve been around for a while, but every time people complained about a problem Twitter HQ said that developers should code for their occasional disappearance. I don&#8217;t have time to code for a major data component [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>I&#8217;ve been cleaning up the code the last few days. I finally got around to switching to tweet entities. They&#8217;ve been around for a while, but every time people complained about a problem Twitter HQ said that developers should code for their occasional disappearance. I don&#8217;t have time to code for a major data component being there part of the time. The complaints have died down, so I guess it is stable now. I don&#8217;t disagree with the Twitter model of getting improvements out early, but I stay away from the bleeding edge. </p>
<p>One of the nice things about entities is that they include the disambiguated versions of shortened URLs. That saves a ton of processing time for each user of the API, and even more bandwidth for the target of popular URLs. Unfortunately, they only contain the original value of URLs that are shortened by Twitter itself through its t.co domain. </p>
<p>I&#8217;m also making sure that every piece of text is pulled out into config files. I want this code to work for any language. </p>
<p>My son is coming back from school for the weekend, and I want to review it with him. He&#8217;s my target user. He knows a little PHP and Javascript. If I can make this system easily installable for him, then it will be ready to make public. </p>
]]></content:encoded>
			<wfw:commentRss>http://140dev.com/twitter-api-programming-blog/open-source-progress-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter developer tweet aggregation is working as a plugin</title>
		<link>http://140dev.com/twitter-api-programming-blog/twitter-developer-tweet-aggregation-is-working-as-a-plugin/</link>
		<comments>http://140dev.com/twitter-api-programming-blog/twitter-developer-tweet-aggregation-is-working-as-a-plugin/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 04:43:22 +0000</pubDate>
		<dc:creator>Adam Green</dc:creator>
				<category><![CDATA[Custom Twitter Client]]></category>
		<category><![CDATA[Tweet Aggregation]]></category>
		<category><![CDATA[Twitter Developers]]></category>

		<guid isPermaLink="false">http://140dev.com/?p=259</guid>
		<description><![CDATA[I finally finished the last tweaks to the JS file. Doing Ajax from within a JS file HTML loaded by a plugin requires some interesting adjustments. I didn&#8217;t want to hard code the Ajax calls, so I had to capture the current URL of the plugin directory and save that in a hidden div within [&#8230;]]]></description>
				<content:encoded><![CDATA[<p></p><p>I finally finished the last tweaks to the JS file. Doing Ajax from within a JS file HTML loaded by a plugin requires some interesting adjustments. I didn&#8217;t want to hard code the Ajax calls, so I had to capture the current URL of the plugin directory and save that in a hidden div within the page&#8217;s HTML so the JS code could use it. A little fussy, but <a href="http://140dev.com/twitter-development-team-tweets/">it works</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://140dev.com/twitter-api-programming-blog/twitter-developer-tweet-aggregation-is-working-as-a-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
