<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ruminations of an addled mind</title>
	<atom:link href="http://chuckbeasley.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://chuckbeasley.wordpress.com</link>
	<description>Random ramblings about my thoughts</description>
	<lastBuildDate>Fri, 15 Jul 2011 16:05:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='chuckbeasley.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Ruminations of an addled mind</title>
		<link>http://chuckbeasley.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://chuckbeasley.wordpress.com/osd.xml" title="Ruminations of an addled mind" />
	<atom:link rel='hub' href='http://chuckbeasley.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Always double-check your itinerary</title>
		<link>http://chuckbeasley.wordpress.com/2009/05/19/always-double-check-your-itinerary/</link>
		<comments>http://chuckbeasley.wordpress.com/2009/05/19/always-double-check-your-itinerary/#comments</comments>
		<pubDate>Tue, 19 May 2009 05:24:23 +0000</pubDate>
		<dc:creator>chuckbeasley</dc:creator>
				<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://chuckbeasley.wordpress.com/?p=17</guid>
		<description><![CDATA[I spent the last few days attending a conference in San Francisco.  The conference was Friday through Sunday.  I knew when I purchased my airline ticket the dates of the conference.  Imagine my surprise when I received an email, shortly after midnight Saturday morning, informing me that it was time to check-in for my flight.  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chuckbeasley.wordpress.com&amp;blog=1833636&amp;post=17&amp;subd=chuckbeasley&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I spent the last few days attending a conference in San Francisco.  The conference was Friday through Sunday.  I knew when I purchased my airline ticket the dates of the conference.  Imagine my surprise when I received an email, shortly after midnight Saturday morning, informing me that it was time to check-in for my flight.  I knew this couldn&#8217;t be correct because my flight wasn&#8217;t scheduled to leave until 12:35 a.m. May 18 or so I thought.  After a conversation with the airline&#8217;s customer service department, just before 1 a.m., I realized that I had purchased the ticket for the wrong date.  Now, I&#8217;m not going to sit here and blame the website or anything else.  I bought the ticket and failed to verify the date of the return trip.  So, learn from me to always double-check your itinerary before you click the purchase button.  Otherwise, have fun booking a one-way ticket back home!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chuckbeasley.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chuckbeasley.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chuckbeasley.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chuckbeasley.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chuckbeasley.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chuckbeasley.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chuckbeasley.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chuckbeasley.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chuckbeasley.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chuckbeasley.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chuckbeasley.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chuckbeasley.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chuckbeasley.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chuckbeasley.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chuckbeasley.wordpress.com&amp;blog=1833636&amp;post=17&amp;subd=chuckbeasley&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://chuckbeasley.wordpress.com/2009/05/19/always-double-check-your-itinerary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19cc10e3499476c014dcb78b8d84efc4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chuckbeasley</media:title>
		</media:content>
	</item>
		<item>
		<title>Using OAUTH for Delphi</title>
		<link>http://chuckbeasley.wordpress.com/2009/04/29/using-oauth-for-delphi/</link>
		<comments>http://chuckbeasley.wordpress.com/2009/04/29/using-oauth-for-delphi/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 21:18:38 +0000</pubDate>
		<dc:creator>chuckbeasley</dc:creator>
				<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://chuckbeasley.wordpress.com/?p=9</guid>
		<description><![CDATA[Before attempting to use OAUTH, you must obtain a developer key and secret from the service provider.  In the sample code provided in this article, I have removed my developer key and secret.  No other code modifications have been made. Step 1 &#8211; Request request token (step A in diagram) procedure TForm1.RqsBtnClick(Sender: TObject); var URL: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chuckbeasley.wordpress.com&amp;blog=1833636&amp;post=9&amp;subd=chuckbeasley&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img src="http://oauth.net/core/diagram.png" alt="" /></p>
<p>Before attempting to use OAUTH, you must obtain a developer key and secret from the service provider.  In the sample code provided in this article, I have removed my developer key and secret.  No other code modifications have been made.</p>
<p><strong>Step 1 &#8211; Request request token (step A in diagram)</strong></p>
<p>procedure TForm1.RqsBtnClick(Sender: TObject);<br />
var<br />
URL: string;<br />
endpos: integer;<br />
begin<br />
Key := &#8216;http://www.myspace.com/developerkey&#8217;;<br />
Secret := &#8216;developersecret&#8217;;<br />
URL := &#8216;http://api.myspace.com/request_token&#8217;;<br />
// Create all objects<br />
Consumer := TOAuthConsumer.Create(Key, Secret);<br />
HMAC := TOAuthSignatureMethod_HMAC_SHA1.Create;</p>
<p>ARequest := TOAuthRequest.Create(URL);</p>
<p>ARequest := ARequest.FromConsumerAndToken(Consumer, nil, URL);<br />
ARequest.Sign_Request(HMAC, Consumer, nil);<br />
HTTPStream := TStringStream.Create(&#8221;);<br />
URL := URL + &#8216;?&#8217; + ARequest.GetString;<br />
Response := idHTTP1.Get(URL);</p>
<p>endpos := AnsiPos(&#8216;&amp;oauth_token_secret=&#8217;, Response);<br />
oauth_token := &#8221;;<br />
oauth_token := Copy(Response, 13, endpos-13);<br />
Response := Copy(Response, endpos, Length(Response));</p>
<p>oauth_token_secret := Copy(Response, 21, Length(Response));<br />
Token := TOAuthToken.Create(oauth_token, oauth_token_secret);<br />
end;</p>
<p>The service provider responds by sending a token and token secret, which is parsed from the Response variable.</p>
<p><strong>Step 2 &#8211; Authorize (Step C in diagram)</strong></p>
<p>procedure TForm1.AuthBtnClick(Sender: TObject);<br />
var<br />
Callback_URL, URL :string;<br />
begin<br />
URL := &#8216;http://api.myspace.com/authorize&#8217;;<br />
Callback_URL := &#8216;http://www.chuckbeasley.com&#8217;;<br />
URL := URL + &#8216;?&#8217; + &#8216;oauth_token=&#8217; + oauth_token + &#8216;&amp;&#8217; + &#8216;oauth_token_secret=&#8217; + oauth_token_secret +<br />
&#8216;&amp;oauth_callback=&#8217; + TOAuthUtil.urlEncodeRFC3986(Callback_URL);<br />
EmbeddedWB1.Navigate(URL);<br />
end;</p>
<p>The token, token secret, and call back URL are appended to the URL.  The service provider obtains user authorization and directs the consumer to the call back URL.</p>
<p><strong>Step 3 &#8211; Request access token (Step E in diagram)</strong></p>
<p>procedure TForm1.AccBtnClick(Sender: TObject);<br />
var<br />
endpos: integer;<br />
URL: string;<br />
begin<br />
URL := &#8216;http://api.myspace.com/access_token&#8217;;<br />
Consumer := nil;<br />
Consumer := TOAuthConsumer.Create(Key, Secret, &#8216;http://www.chuckbeasley.com&#8217;);<br />
ARequest.HTTPURL := URL;<br />
ARequest := ARequest.FromConsumerAndToken(Consumer, Token, URL);<br />
ARequest.Sign_Request(HMAC, Consumer, Token);<br />
URL := URL + &#8216;?&#8217; + ARequest.GetString;<br />
Response := idHTTP1.Get(URL);<br />
endpos := AnsiPos(&#8216;&amp;oauth_token_secret=&#8217;, Response);<br />
oauth_token := &#8221;;<br />
oauth_token := Copy(Response, 13, endpos-13);<br />
Response := Copy(Response, endpos, Length(Response));</p>
<p>oauth_token_secret := Copy(Response, 21, Length(Response));<br />
Token := TOAuthToken.Create(oauth_token, oauth_token_secret);<br />
end;</p>
<p>The service provider responds by sending an access token and token secret, which is parsed from the Response variable.</p>
<p><strong>Step 4 &#8211; Access protected resources (Step G on diagram)</strong></p>
<p>procedure TForm1.AccRscClick(Sender: TObject);</p>
<p>procedure process(o: ISuperObject);<br />
var<br />
f: TSuperObjectIter;<br />
i: Integer;<br />
begin<br />
case ObjectGetType(o) of<br />
stObject:<br />
begin<br />
Memo1.Lines.Add(&#8216;{&#8216;);<br />
if ObjectFindFirst(o, f) then<br />
repeat<br />
keypair := f.key;<br />
process(f.val)<br />
until not ObjectFindNext(f);<br />
ObjectFindClose(f);<br />
Memo1.Lines.Add(&#8216;}&#8217;);<br />
end;<br />
stArray:<br />
begin<br />
Memo1.Lines.Add(&#8216;[');<br />
for i := 0 to o.AsArray.Length - 1 do<br />
process(o.AsArray.O[i]);<br />
Memo1.Lines.Add(&#8216;]&#8217;);<br />
end;<br />
stString:<br />
begin<br />
keypair := keypair + &#8216;:&#8217; +(UTF8Decode(o.AsString));<br />
Memo1.Lines.Add(keypair);<br />
end;<br />
stNull:<br />
Memo1.Lines.add(&#8216;nil&#8217;);<br />
else<br />
Memo1.Lines.add(o.AsString);<br />
end;<br />
end;<br />
var<br />
json: ISuperObject;<br />
StringList: TStringList;<br />
URL: string;<br />
begin<br />
URL := &#8216;http://api.myspace.com/v2/people/40250975/@friends?count=10000&amp;format=json&#8217;;<br />
Consumer := nil;<br />
Consumer := TOAuthConsumer.Create(Key, Secret, &#8216;http://www.chuckbeasley.com&#8217;);<br />
ARequest.HTTPURL := URL;<br />
ARequest := ARequest.FromConsumerAndToken(Consumer, Token, URL);<br />
ARequest.Sign_Request(HMAC, Consumer, Token);<br />
URL := URL + &#8216;&amp;&#8217; + ARequest.GetString;<br />
Response := idHTTP1.Get(URL);</p>
<p>StringList := TStringList.Create;<br />
StringList.Add(Response);</p>
<p>json := TSuperObject.Create(stObject);<br />
json.Merge(Response);<br />
json := json.O['entry'];<br />
Memo1.Lines.Clear;<br />
process(json);<br />
end;</p>
<p>This step assumes that the profile owner has authorized the application to access its protected data.  That can be performed by adding the application to the profile.</p>
<p>OAUTH for Delphi is available via SVN:   <a href="http://oauthdelphi.svn.sourceforge.net/">http://oauthdelphi.svn.sourceforge.net/</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chuckbeasley.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chuckbeasley.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chuckbeasley.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chuckbeasley.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chuckbeasley.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chuckbeasley.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chuckbeasley.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chuckbeasley.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chuckbeasley.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chuckbeasley.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chuckbeasley.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chuckbeasley.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chuckbeasley.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chuckbeasley.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chuckbeasley.wordpress.com&amp;blog=1833636&amp;post=9&amp;subd=chuckbeasley&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://chuckbeasley.wordpress.com/2009/04/29/using-oauth-for-delphi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19cc10e3499476c014dcb78b8d84efc4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chuckbeasley</media:title>
		</media:content>

		<media:content url="http://oauth.net/core/diagram.png" medium="image" />
	</item>
		<item>
		<title>Catching up with technology</title>
		<link>http://chuckbeasley.wordpress.com/2009/03/25/catching-up-with-technology/</link>
		<comments>http://chuckbeasley.wordpress.com/2009/03/25/catching-up-with-technology/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 16:07:37 +0000</pubDate>
		<dc:creator>chuckbeasley</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chuckbeasley.wordpress.com/?p=6</guid>
		<description><![CDATA[So, I&#8217;ve finally decided to write an entry in my blog.  In less than 2 weeks, I&#8217;ve join Twitter and begun blogging.  I&#8217;m not exactly sure what I&#8217;ll find to write about, but I&#8217;ll make it interesting.  Check back from time to time to see what things I find on the &#8216;net.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chuckbeasley.wordpress.com&amp;blog=1833636&amp;post=6&amp;subd=chuckbeasley&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve finally decided to write an entry in my blog.  In less than 2 weeks, I&#8217;ve join Twitter and begun blogging.  I&#8217;m not exactly sure what I&#8217;ll find to write about, but I&#8217;ll make it interesting.  Check back from time to time to see what things I find on the &#8216;net.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chuckbeasley.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chuckbeasley.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chuckbeasley.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chuckbeasley.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chuckbeasley.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chuckbeasley.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chuckbeasley.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chuckbeasley.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chuckbeasley.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chuckbeasley.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chuckbeasley.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chuckbeasley.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chuckbeasley.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chuckbeasley.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=chuckbeasley.wordpress.com&amp;blog=1833636&amp;post=6&amp;subd=chuckbeasley&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://chuckbeasley.wordpress.com/2009/03/25/catching-up-with-technology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/19cc10e3499476c014dcb78b8d84efc4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chuckbeasley</media:title>
		</media:content>
	</item>
	</channel>
</rss>
