<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5098886702041678943</id><updated>2011-07-30T10:21:38.279-07:00</updated><category term='Coldfusion'/><category term='Beach'/><category term='Moon'/><category term='Print'/><category term='Regular Expressions'/><category term='Michigan'/><category term='Roadtrip'/><category term='Facebook connect'/><category term='rejected'/><category term='Treasury'/><category term='REMatch'/><category term='ASP'/><category term='Petoskey'/><category term='ArrayIsEmpty'/><category term='Stars'/><category term='Painter'/><category term='application'/><category term='istockphoto'/><category term='Facebook'/><category term='Single sign on'/><category term='Etsy'/><title type='text'>Web Development and Art</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.bluepx.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.bluepx.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/01824518995199791249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://4.bp.blogspot.com/_BF9Ppv5nrWc/S9pWoU_W5qI/AAAAAAAAAkI/5nWUqb_aQNA/S220/IMG_4017.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5098886702041678943.post-7535682471928756685</id><published>2010-10-27T10:47:00.000-07:00</published><updated>2010-10-27T12:05:29.810-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Regular Expressions'/><category scheme='http://www.blogger.com/atom/ns#' term='Coldfusion'/><category scheme='http://www.blogger.com/atom/ns#' term='ArrayIsEmpty'/><category scheme='http://www.blogger.com/atom/ns#' term='REMatch'/><title type='text'>My first regular expression!</title><content type='html'>I was working on a project yesterday that required some string validation. I had a vague sense of regular expressions, but never used them. I thought this might be a good chance to get my feet wet.&lt;br /&gt;
&lt;br /&gt;
I needed to validate that a store name contained only letters, numbers, spaces or apostrophes. I didn't want any spaces before or after the store name and only single spaces between words in the name. I could probably get the job done with other string functions, but I knew regular expressions would be cleaner...a lot cleaner.&lt;br /&gt;
&lt;br /&gt;
I did a little searching and came across this post, &lt;a href="http://www.bennadel.com/blog/769-Learning-ColdFusion-8-REMatch-For-Regular-Expression-Matching.htm"&gt;http://www.bennadel.com/blog/769-Learning-ColdFusion-8-REMatch-For-Regular-Expression-Matching.htm&lt;/a&gt;, by Ben Nadel and decided to give REMatch a try. I won't lie, it took me two hours to finally write the regular expression that did what I needed. &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&amp;lt;cfset regexname = REMatch("(^( )[A-Za-z0-9]+)|([A-Za-z0-9]+(&amp;nbsp; ))|(&amp;nbsp; )|(( )$)|[^A-Za-z0-9 ']","#storename#")&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This function will return a variable, regexname, as an array. I check the array with ArrayIsEmpty(). If that function is true then the store name is valid. You see, the array would contain something if the REMatch function found an occurrence in&amp;nbsp; #storename# that matches one of the regular expressions. I actually wrote a group of regular expressions. There are 5 and they are separated by a pipe(|). The pipe character means OR. So what I end up with is a regular expression conditional statement.&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5098886702041678943-7535682471928756685?l=blog.bluepx.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bluepx.com/feeds/7535682471928756685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.bluepx.com/2010/10/my-first-regular-expresion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/7535682471928756685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/7535682471928756685'/><link rel='alternate' type='text/html' href='http://blog.bluepx.com/2010/10/my-first-regular-expresion.html' title='My first regular expression!'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/01824518995199791249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://4.bp.blogspot.com/_BF9Ppv5nrWc/S9pWoU_W5qI/AAAAAAAAAkI/5nWUqb_aQNA/S220/IMG_4017.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5098886702041678943.post-6154393461747593037</id><published>2010-06-28T07:37:00.000-07:00</published><updated>2010-06-28T07:40:38.158-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stars'/><category scheme='http://www.blogger.com/atom/ns#' term='Etsy'/><category scheme='http://www.blogger.com/atom/ns#' term='Print'/><category scheme='http://www.blogger.com/atom/ns#' term='Michigan'/><category scheme='http://www.blogger.com/atom/ns#' term='Roadtrip'/><category scheme='http://www.blogger.com/atom/ns#' term='Moon'/><category scheme='http://www.blogger.com/atom/ns#' term='Painter'/><category scheme='http://www.blogger.com/atom/ns#' term='Beach'/><category scheme='http://www.blogger.com/atom/ns#' term='Petoskey'/><title type='text'>New Painting with a Bit of an Edge</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/_BF9Ppv5nrWc/TCiy4_8fizI/AAAAAAAAAlw/czugTGB25WA/s1600/Lets-Pull-Over-Here-8x10.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="159" src="http://1.bp.blogspot.com/_BF9Ppv5nrWc/TCiy4_8fizI/AAAAAAAAAlw/czugTGB25WA/s200/Lets-Pull-Over-Here-8x10.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
I did a painting last night that's a little different than my other ones. We stopped at a beach on the &lt;a href="http://www.amazon.com/Lake-Michigan-Backroads-Adventures-Wisconsin/dp/076032980X?ie=UTF8&amp;amp;tag=webdev08d-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Lake Michigan&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=webdev08d-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=076032980X" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt; shoreline on our way back from &lt;a href="http://www.amazon.com/Street-Road-Map-Petoskey-Michigan/dp/B002UL777G?ie=UTF8&amp;amp;tag=webdev08d-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Petoskey, MI&lt;/a&gt;. I snapped some photos with nothing rerally intended for them, just snapshots. While reviewing my photos this one jumped out at me as one that I wanted to work with. There is another one too, but this one looked the most fun. &lt;br /&gt;
&lt;br /&gt;
I spent about 5 hours with the painting and I thought I was almost done. But something wasn't quite right. I don't know, it looked too plain. I saw a technique a while ago used by Android Jones; just going crazy with the straight line tool. After about 10 minutes I zoomed out and thought it actually loked pretty good. I spent another 2 hours just adding lines. I then added some elements in this style to the sky to tie it together. It's called "Let's Pull Over Here" and can be seen bigger (and purchased :) on Etsy: &lt;a href="http://www.etsy.com/listing/50351213/lets-pull-over-here-8x10-fine-art-print"&gt;http://www.etsy.com/listing/50351213/lets-pull-over-here-8x10-fine-art-print&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5098886702041678943-6154393461747593037?l=blog.bluepx.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bluepx.com/feeds/6154393461747593037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.bluepx.com/2010/06/new-painting-with-bit-of-edge.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/6154393461747593037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/6154393461747593037'/><link rel='alternate' type='text/html' href='http://blog.bluepx.com/2010/06/new-painting-with-bit-of-edge.html' title='New Painting with a Bit of an Edge'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/01824518995199791249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://4.bp.blogspot.com/_BF9Ppv5nrWc/S9pWoU_W5qI/AAAAAAAAAkI/5nWUqb_aQNA/S220/IMG_4017.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BF9Ppv5nrWc/TCiy4_8fizI/AAAAAAAAAlw/czugTGB25WA/s72-c/Lets-Pull-Over-Here-8x10.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5098886702041678943.post-8488105065544799594</id><published>2010-06-24T21:23:00.000-07:00</published><updated>2010-06-24T21:24:10.388-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Etsy'/><category scheme='http://www.blogger.com/atom/ns#' term='Painter'/><title type='text'>My Rhino on Tumblr</title><content type='html'>&lt;br /&gt;
&lt;div class="separator" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;
&lt;a href="http://www.etsy.com/listing/42131690/rhinoceros-8x10-print"&gt;&lt;img border="0" height="160" src="http://2.bp.blogspot.com/_BF9Ppv5nrWc/TCQuTTm62MI/AAAAAAAAAlc/52rZvI6M8hw/s200/Rhinoceros-8x10.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I was looking through my Analytics today and saw that Etsy tumbled my Rhino! &lt;a href="http://etsy.tumblr.com/post/657466802"&gt;http://etsy.tumblr.com/post/657466802&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5098886702041678943-8488105065544799594?l=blog.bluepx.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bluepx.com/feeds/8488105065544799594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.bluepx.com/2010/06/my-rhino-on-tumblr.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/8488105065544799594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/8488105065544799594'/><link rel='alternate' type='text/html' href='http://blog.bluepx.com/2010/06/my-rhino-on-tumblr.html' title='My Rhino on Tumblr'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/01824518995199791249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://4.bp.blogspot.com/_BF9Ppv5nrWc/S9pWoU_W5qI/AAAAAAAAAkI/5nWUqb_aQNA/S220/IMG_4017.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BF9Ppv5nrWc/TCQuTTm62MI/AAAAAAAAAlc/52rZvI6M8hw/s72-c/Rhinoceros-8x10.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5098886702041678943.post-249135818117074653</id><published>2010-05-28T07:13:00.000-07:00</published><updated>2010-05-28T09:16:21.665-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Facebook connect'/><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='Coldfusion'/><category scheme='http://www.blogger.com/atom/ns#' term='Single sign on'/><title type='text'>Facebook single sign on with Coldfusion</title><content type='html'>I'm working on a project site that allows people to share stories of events, places and people. I'm still fleshing it out, but I got the idea that I wanted to integrate it closely with Facebook. Vistitors will be able to log in with their Facebook account and have access to all their FB photos and videos to share on my site. Needless to say, a FB sign on would eliminate a visitor's need to create and remember one more account on another site.&lt;br /&gt;
&lt;br /&gt;
FB makes it pretty easy using PHP, but I've never liked PHP. That discussion is for another post...let's just say Coldfusion is more fun. I'm not a CF expert. I might still place myself in the beginner level. However, with just a little more than an hour of translating their PHP code to Coldfusion I was able to get a working example. It was pretty cool to display Facebook stuff on my page. I'm still working on my localhost so I can't show an example, but I'll post the code below.&lt;br /&gt;
&lt;br /&gt;
As I said, this is a project site and I'm still in that "let's see if I can do this" stage. I think mostly developers use info provided by FB for advertising purposes. That doesn't really interest me. So, other than that and what I've mentioned, I'm not sure what else I could do with the info from FB. I'm sure more research will be done.&lt;br /&gt;
&lt;br /&gt;
On to the code:&lt;br /&gt;
I created two pages. The first page allows the visitor to sign into Facebook if they aren't already. Place the following attribute in the html tag. This allows your page to use the Facebook Markup Language (FBML). &lt;br /&gt;
&lt;code&gt;
xmlns:fb="http://www.facebook.com/2008/fbml"&lt;/code&gt;
&lt;br /&gt;
Anywhere in the body, place this FBML tag. This displays the Facebook login/logout button. When logged in, FB stores a cookie for that user containing their UID and some other stuff.&lt;br /&gt;
&lt;code&gt;
&amp;lt;fb:login-button autologoutlink="true"&amp;gt;&amp;lt;/fb:login-button&amp;gt;
&lt;/code&gt;
&lt;br /&gt;
Finally for this page is the code that allows your page to use Facebook's JavaScript SDK. Place this code block right above the closing body tag. Replace 999999999999999 with your app id.&lt;br /&gt;
&lt;code&gt;
&amp;lt;div id="fb-root"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
      window.fbAsyncInit = function() {&lt;br /&gt;
        FB.init({appId: '999999999999999', status: true, cookie: true,&lt;br /&gt;
                 xfbml: true});&lt;br /&gt;
      };&lt;br /&gt;
      (function() {&lt;br /&gt;
        var e = document.createElement('script');&lt;br /&gt;
        e.type = 'text/javascript';&lt;br /&gt;
        e.src = document.location.protocol +&lt;br /&gt;
          '//connect.facebook.net/en_US/all.js';&lt;br /&gt;
        e.async = true;&lt;br /&gt;
        document.getElementById('fb-root').appendChild(e);&lt;br /&gt;
      }());&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
The second page is where I retrieve the FB cookie and display some Facebook stuff. Again on this page, put the XFBML link in the HTML tag. First, I check for Facebook's cookie:&lt;br /&gt;
&lt;code&gt;
&amp;lt;cfif isDefined("cookie.FBS_999999999999999")&amp;gt;&lt;/code&gt;
&lt;br /&gt;
Facebook encloses their cookie in quotes. So, with this code I remove the first and last quote:&lt;br /&gt;
&lt;code&gt;
&amp;lt;cfset fbc = #Right(cookie.fbs_999999999999999, len(cookie.fbs_999999999999999) - 1)#&amp;gt;&lt;br /&gt;
&amp;lt;cfset fbc = #Left(fbc, len(fbc) - 1)#&amp;gt;
&lt;/code&gt;&lt;br /&gt;
The Facebook cookie contains several elements formed much like a querystring. I broke it up into an array like this:&lt;br /&gt;
&lt;code&gt;
&amp;lt;cfset myArrayList = ListToArray(fbc,"&amp;amp;")&amp;gt;
&lt;/code&gt;&lt;br /&gt;
This next code block is the meat and potatoes. It creates the string to verify the link between your app and Facebook and stores the visitor's UID in its own cookie. Replace the 0's with your app secret.&lt;br /&gt;
&lt;code&gt;
&amp;lt;cfset strHash = ""&amp;gt;&lt;br /&gt;
&amp;lt;cfloop array="#myArrayList#" index="ck"&amp;gt;&lt;br /&gt;
&amp;lt;cfif findnocase("sig=", ck) eq 0&amp;gt;&lt;br /&gt;
 &amp;lt;cfset strHash = "#strHash##ck#"&amp;gt;&lt;br /&gt;
 &amp;lt;cfif findnocase("expires=", ck) eq 0&amp;gt;&lt;br /&gt;
  &amp;lt;cfset myArray = ListToArray(ck,"=")&amp;gt;&lt;br /&gt;
  &amp;lt;cfcookie name="#myArray[1]#" value="#myArray[2]#"&amp;gt;&lt;br /&gt;
 &amp;lt;/cfif&amp;gt;&lt;br /&gt;
&amp;lt;cfelse&amp;gt;&lt;br /&gt;
 &amp;lt;cfset strSig = replacenocase(#ck#, "sig=",  "")&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/cfif&amp;gt;&lt;br /&gt;
&amp;lt;/cfloop&amp;gt;&lt;br /&gt;
&amp;lt;cfset strHash = "#strHash#00000000000000000000000000000000"&amp;gt;
&lt;/code&gt;&lt;br /&gt;
Essentially, what I'm doing in the above code is removing the sig value pair, creating a long string from the remaining pairs and also setting each of those pairs to it's own cookie. When the loop finds the sig pair, I record the value in a variable. At the end, I create the value to be hashed by appending my app secret to the end of the string I created in the loop (strHash, which isn't actually a hash yet).&lt;br /&gt;
&lt;br /&gt;
With this conditional, I'm comparing the sig value to the hash of my long string I just created above.&lt;br /&gt;
&lt;code&gt;
&amp;lt;cfif #strSig# eq #Hash(strHash)#&amp;gt;
&lt;/code&gt;
&lt;br /&gt;
If that condition checks out, then you're golden. You can use http calls like the one below to request JSON responses from Facebook. This will get you basic information about "me", the current user.&lt;br /&gt;
&lt;code&gt;
&amp;lt;cfhttp url="https://graph.facebook.com/me?access_token=#cookie.access_token#" &amp;gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Here are the 2 pages in their entirety:&lt;br /&gt;
login.cfm:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml"&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/&amp;gt;
    &amp;lt;title&amp;gt;localhost:8500&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;p&amp;gt;&amp;lt;fb:login-button autologoutlink="true"&amp;gt;&amp;lt;/fb:login-button&amp;gt;&amp;lt;/p&amp;gt;


    &amp;lt;div id="fb-root"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;script&amp;gt;
      window.fbAsyncInit = function() {
        FB.init({appId: '999999999999999', status: true, cookie: true,
                 xfbml: true});
      };
      (function() {
        var e = document.createElement('script');
        e.type = 'text/javascript';
        e.src = document.location.protocol +
          '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
      }());
    &amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
info.cfm&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:fb="http://www.facebook.com/2008/fbml"&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/&amp;gt;
    &amp;lt;title&amp;gt;localhost:8500&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
&amp;lt;cfoutput&amp;gt;
&amp;lt;cfif isDefined("cookie.FBS_9999999999999999")&amp;gt;
&amp;lt;cfset fbc = #Right(cookie.fbs_99999999999999999, len(cookie.fbs_999999999999999) - 1)#&amp;gt;
&amp;lt;cfset fbc = #Left(fbc, len(fbc) - 1)#&amp;gt;

&amp;lt;cfset myArrayList = ListToArray(fbc,"&amp;amp;")&amp;gt;

&amp;lt;cfset strHash = ""&amp;gt;
&amp;lt;cfloop array="#myArrayList#" index="ck"&amp;gt;
&amp;lt;cfif findnocase("sig=", ck) eq 0&amp;gt;
 &amp;lt;cfset strHash = "#strHash##ck#"&amp;gt;
 &amp;lt;cfif findnocase("expires=", ck) eq 0&amp;gt;
  &amp;lt;cfset myArray = ListToArray(ck,"=")&amp;gt;
  &amp;lt;cfcookie name="#myArray[1]#" value="#myArray[2]#"&amp;gt;
 &amp;lt;/cfif&amp;gt;
&amp;lt;cfelse&amp;gt;
 &amp;lt;cfset strSig = replacenocase(#ck#, "sig=", "")&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;/cfif&amp;gt;
&amp;lt;/cfloop&amp;gt;
&amp;lt;cfset strHash = "#strHash#00000000000000000000000000000000"&amp;gt;

&amp;lt;cfif #strSig# eq #Hash(strHash)#&amp;gt;
#cookie.uid#&amp;lt;br&amp;gt;
&amp;lt;/cfif&amp;gt;
&amp;lt;/cfif&amp;gt;&amp;lt;!---if isDefined(FBS_999999999999999)---&amp;gt;


&amp;lt;cfif isDefined("cookie.FBS_9999999999999999")&amp;gt;
&amp;lt;cfhttp url="https://graph.facebook.com/me?access_token=#cookie.access_token#" &amp;gt;
&amp;lt;/cfhttp&amp;gt;
&amp;lt;cfimage action="writetobrowser" source="http://graph.facebook.com/#cookie.uid#/picture?type=large"&amp;gt;
&amp;lt;cfset xd = "#DeserializeJSON(cfhttp.FileContent)#"&amp;gt;
&amp;lt;cfdump var="#xd#"&amp;gt;&amp;lt;br&amp;gt;

&amp;lt;/cfif&amp;gt;
&amp;lt;/cfoutput&amp;gt;
&amp;lt;br&amp;gt;

    &amp;lt;div id="fb-root"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;script&amp;gt;
      window.fbAsyncInit = function() {
        FB.init({appId: '999999999999999', status: true, cookie: true,
                 xfbml: true});
      };
      (function() {
        var e = document.createElement('script');
        e.type = 'text/javascript';
        e.src = document.location.protocol +
          '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
      }());
    &amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
There are probably a dozen ways to make this code more efficient, but this will get you running. Visit &lt;a href="http://developers.facebook.com/docs/guides/web"&gt;Faccebook's docs&lt;/a&gt; to learn the many ways you can use this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5098886702041678943-249135818117074653?l=blog.bluepx.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bluepx.com/feeds/249135818117074653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.bluepx.com/2010/05/facebook-single-sign-on-with-coldfusion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/249135818117074653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/249135818117074653'/><link rel='alternate' type='text/html' href='http://blog.bluepx.com/2010/05/facebook-single-sign-on-with-coldfusion.html' title='Facebook single sign on with Coldfusion'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/01824518995199791249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://4.bp.blogspot.com/_BF9Ppv5nrWc/S9pWoU_W5qI/AAAAAAAAAkI/5nWUqb_aQNA/S220/IMG_4017.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5098886702041678943.post-3133250846960379040</id><published>2010-05-03T14:08:00.000-07:00</published><updated>2010-05-03T14:08:16.459-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application'/><category scheme='http://www.blogger.com/atom/ns#' term='istockphoto'/><category scheme='http://www.blogger.com/atom/ns#' term='rejected'/><title type='text'>Unsuccessful istockphoto application #1</title><content type='html'>So I got this crazy idea to become an istockphoto.com contributor. It seemed like a no-brainer. Upload some photos, designers find them, download them and I collect the royalties. If nothing more I hope to get some free istock credits out of the deal. Well, it's more rigorous of an application than I thought.&lt;br /&gt;
&lt;br /&gt;
My first image:&lt;br /&gt;
I thought this was a nice general stockable image. Invoking a mood and fairly conceptual. It has a lot of space at the top that could be used for copy, which is important for stock. Well, it was rejected.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_BF9Ppv5nrWc/S982sU3nkLI/AAAAAAAAAks/dXN8iW7j8xY/s1600/sample1_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_BF9Ppv5nrWc/S982sU3nkLI/AAAAAAAAAks/dXN8iW7j8xY/s200/sample1_1.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
My second image:&lt;br /&gt;
In hindsight, maybe not the best choice. However, I thought it was an interesting subject and hoped istock would bite. Nope&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_BF9Ppv5nrWc/S984g1qpcyI/AAAAAAAAAk0/UPOmh7nYQi0/s1600/sample1_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" src="http://2.bp.blogspot.com/_BF9Ppv5nrWc/S984g1qpcyI/AAAAAAAAAk0/UPOmh7nYQi0/s200/sample1_2.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
My third image:&lt;br /&gt;
My final sample image for my first application was that of a toy hula dancer. They mentioned that they needed pictures of figurines like this. Well, maybe not like this I guess. I suppose the hula dancer toy is very common and maybe I should've chosen a different background.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/_BF9Ppv5nrWc/S986SUmwG6I/AAAAAAAAAk8/MV5T4oMtnGw/s1600/sample1_3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="136" src="http://3.bp.blogspot.com/_BF9Ppv5nrWc/S986SUmwG6I/AAAAAAAAAk8/MV5T4oMtnGw/s200/sample1_3.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
All 3 images got rejected. I wish they would've given a small critique for each, but no, just a general "At this time we regret to inform you that we did not feel the overall composition of your photography or subject matter is at the minimum level of standard for iStockphoto."&lt;br /&gt;
&lt;pre wrap=""&gt;&amp;nbsp;&lt;/pre&gt;
I had to wait 3 days before uploading new samples. I did and I'll share the results soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5098886702041678943-3133250846960379040?l=blog.bluepx.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bluepx.com/feeds/3133250846960379040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.bluepx.com/2010/05/unsuccessful-istockphoto-application-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/3133250846960379040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/3133250846960379040'/><link rel='alternate' type='text/html' href='http://blog.bluepx.com/2010/05/unsuccessful-istockphoto-application-1.html' title='Unsuccessful istockphoto application #1'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/01824518995199791249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://4.bp.blogspot.com/_BF9Ppv5nrWc/S9pWoU_W5qI/AAAAAAAAAkI/5nWUqb_aQNA/S220/IMG_4017.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BF9Ppv5nrWc/S982sU3nkLI/AAAAAAAAAks/dXN8iW7j8xY/s72-c/sample1_1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5098886702041678943.post-156676544440366830</id><published>2010-04-30T13:54:00.000-07:00</published><updated>2010-04-30T13:57:32.113-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Etsy'/><category scheme='http://www.blogger.com/atom/ns#' term='Print'/><category scheme='http://www.blogger.com/atom/ns#' term='Treasury'/><category scheme='http://www.blogger.com/atom/ns#' term='Painter'/><title type='text'>Unclear print featured in an Etsy treasury</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://ny-image0.etsy.com/il_fullxfull.138015592.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://ny-image0.etsy.com/il_fullxfull.138015592.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;My print titled "Unclear" found itself in an &lt;a href="http://www.etsy.com/treasury/4bd8dd8b87808eefafd791ea/chasing-ghosts"&gt;Etsy treasury&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5098886702041678943-156676544440366830?l=blog.bluepx.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bluepx.com/feeds/156676544440366830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.bluepx.com/2010/04/unclear-print-featured-in-etsy-treasury.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/156676544440366830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/156676544440366830'/><link rel='alternate' type='text/html' href='http://blog.bluepx.com/2010/04/unclear-print-featured-in-etsy-treasury.html' title='Unclear print featured in an Etsy treasury'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/01824518995199791249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://4.bp.blogspot.com/_BF9Ppv5nrWc/S9pWoU_W5qI/AAAAAAAAAkI/5nWUqb_aQNA/S220/IMG_4017.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5098886702041678943.post-5993533659680067624</id><published>2010-04-30T13:40:00.000-07:00</published><updated>2010-04-30T13:58:03.148-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Etsy'/><category scheme='http://www.blogger.com/atom/ns#' term='Print'/><category scheme='http://www.blogger.com/atom/ns#' term='Treasury'/><category scheme='http://www.blogger.com/atom/ns#' term='Painter'/><title type='text'>Don't go too far...</title><content type='html'>&lt;div class="separator" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="200" src="http://ny-image0.etsy.com/il_430xN.138013236.jpg" width="200" /&gt;&lt;/div&gt;&lt;br /&gt;
My print was featured in a &lt;a href="http://www.etsy.com/treasury_list.php?room_id=129143"&gt;treasury on Etsy&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5098886702041678943-5993533659680067624?l=blog.bluepx.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bluepx.com/feeds/5993533659680067624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.bluepx.com/2010/04/dont-go-too-far.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/5993533659680067624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/5993533659680067624'/><link rel='alternate' type='text/html' href='http://blog.bluepx.com/2010/04/dont-go-too-far.html' title='Don&apos;t go too far...'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/01824518995199791249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://4.bp.blogspot.com/_BF9Ppv5nrWc/S9pWoU_W5qI/AAAAAAAAAkI/5nWUqb_aQNA/S220/IMG_4017.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5098886702041678943.post-2636139818566232731</id><published>2010-04-30T07:15:00.000-07:00</published><updated>2010-05-03T14:09:36.562-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP'/><category scheme='http://www.blogger.com/atom/ns#' term='Coldfusion'/><category scheme='http://www.blogger.com/atom/ns#' term='Painter'/><title type='text'>Allow Me to Introduce Myself</title><content type='html'>Does anybody else have troubles with first blog posts. I'll probably copy most of this into my profile. This post is probably more for myself than for anyone else.&lt;br /&gt;
&lt;br /&gt;
This will be a place to post my adventures in web development and explorations in art. I've been developing on the web since 1996. Although my sites didn't start getting interesting until 2001. That's when I started using classic ASP and Access. For about a year I wanted to connect a site to a database. Why it took me a year? I don't know. But when I did it was like realizing I'm dreaming. I felt like I could change the world. It took me a few more years to wake up. It takes a lot more than a few tricks to build a successful site that people love to use. Unfortunately, I haven't found that magic recipe yet, but I'm still cooking.&lt;br /&gt;
&lt;br /&gt;
I've read that classic ASP and Access weren't the best choices for web development. However, I've built sites with that combo that allow people to make their living. So I guess it wasn't all that bad. I have been getting uneasy lately about using a technology that hasn't been updated in a decade. I've used PHP before...try to stay away from it. Maybe more posts about that in the future. I heard about Coldfusion&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=webdev08d-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B000SQPHZO" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt; a few years ago and never really bothered to look into it. It wasn't until early 2008 when I started as a subcontractor for J&amp;amp;J Electronics in Appleton, WI that I learned more about Coldfusion. It was truly trial by fire. I was hired to develop a full database-driven website in Coldfusion. The release of CF8 sealed the deal for me. It lets me relax a bit and allows me to not be such a code zombie. It practically writes itself. Well, not really. I'm not even sure what that's supposed to mean. I haven't cracked open CF9 yet, but it doesn't look like the changes are as significant as they were from 7 to 8.&lt;br /&gt;
&lt;br /&gt;
So why am I going to mix art in this blog? Everything should have a little (or healthy dose of) art. And it is the only other hobby of mine that I've done enough to come close to a profession. I've been drawing since was little. I wasn't great or anything, but I liked it. Web development seemed like a safer bet as far as income is concerned. My art sat on the back burner for a long time. Earlier this year I upgraded to &lt;a href="http://www.amazon.com/Corel-PTR11ENPCM-Painter-11/dp/B001TYYZCA?ie=UTF8&amp;amp;tag=webdev08d-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Painter 11&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=webdev08d-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B001TYYZCA" style="border: medium none ! important; margin: 0px ! important; padding: 0px ! important;" width="1" /&gt; (which was upgraded from v8, which was upgraded from v4 that my mom bought for me back in 95). I've been loving it. I think I've used it more in the past few months than I did in the previous 15 years. I opened an Etsy store (&lt;a href="http://3aby3lue.etsy.com/"&gt;3aby3lue.etsy.com&lt;/a&gt;) and listed some of my paintings. I'm still finding my style, but I like what I'm doing.&lt;br /&gt;
&lt;br /&gt;
This blog won't be all about me though. There are many other interesting people and things I want to share. Things like books/authors, music, movies, other artists and websites I like.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5098886702041678943-2636139818566232731?l=blog.bluepx.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bluepx.com/feeds/2636139818566232731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.bluepx.com/2010/04/allow-me-to-introduce-myself.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/2636139818566232731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5098886702041678943/posts/default/2636139818566232731'/><link rel='alternate' type='text/html' href='http://blog.bluepx.com/2010/04/allow-me-to-introduce-myself.html' title='Allow Me to Introduce Myself'/><author><name>Nathan</name><uri>http://www.blogger.com/profile/01824518995199791249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://4.bp.blogspot.com/_BF9Ppv5nrWc/S9pWoU_W5qI/AAAAAAAAAkI/5nWUqb_aQNA/S220/IMG_4017.JPG'/></author><thr:total>0</thr:total></entry></feed>
