<?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>Interactive.Octopus</title>
	<atom:link href="http://www.interactiveoctopus.com/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.interactiveoctopus.com/blog</link>
	<description>Coded Signals from the Deep</description>
	<lastBuildDate>Fri, 02 Sep 2011 13:45:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Validating a US Social Security Number with ColdFusion and Regex</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2011/09/validating-a-us-social-security-number-with-coldfusion-and-a-regex/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2011/09/validating-a-us-social-security-number-with-coldfusion-and-a-regex/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 13:39:32 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regular expression]]></category>
		<category><![CDATA[social security number]]></category>
		<category><![CDATA[ssn]]></category>
		<category><![CDATA[UDF]]></category>
		<category><![CDATA[validator]]></category>

		<guid isPermaLink="false">http://www.interactiveoctopus.com/blog/?p=484</guid>
		<description><![CDATA[I recently needed to verify that a user&#8217;s input was a valid US social security number.  Initially, I thought it was just a simple task of verifying 3 digits, a dash, 2 numbers, another dash, and finally 4 numbers.  However, as I started reading online, I realized that each block of numbers has a significance [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-490" title="ssn_validate" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2011/09/ssn_validate.png" alt="" width="309" height="171" /></p>
<p>I recently needed to verify that a user&#8217;s input was a valid US social security number.  Initially, I thought it was just a simple task of verifying 3 digits, a dash, 2 numbers, another dash, and finally 4 numbers.  However, as I started reading online, I realized that each block of numbers has a significance (which I assumed) and more importantly to my task, that they have specific numeric ranges.</p>
<p>If you want to read the details of the format then see the links at the bottom of the post.  The gist is that as of June 25, 2011, a valid social security number needs to follow the following guidelines:</p>
<ul>
<li>It must begin with 3 digits in a range from 001 to 899. The cap previously was 772, but was recently extended to 899.  They cannot be 666 (go figure), and as the range implies, they cannot be 000.   These numbers were originally associated with an assignment territory, but that is no longer the case for new numbers.  If you&#8217;re wondering about 900-999, the government holds those out for use in marketing materials, and other documentation.</li>
<li>The second set of numbers must be 2 digits in the range of 01 to 99. Similar to the first set, these can&#8217;t be 00. The government uses an odd/even number formula to determine which to use.  See the links for more information.</li>
<li>The last set of numbers is a set of 4 digits, in the range of 0001 to 9999, and also can&#8217;t be 0000.  These numbers are sequentially assigned to individual people as their unique id.</li>
</ul>
<p>So, armed with those guidelines, knowing that there are dashes between the sets, and after seeing how a few other people did this incorrectly, I came up with the following function to validate my data:</p>
<pre><span style="color: #ffff00;">function isValidSSN(value) </span>
<span style="color: #ffff00;">{ </span>
<span style="color: #ffff00;"> /* validates a US Social Security Number (SSN):</span>
<span style="color: #ffff00;"> + 3 digits from 001 to 899 (can't be 666)</span>
<span style="color: #ffff00;"> + 2 digits from 01 to 99 (based on some US govt odd/even formula)</span>
<span style="color: #ffff00;"> + 4 digits from 0001 to 9999 (assigned sequentially to individual people)</span>
<span style="color: #ffff00;"> + last section verifies that none of the number groups are all zeros</span>
<span style="color: #ffff00;"> */</span>
<span style="color: #ffff00;"> var re = '^([0-8]\d{2})([ \-]?)(\d{2})\2(\d{4})$'; </span>

<span style="color: #ffff00;"> if (ArrayLen(ReMatch(re,value)) == 0) { return false; } </span>

<span style="color: #ffff00;"> //remove the dashes &amp; spaces to check for zero sequences</span>
<span style="color: #ffff00;"> var temp = Replace(Replace(value,'-','','all' ),' ','','all' );</span>

<span style="color: #ffff00;"> if(Left(temp,3) == "000" || Left(temp,3) == "666") { return false; } </span>
<span style="color: #ffff00;"> if(Mid(temp,4,2) == "00") { return false; } </span>
<span style="color: #ffff00;"> if(Right(temp,4) == "0000") { return false; } </span>

<span style="color: #ffff00;"> return true; </span>
<span style="color: #ffff00;">}</span>
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">
</span></pre>
<p><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">Let&#8217;s break down the Regular Expression first. The first section handles the first 3 digit number set:</span></p>
<div>
<pre><span style="color: #ffff00;">^([0-8]\d{2})</span></pre>
<p>The ^ says this value must begin with the following pattern, inside the parenthesis, ( ).</p>
<p>Then [0-8]\d{2} tells the regex engine to match any number 0 through 8, [0-8] denotes the range, followed by any 2 other digits, 0 through 9, \d{2}. The \d means any digit, and the curly braced 2 says to look for that 2 times in a row.  So this piece matches 001, 235, 575, or 899.</p>
<p>The next section of the pattern simply says &#8220;followed by a space or a dash or nothing&#8221;.  The ? at the end means zero or 1 occurrence of the subexpression, which is why you only have to add the space and the dash literally:</p>
<div>
<pre><span style="color: #ffff00;">([ \-]?)</span></pre>
<p>The next section is also simple, stating that the next piece should be any 2 digits.  Again, \d means any digit 0-9:</p>
<pre><span style="color: #ffff00;">(\d{2})</span></pre>
<p>The next part, the \2 tells the regex engine to look for the second part of the expression again. In this case, look for a space, dash or nothing again between the second and third number sets.</p>
<p>And now for the last section, we simple need any 4 digits. The only new character here is the ? which is telling the engine that this expression inside the parenthesis, must come at the end of the pattern:</p>
<pre><span style="color: #ffff00;">(\d{4})$</span></pre>
</div>
<p>Now that we have brook down the pattern, the rest of the function is just simple string functions.  First we run this pattern agains our input value.  The <a href="http://cfquickdocs.com/cf9/#rematch" target="_blank">ReMatch() function</a> will return an array of the matched parts. So we run that, and check to see if the returned array has any length. If not, we immediately return False and the function ends:</p>
<div>
<pre><span style="color: #ffff00;">if (ArrayLen(ReMatch(re,value)) == 0) { return false; }</span></pre>
</div>
<p>In the last part, we need to check each number set to be sure that the numbers are all zeros and that the first set is also not all sixes. First we strip out any dashes and spaces, so we are working with a 9 digit number no matter what the user entered.  Then, with simple string functions, we check the first three digits, the middle 2 digits and finally the last three numbers.  If any of these matches our criteria of &#8220;000&#8243; or (&#8220;666&#8243; for the first set), we return false and end the function.</p>
</div>
<p>If all of these steps match; if we find the patterns allowed, and none of those are all zeros, or sixes in the first set, then we simple return True, letting the user know that the value they entered is indeed a valid US Social Security based on the regulations as of June 25, 2011.</p>
<p>Sources:</p>
<p><a href="http://en.wikipedia.org/wiki/Social_Security_number#cite_note-20" target="_blank">Wikipedia: &#8220;Social Security Number&#8221;</a></p>
<p><a href="http://www.socialsecurity.gov/history/ssn/geocard.html" target="_blank">Social Security Online: History</a></p>
<p><a href="http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0a38f-7ffb.html#WSc3ff6d0ea77859461172e0811cbec0a38f-7fef" target="_blank">ColdFusion 9: Regular Expression Syntax</a></p>
<p><a href="http://cfquickdocs.com/cf9/#rematch" target="_blank">CFQuickDocs: ReMatch()</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2011/09/validating-a-us-social-security-number-with-coldfusion-and-a-regex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Technology, Namely the iPad, Changes How Baseball is Played</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2011/08/how-technology-namely-the-ipad-changes-how-baseball-is-played/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2011/08/how-technology-namely-the-ipad-changes-how-baseball-is-played/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 14:53:33 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Tech News]]></category>
		<category><![CDATA[Apple iPad Sports ESPN]]></category>

		<guid isPermaLink="false">http://www.interactiveoctopus.com/blog/?p=472</guid>
		<description><![CDATA[Pretty interesting article about how current technology, especially the Apple iPad, is helping baseball players keep up with the industry, track stats, improve their game and better prepare for their competition. Read More]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 310px"><img title="Knowledge is Power" src="http://a.espncdn.com/photo/2011/0830/mlb_g_asipads_300.jpg" alt="Knowledge is Power" width="300" height="200" /><p class="wp-caption-text">Michael Zagaris/Getty Images   &quot;Knowledge is Power&quot;</p></div>
<p>Pretty interesting article about how current technology, especially the Apple iPad, is helping baseball players keep up with the industry, track stats, improve their game and better prepare for their competition. <a href="http://espn.go.com/mlb/story/_/id/6908844/information-age-changing-way-game-played" target="_blank">Read More</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2011/08/how-technology-namely-the-ipad-changes-how-baseball-is-played/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Microsoft&#8217;s Idea of Streamlining Windows 8</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2011/08/microsofts-idea-of-streamlining-windows-8/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2011/08/microsofts-idea-of-streamlining-windows-8/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 14:11:40 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Tech News]]></category>
		<category><![CDATA[microsoft UI UX OS]]></category>

		<guid isPermaLink="false">http://www.interactiveoctopus.com/blog/?p=469</guid>
		<description><![CDATA[This is just horrible, to think that Microsoft actually believes that this UI experience is better for their users. Windows 98 was better than this! I also notice the OSX folder naming scheme, so sadly they are even looking at better and still miss the mark. Read more here. See some other user perspectives here.]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 328px"><img class=" " title="Windows8UI" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/7245.Figure_2D00_8_2D002D002D00_Win8_2D00_Hero_5F00_449B7A36.png" alt="Windows 8 UI" width="318" height="358" /><p class="wp-caption-text">Windows 8 UI</p></div>
<p>This is just horrible, to think that Microsoft actually believes that this UI experience is better for their users. Windows 98 was better than this!</p>
<p>I also notice the OSX folder naming scheme, so sadly they are even looking at better and still miss the mark.</p>
<p>Read <a href="http://bit.ly/oEiau5" target="">more here</a>.</p>
<p>See some other <a href="http://bit.ly/qM4MRS" target="_blank">user perspectives here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2011/08/microsofts-idea-of-streamlining-windows-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accessing Extended Attributes in Nested Mura Pages</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2010/11/accessing-extended-attributes-in-nested-mura-pages/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2010/11/accessing-extended-attributes-in-nested-mura-pages/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 20:35:13 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>
		<category><![CDATA[Class Extension Manager]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Extended Attributes]]></category>
		<category><![CDATA[Mura]]></category>
		<category><![CDATA[Portal]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.interactiveoctopus.com/blog/?p=461</guid>
		<description><![CDATA[I recently updated a Mura CMS site I maintain, by adding a new &#8220;portal of portals&#8221; section. The main portal listed a series of guest authors that are writing articles for our site. Each author block in the portal list was actually its own portal or article pages. This is all common practice in Mura [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.interactiveoctopus.com/blog/wp-content/uploads/2010/11/mura-screen-small.gif"><img class="alignleft size-full wp-image-465" title="mura-screen-small" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2010/11/mura-screen-small.gif" alt="" width="261" height="206" /></a>I recently updated a <a href="http://www.getmura.com/mura/" target="_blank">Mura CMS</a> site I maintain, by adding a new &#8220;portal of portals&#8221; section. The main portal listed a series of guest authors that are writing articles for our site.  Each author block in the portal list was actually its own portal or article pages. This is all common practice in Mura and in my opinion, one of the areas where it excels at adding content.</p>
<p>All the pages in this section are a two-column, 70/30 layout, with the main content on the left and some author specific information in the right. Both the author article portal list and each article all have the same content on the right, so I made an &#8220;authors info&#8221; component for that information. This content is a set of the author&#8217;s favorite Web sites. To make that content easy for my Editors to maintain, I extended the author&#8217;s portal template in the <a href="http://docs.getmura.com/index.cfm/developer-guides/back-end-development/the-class-extension-manager/" target="_blank">Class Extension Manager</a>, and added new attributes to collect the link information. In my case, I added 10 fields to collect up to 5 links in the form of a Text/URL combination. My attributes are named Link1Text, Link1Url, Link2Text, Link2Url and so on.</p>
<p>So I now have one common &#8220;authors info&#8221; component in mu Mura admin that I include in the right side of my two column layout. The code view of that component looks like this:</p>
<pre>&lt;div class="span-7 last sidebar"&gt;
   &lt;img alt="About the Author" src="/xyzsite/assets/Image/sidebars/sidebar_authorsinfo.gif" /&gt;

   &lt;p style="font-style: italic;"&gt;"Take a look at some of my favorite sites"&lt;/p&gt;
   &lt;ul&gt;
	[mura]dspInclude('display_objects/custom/ali/dsp_authorsInfo.cfm')[/mura]
   &lt;/ul&gt;

&lt;!--- static content to link users to other author sections ---&gt;
   &lt;hr width="50px" /&gt;
   &lt;p&gt;See all of our authors pages:&lt;/p&gt;
   &lt;ul&gt;
	&lt;li&gt; &lt;a href="/index.cfm/articles/author/Author-A/"&gt;Author A&lt;/a&gt; &lt;/li&gt;
	&lt;li&gt; &lt;a href="/index.cfm/articles/author/Author-B/"&gt;Author A&lt;/a&gt; &lt;/li&gt;
	&lt;li&gt; &lt;a href="/index.cfm/articles/author/Author-C/"&gt;Author A&lt;/a&gt; &lt;/li&gt;
	&lt;li&gt; &lt;a href="/index.cfm/articles/author/Author-D/"&gt;Author A&lt;/a&gt; &lt;/li&gt;
	&lt;li&gt; &lt;a href="/index.cfm/articles/author/Author-E/"&gt;Author A&lt;/a&gt; &lt;/li&gt;
   &lt;/ul&gt;
&lt;/div&gt;</pre>
<p>To pull the links and information into the component, I made a custom Mura display file (a CMF file) that I include in my template.  That file started like this:</p>
<p><span style="color: #800000;"><code>/xyzsite/includes/display_objects/custom/xyz/dsp_authorsInfo.cfm</code></span></p>
<pre>&lt;cfloop from="1" to="5" index="x"&gt;
   &lt;cfset txt = $.content('Link'&amp;x&amp;'Text')/&gt;
   &lt;cfset lnk = $.content('Link'&amp;x&amp;'Url')/&gt;

   &lt;cfif (len(txt) GT 0) AND (len(lnk) GT 0)&gt;
      &lt;cfoutput&gt;
           &lt;li&gt;&lt;a href="#lnk#"&gt;#txt#&lt;/a&gt;&lt;/li&gt;
      &lt;/cfoutput&gt;
   &lt;/cfif&gt;
&lt;/cfloop&gt;
</pre>
<p>In my Extended Attributes I have fields that collect a link and the text to hyperlink for up to 5 links. So here I run a loop from 1 to 5, set my link and text values, and then if both have content I add them as a list item.</p>
<p>When i saved all of this and reloaded an author&#8217;s portal page, I saw my links loaded as expected.  However, when I opened an actual article written by that author, all I saw at the on the right was &#8220;Take a look at some of my favorite sites&#8221; then nothing. That is because my extended attributes are part of the main portal page and not the article sub-page. If you look at the code, I am loading Mura&#8217;s &#8220;content&#8221; object. The <a href="http://docs.getmura.com/?LinkServID=6E472481-58B6-4E41-B621113493FC3933&amp;showMeta=0" target="_blank">Mura Programer&#8217;s Guide</a> explains that the &#8220;&#8230;Content scope wraps the CURRENT front end request&#8217;s contentBean&#8221;. So when I look at the portal page, where the custom link attributes are defined, they are available in the content scope.</p>
<p>So, if I can only get the currently loaded page&#8217;s info in the content bean, then how can I get the content from other pages?  In my case, the Programmer&#8217;s Guide led me to a very simple solution: call the  parent object using the getParent() method of the $.content() method.  Doing this will return the data from the current&#8217;s page&#8217;s parent page as a contentBean.  With that knowledge I updated my custom display file as so:</p>
<p><span style="color: #800000;"><code>/xyzsite/includes/display_objects/custom/xyz/dsp_authorsInfo.cfm</code></span></p>
<pre>&lt;cfloop from="1" to="5" index="x"&gt;
&lt;cfsilent&gt;
   &lt;cfset page = ListLast(cgi.PATH_INFO,'/') /&gt;

   &lt;cfif  (page IS 'Author-A')
       OR (page IS 'Author-B')
       OR (page IS 'Author-C')
       OR (page IS 'Author-D')
       OR (page IS 'Author-E')
   &gt;
     &lt;!--- user is on a author portal page where the link values are available ---&gt;
     &lt;cfset txt = $.content('Link'&amp;x&amp;'Text')/&gt;
     &lt;cfset lnk = $.content('Link'&amp;x&amp;'Url')/&gt;
   &lt;cfelse&gt;
     &lt;!--- user is on a article page, so grab info from the parent ---&gt;
     &lt;cfset parentBn = $.content().getParent() /&gt;
     &lt;cfset txt = parentBn.getValue('Link'&amp;x&amp;'Text')/&gt;
     &lt;cfset lnk = parentBn.getValue('Link'&amp;x&amp;'Url')/&gt;
   &lt;/cfif&gt;

   &lt;cfif (len(lnk) GT 0) AND (lnk CONTAINS 'mysitedomain.com')&gt;
       &lt;cfset openIn = "_self" /&gt;
   &lt;cfelse&gt;
       &lt;cfset openIn = "_blank" /&gt;
   &lt;/cfif&gt;
&lt;/cfsilent&gt;
   &lt;cfif (len(txt) GT 0) AND (len(lnk) GT 0)&gt;
       &lt;cfoutput&gt;
          &lt;li&gt;&lt;a href="#lnk#" target="#openIn#"&gt;#txt#&lt;/a&gt;&lt;/li&gt;
       &lt;/cfoutput&gt;
   &lt;/cfif&gt;
&lt;/cfloop&gt;
</pre>
<p>As you can see, at the top I updated my code to determine if the right side component was being loaded on an author&#8217;s page, by looking at a CGI var. If so, I set my links the same way I did originally. If not, then I assume the right side component is being loaded on a nested article page, so I first get my parent page&#8217;s contentBean, then set my links that way.  In addition, I added some code to determine my link&#8217;s target value.</p>
<p>This all seems to work well.  I would like to dig a little deeper and find out if I can dynamically find out how many attributes my page has.  That way I wouldn&#8217;t need to hard code the 1 to 5 loop, and could easily add more link pairs in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2010/11/accessing-extended-attributes-in-nested-mura-pages/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Blast from CF&#8217;s Past!</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2010/09/blast-from-cfs-past/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2010/09/blast-from-cfs-past/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 13:43:42 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[floppy disk]]></category>
		<category><![CDATA[Macbook Pro]]></category>

		<guid isPermaLink="false">http://www.interactiveoctopus.com/blog/?p=454</guid>
		<description><![CDATA[Yesterday, a co-worker brought me a 3.25&#8243; floppy disk and asked if my Macbook could open it (you know because Mac&#8217;s never update their storage tech!). As it turns out, I could open the disk, as I still have an old VST USB Floppy Drive lying around in a drawer at home. When he told [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-455" title="325_floppy" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2010/09/325_floppy.jpeg" alt="3.25 inch Floppy Disk" width="181" height="136" /></p>
<p>Yesterday, a co-worker brought me a <a href="http://en.wikipedia.org/wiki/Floppy_disk#3.C2.BD-inch_floppy_disk" target="_blank">3.25&#8243; floppy disk</a> and asked if my <a href="http://www.apple.com/macbookpro/" target="_blank">Macbook</a> could open it (you know because Mac&#8217;s never update their storage tech!). As it turns out, I could open the disk, as I still have an old <a href="http://legacy.macnn.com/thereview/reviews/vst/floppy.shtml" target="_blank">VST USB Floppy Drive</a> lying around in a drawer at home. When he told me that the disk stored some ColdFusion code from an old project they worked on in 1996. I became very motivated to help out, mainly just wanting to see some of their old code.</p>
<p>Well, today I brought in my disk and we cracked open the file.  There wasn&#8217;t any code, but there was some old libraries, MAPIPOP and SMTPGATE (both Windows .exe files to add functionality to their old project) and a ColdFusion White Paper as an HTML file. Turns out it&#8217;s from Allaire and is a white paper on ColdFusion version 1.5!  Yes I said 1.5.  I thought it was pretty neat to see what they supported then and some of the code examples.  The link to the file is below.  None of the links work of course and none of the images were on the disk, so it&#8217;s sort of bare bones.  At any rate, I got a kick out of reading it.  Hope you will too!</p>
<p><a href="http://www.interactiveoctopus.com/blog/wp-content/uploads/2010/09/CFWHITEP.htm" target="_self">COLD FUSION PROFESSIONAL 1.5 : AN ALLAIRE WHITE PAPER</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2010/09/blast-from-cfs-past/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jira Filters with Multiple Users</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2010/09/jira-filters-with-multiple-users/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2010/09/jira-filters-with-multiple-users/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 12:03:35 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>
		<category><![CDATA[atlassian]]></category>
		<category><![CDATA[issue management]]></category>
		<category><![CDATA[jira]]></category>
		<category><![CDATA[jql]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[time tracking]]></category>

		<guid isPermaLink="false">http://www.interactiveoctopus.com/blog/?p=447</guid>
		<description><![CDATA[My team at work uses Atlassian&#8217;s Jira® for tracking our bugs and other work tasks. We recently started tracking all of our time in Jira as well. It&#8217;s really easy to do. You enter in estimates for each issue, then &#8220;log work&#8221; against the issues as you work. If you also use the Eclipse plugin, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.interactiveoctopus.com/blog/wp-content/uploads/2010/09/logo-jira-full.jpeg"><img class="alignleft size-full wp-image-449" title="logo-jira-full" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2010/09/logo-jira-full.gif" alt="" width="165" height="78" /></a>My team at work uses <a href="http://www.atlassian.com/software/jira/" target="_blank">Atlassian&#8217;s Jira<sup>®</sup></a> for tracking our bugs and other work tasks.  We recently started tracking all of our time in Jira as well.  It&#8217;s really easy to do. You enter in estimates for each issue, then &#8220;log work&#8221; against the issues as you work. If you also use the <a href="http://www.eclipse.org/" target="_blank">Eclipse</a> plugin, <a href="http://www.atlassian.com/software/ideconnector/eclipse.jsp" target="_blank">Atlassian Connector</a>, you can tag files or directories of files to log work anytime they are open and in focus. I&#8217;ll save that for another post.</p>
<p>To track non-project tasks, my team has issue tickets for all our &#8220;Administration&#8221; tasks, like staff meetings, trainings, management, etc.  These are unassigned issues, and most of which don&#8217;t have estimates. We all just add our time to those open buckets and our manager runs reports on them for his needs.</p>
<p>For our vacation time we have a vacation issue with a sub-task for each employee. Each sub-task has an estimate of the total amount of vacation days we get in a year. That way, we can see how much time we have left as we bill against it.</p>
<p>I wanted a Jira filter that would show me all the unassigned Admin tickets I could bill time to, and just my vacation sub-task ticket (not everybody&#8217;s vacation sub-tasks). The simple filter controls don&#8217;t offer a way to filter by multiple users, in this case unassigned and my user id. However, Jira has its own Jira Query Language (JQL) that allows you to query the underlying database and get almost any data set you need.</p>
<p>So I started with a simple filter to pull all the Admin tasks, then switched over to advanced mode and updated the simple filter&#8217;s JQL to be:</p>
<pre>project = ADM AND (assignee is EMPTY OR assignee = currentUser()) AND status = Open ORDER BY priority DESC</pre>
<p>This works great and we have one filter that everybody can use because I used the currentUser() function to grab the time sub-task.  If you wanted to specify your user id specifically you would just change &#8220;<span style="color: #800000;">assignee = currentUser()</span>&#8221; to &#8220;<span style="color: #800000;">assignee = yourusername</span>&#8220;.</p>
<div id="attachment_452" class="wp-caption aligncenter" style="width: 488px"><a href="http://www.interactiveoctopus.com/blog/wp-content/uploads/2010/09/jira_admintasks.png"><img class="size-full wp-image-452 " title="jira_admintasks" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2010/09/jira_admintasks.png" alt="" width="478" height="221" /></a><p class="wp-caption-text">Final filter showing all the Admin tasks and only my vacation task</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2010/09/jira-filters-with-multiple-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New ColdFusion fw/1 Cheatsheet</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2010/07/new-coldfusion-fw1-cheatsheet/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2010/07/new-coldfusion-fw1-cheatsheet/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 16:06:56 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>
		<category><![CDATA[cheatsheet]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[fw/1]]></category>
		<category><![CDATA[mvc]]></category>

		<guid isPermaLink="false">http://www.interactiveoctopus.com/blog/?p=439</guid>
		<description><![CDATA[Matt Jones posted a link on {quicklycode} for a single page fw/1 cheatsheet. Framework One (FW/1) is Sean Corfield’s ColdFusion framework that is described as a lightweight, convention-over-configuration MVC framework for CF. Enjoy!]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><a href="http://www.interactiveoctopus.com/blog/wp-content/uploads/2010/07/fw1.jpg"><img class="aligncenter size-full wp-image-437" style="border: 1px solid black; margin-top: 3px; margin-bottom: 3px;" title="fw1 cheatsheet" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2010/07/fw1.jpg" alt="fw1 cheatsheet" width="573" height="213" /></a><br />
Matt Jones posted a link on <a href="http://www.quicklycode.com/" target="_blank">{quicklycode}</a> for a <a href="http://www.quicklycode.com/cheatsheets/fw1-framework-one-cheat-sheet" target="_blank">single page fw/1 cheatsheet</a>. <a href="http://wiki.github.com/seancorfield/fw1/" target="_blank">Framework One (FW/1)</a> is <a href="http://corfield.org/blog/" target="_blank">Sean Corfield’s</a> ColdFusion framework that is described as a lightweight, convention-over-configuration <a href="http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller" target="_self">MVC</a> framework for CF. Enjoy!</p>
<p style="text-align: left;">
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2010/07/new-coldfusion-fw1-cheatsheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Harry Potter and the Deathly Hallows:Part I &#8211; Trailer 2</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2010/07/more-harry-potter-and-the-deathly-hallowspart-i-trailer-2/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2010/07/more-harry-potter-and-the-deathly-hallowspart-i-trailer-2/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 19:29:36 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Media]]></category>
		<category><![CDATA[Harry Potter]]></category>
		<category><![CDATA[Movies]]></category>

		<guid isPermaLink="false">http://www.interactiveoctopus.com/blog/?p=433</guid>
		<description><![CDATA[A few days ago, I posted about the first trailer for Harry Potter and the Deathly Hallows: Part I. Well now Warner Brothers has released a second trailer, as part of a Lego Harry Potter promotion. The first film, directed by David Yates, is due in theaters Nov. 19. Enjoy! source: SciFi Wire]]></description>
			<content:encoded><![CDATA[<p>A few days ago, I <a href="http://www.interactiveoctopus.com/blog/?p=427">posted</a> about the first trailer for <em><a href="http://www.imdb.com/title/tt0926084/" target="_blank">Harry Potter and the Deathly Hallows: Part I</a></em>. Well now Warner Brothers has released a second trailer, as part of a <a href="http://gamerant.com/harry-potter-deathly-hallows-game-evan-24206/" target="_blank">Lego Harry Potter</a> promotion. The first film, directed by <a href="http://www.imdb.com/name/nm0946734/" target="_blank">David Yates</a>, is due in theaters Nov. 19. Enjoy!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/pHEMgFGri_Y&amp;rel=0&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/pHEMgFGri_Y&amp;rel=0&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>source: <a href="http://bit.ly/b7xJlQ" target="_blank">SciFi Wire</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2010/07/more-harry-potter-and-the-deathly-hallowspart-i-trailer-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Harry Potter and the Deathly Hallows:Part I &#8211; Trailer 1</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2010/06/harry-potter-and-the-deathly-hallowspart-i-trailer-1/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2010/06/harry-potter-and-the-deathly-hallowspart-i-trailer-1/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 19:07:20 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Media]]></category>
		<category><![CDATA[Harry Potter]]></category>
		<category><![CDATA[Movies]]></category>

		<guid isPermaLink="false">http://www.interactiveoctopus.com/blog/?p=427</guid>
		<description><![CDATA[Warner Brothers&#8217; Harry Potter and the Deathly Hallows: Part I, directed by David Yates, is due in theaters Nov. 19 source: SciFi Wire]]></description>
			<content:encoded><![CDATA[<p>Warner Brothers&#8217; <em><a href="http://www.imdb.com/title/tt0926084/" target="_blank">Harry Potter and the Deathly Hallows: Part I</a></em>, directed by <a href="http://www.imdb.com/name/nm0946734/" target="_blank">David Yates</a>, is due in theaters Nov. 19</p>
<p><object id="p34ogeth" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="596" height="425" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="bgcolor" value="#ffffff" /><param name="wmode" value="transparent" /><param name="base" value="." /><param name="flashvars" value="mkt=en-US&amp;brand=&amp;fg=&amp;from=sp&amp;configName=syndicationplayer&amp;configCsid=msnvideo&amp;player.v=f2822d1e-af61-45f5-b674-f3f697170e3d&amp;" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://images.video.msn.com/flash/customplayer/1_0/customplayer.swf" /><param name="allowfullscreen" value="true" /><embed id="p34ogeth" type="application/x-shockwave-flash" width="596" height="425" src="http://images.video.msn.com/flash/customplayer/1_0/customplayer.swf" allowscriptaccess="always" allowfullscreen="true" flashvars="mkt=en-US&amp;brand=&amp;fg=&amp;from=sp&amp;configName=syndicationplayer&amp;configCsid=msnvideo&amp;player.v=f2822d1e-af61-45f5-b674-f3f697170e3d&amp;" base="." wmode="transparent" bgcolor="#ffffff"></embed></object></p>
<p>source: <a href="http://bit.ly/bVyD9F" target="_blank">SciFi Wire</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2010/06/harry-potter-and-the-deathly-hallowspart-i-trailer-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The CFSELECT Validation Bug that isn&#8217;t a Bug</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2010/06/the-cfselect-validation-bug-that-isnt-a-bug/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2010/06/the-cfselect-validation-bug-that-isnt-a-bug/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 15:55:42 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[cfform]]></category>
		<category><![CDATA[cfselect]]></category>
		<category><![CDATA[ColdFusion]]></category>

		<guid isPermaLink="false">http://www.interactiveoctopus.com/blog/?p=412</guid>
		<description><![CDATA[For years, I have seen ColdFusion developers complain (myself included) about the validation functionality of the &#60;CFSELECT&#62; tag. The basic issue goes like this; supposed you have a select menu with the following options: &#60;cfselect name="employeeid" required="Yes" message="Please select an employee"&#62; &#60;option value = "" selected&#62;Please Select an Employee...&#60;/option&#62; &#60;option value = "1"&#62;Bob Burns&#60;/option&#62; &#60;option [...]]]></description>
			<content:encoded><![CDATA[<p>For years, I have seen <a href="http://www.adobe.com/products/coldfusion/" target="_blank">ColdFusion</a> developers complain (<a href="http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:911" target="_blank">myself included</a>) about the validation functionality of the <code>&lt;CFSELECT&gt;</code> tag. The basic issue goes like this; supposed you have a select menu with the following options:</p>
<pre>&lt;cfselect name="employeeid" required="Yes" message="Please select an employee"&gt;
     &lt;option value = "" selected&gt;Please Select an Employee...&lt;/option&gt;
     &lt;option value = "1"&gt;Bob Burns&lt;/option&gt;
     &lt;option value = "2"&gt;Sally Jones&lt;/option&gt;
     &lt;option value = "3"&gt;John Smith&lt;/option&gt;
&lt;/cfselect&gt;</pre>
<p>In this scenario, you have a select list with choices, where your first choice is basically an instruction.  You have set the component to be required, so if the user submits your form and hasn&#8217;t chosen a select option, then you expect to see a JavaScript alert with the message value you supplied.  However, none of this happens when the form is submitted.</p>
<p>In general, ColdFusion has built in <a href="http://en.wikipedia.org/wiki/JavaScript" target="_blank">JavaScript</a> that it dynamically generates for any <code>&lt;CFFORM&gt;</code> that has fields with validations. You set the validations you want to occur, like &#8220;required=&#8217;yes&#8217;&#8221; or &#8220;validate=&#8217;integer&#8217;&#8221;, and the appropriate JS is generated at run-time to check your fields.  So if you asked for your <code>&lt;CFSELECT&gt; </code>field to be validated, then why isn&#8217;t it being checked? Is this a bug?</p>
<p>The short answer is NO, this is not a bug. Your field is being checked and it is passing the check because an option is selected.  It&#8217;s the initial &#8220;instruction&#8221; option.  I&#8217;ve asked about this several times, both in Adobe forums, and in person at conferences.  The answer is always the same.  From Adobe&#8217;s point of view, this is the intended functionality of the <code>&lt;CFSELECT&gt;</code> component.  They will contend that there could be situations when this is how you expect your component to be checked.  So it is not a bug and thus will more than likely no be changed. What most developers want, is to validate that the selected &#8220;value&#8221; is not empty, which is technically custom functionality.  Now, it would be nice to have an optional attribute of &#8220;validate=&#8217;value&#8217;&#8221; on the <code>&lt;CFSELECT&gt; </code>tag that would fire if the value is empty/blank/null.  So perhaps a feature request is in order!</p>
<p>So what do you do if Adobe says there isn&#8217;t anything to fix, but you need to validate your <code>&lt;CFSELECT&gt;</code> component for a value? What most developers do is customize the Javascript template file that ColdFusion uses to generate its code.  This file is located at:  <code>[YOUR WEB ROOT]/CFIDE/scripts/cfform.js</code></p>
<p>In CF7, down around line #73, you needed to change:</p>
<pre>else if (obj_type == "SELECT")
{
for (i=0; i &lt; obj.length; i++)
{
<strong>if (obj.options[i].selected)</strong>
return true;
}
return false;
}</pre>
<p>to</p>
<pre>else if (obj_type == "SELECT")
{
for (i=0; i &lt; obj.length; i++)
{
<strong>if (obj.options[i].selected &amp;&amp; obj.options[i].value != "")</strong>
return true;
}
return false;
}</pre>
<p>If you&#8217;re using CF8, the fix is almost identical:</p>
<pre>return true;
}else{
if(_c=="SELECT"){
for(i=0;i&lt;_b.length;i++){
<strong>if(_b.options[i].selected){</strong>
return true;
}</pre>
<p>changes to:</p>
<pre>return true;
}else{
if(_c=="SELECT"){
for(i=0;i&lt;_b.length;i++){
<strong>if (_b.options[i].selected &amp;&amp; _b.options[i].value != '') {</strong>
return true;
}</pre>
<p>Here is the same fix for CF9, provided by <a href="http://www.barthle.com/blog/post.cfm/cfselect-validation-bug-still-exists-in-cf9" target="_blank">Rob at Rob&#8217;s Ramblings</a>:</p>
<pre>if(_c=="SELECT"){
for(i=0;i&lt;_b.length;i++){
<strong>if(_b.options[i].selected){</strong>
return true;
}</pre>
<p>to:</p>
<pre>if(_c=="SELECT"){
for(i=0;i&lt;_b.length;i++){
<strong>if(_b.options[i].selected &amp;&amp; _b.options[i].value !=''){</strong>
return true;
}</pre>
<p>Basically, you&#8217;re just telling your validation code to throw an error if the select doesn&#8217;t have a selected value AND if that value is blank.  Note, you will more than likely need to restart your ColdFusion service to make sure these changes are recognized.</p>
<p>Also, another related issue that trips up some people is the cfform.js file not loading.  If you have anything other than a simple single site vanilla installation (most people do), you will often see an error that the cfform.js file can&#8217;t be found, so none of your validations work.  To remedy that, simply add the path to the file to your <code>&lt;CFFORM&gt;</code>&#8216;s scriptsrc attribute like this:</p>
<pre>&lt;cfform name="myForm" scriptsrc="CFIDE/scripts/cfform.js"&gt;
.....
&lt;/cfform&gt;</pre>
<p>Your CF install should have set up a mapping to your /CFIDE directory, so this should work.  If you don&#8217;t have that mapping, you&#8217;ll also need to <a href="http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf3638e6-7ffc.html#WSc3ff6d0ea77859461172e0811cbf364104-7ff9" target="_blank">add that in the CF Administrator</a>.</p>
<p>What happens if you are on a shared hosted server and don&#8217;t have access to the cfform.js file and can&#8217;t restart your CF instance? In that case, you need to put a copy of the scripts directory somewhere in your site (you can get it from a demo/dev CF install), and then use the path to that version in your <code>&lt;CFFORM&gt;</code>&#8216;s scriptsrc attribute.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2010/06/the-cfselect-validation-bug-that-isnt-a-bug/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MAXwidget</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2009/09/maxwidget/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2009/09/maxwidget/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 06:44:46 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/2009/09/10/maxwidget/</guid>
		<description><![CDATA[No matter where you are, Adobe MAX 2009 Online is your ticket to experiencing Adobe MAX 2009 on demand. Whether you joined us in Los Angeles and want to revisit your favorite sessions and keynotes or you want to catch up on everything you missed, this is where you&#8217;ll find links to the webcast keynotes [...]]]></description>
			<content:encoded><![CDATA[<p><img style="visibility: hidden; width: 0px; height: 0px;" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyNzczNDY5MzAxNzcmcHQ9MTI3NzM*NzAyMDE3NyZwPTc3NDM3MSZkPW1heDA5d2lkZ2V*Jmc9MiZvPTY5YTYxZWFj/MDEwZTQ*MTM4NGJmMTEyYzBhZGIzMTBiJm9mPTA=.gif" border="0" alt="" width="0" height="0" /></p>
<p><a href="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/11/adobeMax_small1.png"><img class="alignleft size-full wp-image-252" title="adobeMax_small" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/11/adobeMax_small1.png" alt="" width="100" height="100" /></a>No matter where you are, Adobe MAX 2009 Online is your ticket to experiencing Adobe MAX 2009 on demand. Whether you joined us in Los Angeles and want to revisit your favorite sessions and keynotes or you want to catch up on everything you missed, this is where you&#8217;ll find links to the webcast keynotes and the session catalog, where you can access more than <a href="http://2009.max.adobe.com/scheduler/#view=1" target="_blank">200 sessions for instant viewing</a>.</p>
<p><object id="MaxWidget" style="margin: 0 auto;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="bgcolor" value="#869ca7" /><param name="allowScriptAccess" value="sameDomain" /><param name="FlashVars" value="crtr=1&amp;gig_lt=1277346930177&amp;gig_pt=1277347020177&amp;gig_g=2" /><param name="src" value="http://max.adobe.com/widget/MaxWidget.swf" /><param name="name" value="MaxWidget" /><param name="align" value="middle" /><param name="flashvars" value="crtr=1&amp;gig_lt=1277346930177&amp;gig_pt=1277347020177&amp;gig_g=2" /><embed id="MaxWidget" style="margin: 0 auto;" type="application/x-shockwave-flash" width="400" height="400" src="http://max.adobe.com/widget/MaxWidget.swf" align="middle" name="MaxWidget" flashvars="crtr=1&amp;gig_lt=1277346930177&amp;gig_pt=1277347020177&amp;gig_g=2" allowscriptaccess="sameDomain" bgcolor="#869ca7" quality="high"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2009/09/maxwidget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Key Notes from Apple&#8217;s Big Keynote</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2009/06/key-notes-from-apples-big-keynote/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2009/06/key-notes-from-apples-big-keynote/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 01:09:16 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Media]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/2009/06/08/key-notes-from-apples-big-keynote/</guid>
		<description><![CDATA[Unless you live under a rock, then you probably heard that Apple Inc. announced the details of it&#8217;s next iPhone product, the iPhone 3Gs. Those details and others were announced today at Apple&#8217;s Worldwide Developers Conference keynote address. In addition to the iPhone news, Apple also talked about the new features in it&#8217;s next operating [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-228" title="wwdc09_badge" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2009/06/wwdc09_badge-300x300.png" alt="Apple World Wide Developer Conference Badge" width="300" height="300" />Unless you live under a rock, then you probably heard that <a href="http://www.apple.com/" target="_blank">Apple Inc</a>. announced the details of it&#8217;s next iPhone product, the iPhone 3Gs. Those details and others were announced today at Apple&#8217;s Worldwide Developers Conference keynote address. In addition to the iPhone news, Apple also talked about the new features in it&#8217;s next operating system release, dubbed &#8220;Snow Leopard,&#8221; the details of the new iPhone operating system and the benefits to iPhone application developers, and finally some new news of laptop upgrades and price cuts.</p>
<p>While I sadly wasn&#8217;t at the event live in person, like many people I watched several live streaming feds on popular sites like MacRumors.com. I posted the highlights of the keynote speeches to my Twitter account. Below is a list of those highlights, dubbed the Keynote Key Notes:</p>
<ul>
<li>Apple updates MacBook Air and drops price. MacBook Air is available in two models starting with the new entry price of $1,499 for a 1.86 GHz Intel Core 2 Duo system with a 120GB hard drive and NVIDIA GeForce 9400M graphics, and a 2.13 GHz Intel Core 2 Duo system with a 128GB solid state drive and NVIDIA GeForce 9400M graphics for $1,799. The $1499 entry level price represents a $300 drop from before, while the $1799 model represents a $700 drop in price for the high end model. Meanwhile, the clock speeds have increased from 1.6GHz and 1.8GHz to 1.86GHz and 2.13GHz respectively.</li>
<li>Apple updated the 13&#8243; Aluminum MacBook and rebrands it a MacBook Pro. the new model specs are: 13&#8243; MacBook Pro. 2.26GHz. 2GB RAM, NVIDIA GeForce 9400. 160GB HD. Firewire for $1199 and 13&#8243; MacBook Pro. 2.53GHz. 4GB RAM, NVIDIA GeForce 9400. 250GB HD. Firewire for $1499</li>
<li>Safari is 7.8X faster at JavaScript than IE8 (Chrome is only 5X faster). Passes Acid3 test</li>
<li>Built Expose into the Dock</li>
<li>Stacks handle lots of content better</li>
<li>Quicktime X player has a brand new interface (although a scary new Icon)</li>
<li>Snow Leopard adds full Exchange support to Mail, iCal, etc.</li>
<li>Snow Leopard will be a $29 upgrade for Leopard users</li>
<li>Snow Leopard FAMILY PACK will be a $49 upgrade for Leopard users</li>
<li>iPhone OS 3.0 is a major update with over 100 new features</li>
<li>Phone OS 3 has integrated copy paste between applications, undo support</li>
<li>Phone OS 3 has Cocoa Touch support for Text</li>
<li>Phone OS 3 adds MMS support from all carriers and soon from AT&amp;T (personally I bet they are trying to negotiate it to be included in the plan)</li>
<li>iPhone OS 3 offers landscape mode in Mail/Notes/Messages</li>
<li>the new iPhone OS will include full Spotlight search across applications</li>
<li>iPhone applications now offer full parental controls. Application developers are encouraged to push out application updates with these controls enabled as needed.</li>
<li>iTunes users can now purchase movies, video, and iTunes U materials from the iPhone directly</li>
<li>The new iPhone will offer seamless tethering although it is not yet super clear how AT&amp;T will implement / charge for those services</li>
<li>The iPhone&#8217;s version of Safari has better and faster Javascript support and HTML 5 support</li>
<li>The iPhone OS 3 offers tons of new languages support (Hebrew, Arabic, Greek, Korean, Thai, etc)</li>
<li>MobileMe users can find their lost iPhone on a Google Map if they need to</li>
<li>If your iphone is lost or stolen, you can send it a remote wipe command that will delete all of your data w/ MobileMe</li>
<li>in-app purchases can now be made directly from the iPhone. An example app shown was a book store where you could order books all from the application</li>
<li>Peer to Peer connectivity via Bluetooth will enable things like head to head game play and many other new application ideas</li>
<li>The new iPhone OS opens up support for external hardware accessories. This was demonstrated with an application that allowed school students to scan images into the phone.</li>
<li>iPhone application developers can now include Google Maps technology directly within their applications</li>
<li>Apple Push messages will allow you to push alerts out to your users via their installed applications. You know how your mail app tells you how many messages it has with the little red dot? With the push messaging you will be able to add that to your own iPhone developed applications.</li>
<li>The iPhone OS 3.0 will be free to all iPhone users (3G and original). $9.99 for iTouch users. Available worldwide on June 17th.</li>
<li>The new iPhone has been branded iPhone 3Gs, the &#8220;s&#8221; being for Speed. It has a lot of speed enhancements for activities like downloading email, etc.</li>
<li>The new iPhone has entirely new insides; it sadly does not yet include a front facing camera</li>
<li>iPhone3G[s] supports OpenGL|ES 2.0 and 7.2Mbps HSPDA</li>
<li>iPhone3G[s] now has a 3 MP camera and can capture video as well as images</li>
<li>The new camera offers touch to focus technology so you can touch an area to have it focus better</li>
<li>The video captured can be edited right on the phone, with simple cut and paste and timeline controls (think a mini iMovie light. I emphasize &#8220;mini&#8221; and &#8220;light&#8221;)</li>
<li>Video captured by the iPhone can be uploaded to YouTube, Viemo, and many other video sites; images can be sent directly to Flickr, and other popular photo sites</li>
<li>Application developers will have access to a new video API so their applications will be able to use captured video (and I assume actually capture it using the camera)</li>
<li>The iPhone3G[s] adds voice controls &#8211; just hold down the home button for 2 secs and speak something like &#8220;Call Scott Jones&#8221; or &#8220;what song is playing&#8221;.</li>
<li>The voice controls will be available to application developers via an SDK from YAP, makes of this technology for all sorts of smart phone devices: <a href="http://is.gd/T75C" target="_blank">http://is.gd/T75C</a></li>
<li>The new iPhone finally offers data encryption</li>
<li>The new iPhone will include the Nike+ software out of the box</li>
<li>The new iPhone has better battery life, offering a 9hr surfing time or 5hr talk time</li>
<li>Apple has made the new iPhone GREEN. By that I mean it sports GREEN an arsenic-free glass, is BRF-free, and a mercury-free LCD</li>
<li>The ne iPhone 3Gs will be offered in White or Black at a price of $199 for 16GB, $299 for 32GB and will be on sale JUNE 19</li>
<li>The existing 8GB iPhone 3G will remain on sale for $99 starting June 19</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2009/06/key-notes-from-apples-big-keynote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Initial Thoughts on Adobe BrowserLab</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2009/06/initial-thoughts-on-adobe-browserlab/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2009/06/initial-thoughts-on-adobe-browserlab/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 12:55:19 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/2009/06/03/initial-thoughts-on-adobe-browserlab/</guid>
		<description><![CDATA[Adobe just launched a cool new Flex based product called BrowserLab (formerly meer meer). BrowserLab (http://browserlab.adobe.com) is a Flex application that allows you to load a web page in a variety of popular Web browsers. You can load them in a side by side view, but my favorite is the onion skin mode which overlays [...]]]></description>
			<content:encoded><![CDATA[<div><a href="https://browserlab.adobe.com/en-us/index.html#state=browse" target="_blank"><img class="aligncenter size-full wp-image-231" title="browserLab_logo" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2009/06/browserLab_logo.png" alt="Adobe Browser Lab logo" width="512" height="114" /></a></div>
<p>Adobe just launched a cool new Flex based product called BrowserLab (formerly meer meer). BrowserLab (<a href="https://browserlab.adobe.com/en-us/index.html#state=browse" target="_blank">http://browserlab.adobe.com</a>) is a Flex application that allows you to load a web page in a variety of popular Web browsers. You can load them in a side by side view, but my favorite is the onion skin mode which overlays one browser version on top of another. Another sweet feature is that this tool is FREE! It only requires you to have an Adobe user account.</p>
<div style="text-align: center;"><img class="size-medium wp-image-230 alignleft" title="onion_skin_view" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2009/06/onion_skin_view-300x184.jpg" alt="Screen shot" width="300" height="184" /></div>
<p>I did notice, while on my Mac, that IE 7 WinXP took a lot longer to generate than the others. I assume this is just an early issue that will be addressed soon. There is also an area to load other browser definitions. I haven’t looked into that much, but I hope that means that Adobe will publish some spec on how to load non-standard browser definitions into the application.</p>
<p>This is an amazing tool and I can’t believe it took this long to have this resource available to the mass populous (again for FREE!!). Thank you Adobe! You can also get product updates by following the <a href="http://twitter.com/adobebrowserlab" target="_blank">BrowserLab Twitter page</a>.</p>
<p>PS &#8211; I love the logo too!  Very clever. I&#8217;ll be on the look out for a sticker and/or T-shirt with this one!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2009/06/initial-thoughts-on-adobe-browserlab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash &amp; Flex Developers Magazine</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2009/05/flash-flex-developers-magazine/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2009/05/flash-flex-developers-magazine/#comments</comments>
		<pubDate>Fri, 29 May 2009 17:02:34 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/2009/05/29/flash-flex-developers-magazine/</guid>
		<description><![CDATA[If you&#8217;re into developing for Flash, Flex or AIR you have to check out this magazine. The Flash &#38; Flex Developer&#8217;s magazine is chocked full of technical articles and tutorials that will get your mind cooking on some new F/F development. The latest issue has some great stuff inside including an article for developers new [...]]]></description>
			<content:encoded><![CDATA[<p><a style="border:1px solid #444444;" href="http://ffdmag.com/" target="_blank"><img class="alignright size-full wp-image-235" style="border: 1px solid black;" title="04_2010" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2009/05/04_2010.jpg" alt="Flash and Flex Developers' Magazine" width="186" height="272" /></a>If you&#8217;re into developing for Flash, Flex or AIR you have to check out this magazine. The Flash &amp; Flex Developer&#8217;s magazine is chocked full of technical articles and tutorials that will get your mind cooking on some new F/F development.</p>
<p>The latest issue has some great stuff inside including an article for developers new to Flex and some really neat tutorials with using Yahoo! Maps in Flex</p>
<p>I have been picking up issues for a bit now, and I have yet to be disappointed. Check it out for yourself at: <a href="http://www.ffdmag.com/" target="_blank">http://www.ffdmag.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2009/05/flash-flex-developers-magazine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Adobe XD INSPIRE Publication</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2009/03/new-adobe-xd-inspire-publication/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2009/03/new-adobe-xd-inspire-publication/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 16:04:38 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/?p=195</guid>
		<description><![CDATA[Not sure when this was announced, but following a tweet from Rich Tretola (@richtretola), I found Adobe INSPIRE, described as &#8220;a publication from the Adobe Experience Design team.&#8221; It&#8217;s a pretty neat Flex based e-zine deal that talks about all sorts of next step RIA work Adobe is working on.  The topics are similar to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://xd.adobe.com" target="_blank"><img class="alignleft size-medium wp-image-240" title="XD_Logo_700sq" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2009/03/XD_Logo_700sq-300x300.png" alt="Adobe XD" width="200" height="200" /></a>Not sure when this was announced, but following a tweet from Rich Tretola (<a href="https://twitter.com/richtretola" target="_blank">@richtretola</a>), I found Adobe INSPIRE, described as &#8220;a publication from the Adobe Experience Design team.&#8221; It&#8217;s a pretty neat Flex based e-zine deal that talks about all sorts of next step RIA work Adobe is working on.  The topics are similar to the <a href="http://www.adobe.com/devnet/ria/newsletter/" target="_blank">RIA Buzz newsletter</a> that they send out. One article to check out is the on on <a href="https://xd.adobe.com/#/featured/video/160" target="_blank">multitouch interface technology mashed up with Flex</a>. Very cool stuff.</p>
<p><a href="https://xd.adobe.com/" target="_blank">https://xd.adobe.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2009/03/new-adobe-xd-inspire-publication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a Nest: Twitter&#8217;s Business Potential</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2009/01/building-a-nest-twitters-business-potential/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2009/01/building-a-nest-twitters-business-potential/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 15:28:32 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/2009/01/25/building-a-nest-twitters-business-potential/</guid>
		<description><![CDATA[It seems that a lot of people ask the question that my boss asked me recently: &#8220;What is Twitter&#8217;s business model?&#8221; It seems for now they don&#8217;t have one for public consumption. They pay for their servers with venture capital money which means that somebody with money thinks they can succeed and be profitable. From [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.twiter.com/" target="_blank"><img class="size-medium wp-image-237 alignright" title="twitter" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2009/01/twitter-300x300.png" alt="Twitter logo" width="250" height="250" /></a>It seems that a lot of people ask the question that my boss asked me recently: &#8220;What is Twitter&#8217;s business model?&#8221; It seems for now they don&#8217;t have one for public consumption. They pay for their servers with venture capital money which means that somebody with money thinks they can succeed and be profitable. From their own <a href="http://twitter.com/about#about" target="_blank">About pages</a>, Twitter says:</p>
<blockquote><p>&#8220;&#8230;we are holding off on implementation for now because we don&#8217;t want to distract ourselves from the more important work at hand which is to create a compelling service and great user experience for millions of people around the world.</p>
<p>&#8230;we are also very much guided by our philosophy of keeping things simple and intuitive so we like to restrain ourselves with regard to features.</p>
<p>We plan to build Twitter, Inc into a successful, revenue-generating company&#8230;&#8221;</p></blockquote>
<p>But for now it&#8217;s all free. Below are a list of blog posts about this topic. I read threw these, and they all make some good points.</p>
<p>I have to say from my point of view, Twitter should never charge. They can&#8217;t. Once they start charging users people will stop using. I think they know that and that&#8217;s why they don&#8217;t. Look at Google. I remember in the 90s when Google was this really simple vanilla search engine that was better than Yahoo!, Alta Vista, HotBot and all the others that were popular then. Today, Google&#8217;s core is still that awesome plain vanilla search page and it&#8217;s still free and ad free. How are they making money? They have learned how to take their core tech and apply it to other areas that big business will pay for (ex: Google Analytics).</p>
<p>If you ask me, Twitter has this same potential. They collect mini conversations and thoughts of millions users. Looking at individual posts, who cares. Stepping back away from the trees to see the forest, you start to see your customers giving their unbiased feedback about your products and services. You find patches of people talking about the new big technology and how they can use it. You see entertainment venues running contests and surveys, thus driving customers to their sites and store fronts to spend money. This information can be melded into real time political polls. The best part is all this information is free. We the users are already funneling it in as I type.</p>
<p>I suspect the venture capitalists see this same potential. My old boss always said, &#8220;he who owns the information, drives the business, and makes the money.&#8221; At this point Twitter is stock piling that information. If they can now produce or acquire technologies that allow people to mine that information, to look at it in different ways, and to pipe it into their own products and services then they can charge for that. Then they can make money.</p>
<p>What does all this mean for us? Well for now not much. The big concern is if Twitter is truly stable enough to build off of today? Can we depend on it being around 5 years from now. Probably. It has a huge following, it&#8217;s simple, and it has money behind it. All aspects that Google had in 90s. For the time being, it&#8217;s free. Our only investment into Twitter is any time we put into it. I see it as a free, fast, and popular way for a company to drum up excitement about it&#8217;s products and services, its public events and social good deeds. I see it as a way to gather peoples opinions about my company&#8217;s goods via mini-surveys. I see it as a means to distribute deals and run contests. That is how I see myself and my company using Twitter today. It will be up to Twitter as to how we can use them tomorrow and at what cost.</p>
<p>Here&#8217;s what others are saying about Twitter future revenue stream:</p>
<p><a href="http://www.scripting.com/stories/2008/01/02/twittersBusinessModel.html" target="_blank">http://www.scripting.com/stories/2008/01/02/twittersBusinessModel.html</a></p>
<p><a href="http://www.centernetworks.com/twitter-business-model" target="_blank">http://www.centernetworks.com/twitter-business-model</a></p>
<p><a href="http://www.avc.com/a_vc/2008/01/twitters-busine.html" target="_blank">http://www.avc.com/a_vc/2008/01/twitters-busine.html</a></p>
<p><a href="http://calacanis.com/2008/01/02/the-three-business-models-that-make-twitter-a-billion-dollar-bus/" target="_blank">http://calacanis.com/2008/01/02/the-three-business-models-that-make-twitter-a-billion-dollar-bus/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2009/01/building-a-nest-twitters-business-potential/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New to Twitter?</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2009/01/new-to-twitter/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2009/01/new-to-twitter/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 03:10:22 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/2009/01/21/new-to-twitter/</guid>
		<description><![CDATA[I use Twitter a lot and have for a while now. I get asked all the time &#8220;So what&#8217;s this Twitter thing? Why do people find it so interesting?&#8221; Over time, I&#8217;ve been keeping a text document of the different things I end up telling people in an effort to condense it down to a [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin-left: 15px;" src="http://assets1.twitter.com/images/twitter.png" alt="Twitter Logo" align="right" /></p>
<p>I use <a href="http://www.twitter.com/" target="_blank">Twitter</a> a lot and have for a while now. I get asked all the time &#8220;So what&#8217;s this Twitter thing? Why do people find it so interesting?&#8221; Over time, I&#8217;ve been keeping a text document of the different things I end up telling people in an effort to condense it down to a simple explanation that still gives them enough information to really sink their teeth into Twitter. Here is what I have come up with so far. If you have additional suggestions, I would love to hear about them.</p>
<ul>
<li>It&#8217;s like chat, but the entire world sees what you say. Sort of like mini-blogging (messages have a 140 character limit).</li>
<li>On <a href="http://www.twitter.com/" target="_blank">Twitter.com</a>, you can set up your cell phone so you can text in a twitter update (I do that).</li>
<li>You can reply to somebody&#8217;s post by doing the ampersand sign and their handle (like &#8220;@molaro that was funny!&#8221;).</li>
<li>You can send them a direct message which is seen only by you and them by starting with a &#8220;d&#8221; in front (so like &#8220;d @molaro thx for your reply&#8221;).</li>
<li>For me, the easiest thing is to use the free version of <a href="http://iconfactory.com/software/twitterrific" target="_blank">Twitterrific</a>, a Mac only desktop application. Otherwise, if I had to go to the web page I would never update my status.</li>
<li>For Windows people, I know that &#8220;<a href="http://funkatron.com/spaz" target="_blank">Spaz</a>&#8221; and &#8220;<a href="http://www.twhirl.org/" target="_blank">Twirl</a>&#8221; are good. I think Twirl is better. They are both Adobe AIR apps that allow you to twitter from the desktop. In all these apps, you&#8217;ll see the messages sent to you and that you send.</li>
<li>You can &#8220;follow&#8221; other people to see their messages as well. As for following, you get odd people following you. Now a lot of spammers. I usually only follow people I know or people from the area, or people who follow other people in my &#8220;cloud&#8221; (group of friends).</li>
<li>It&#8217;s a good way to meet people in my work field. Take a look at <a href="http://twitter.com/waynesutton" target="_blank">Wayne Sutton</a> or <a href="http://twitter.com/GinnySkal" target="_blank">Ginny from the Blog</a>. Watch what they do and check out who they follow. That&#8217;ll get you going.</li>
<li>Other sites, like <a href="http://www.BrightKite.com/" target="_blank">BrightKite.com</a> let you update where you&#8217;re at by passing in an address or location name. (there are tons of little sites like these)</li>
<li>Lastly, there are &#8220;service&#8221; twitter accounts. I set one up for my <a href="http://www.rdaug.org/" target="_blank">local Adobe Users group</a> (<a href="http://twitter.com/rdaug" target="_blank">http://twitter.com/rdaug</a>). Those basically just broadcast updates. Ours posts whenever our RSS updates. I have seen weather accounts, traffic accounts, bars, and political candidates.</li>
<li>
<ul>
<li>I also follow <a href="http://twitter.com/sts124" target="_blank">&amp;STS124</a> which is the NASA feed to the current space station mission. They tweet live info about the space walks and stuff.</li>
<li>On a similar vein, I follow <a href="http://twitter.com/MarsPhoenix" target="_blank">&amp;MarsPhoenix</a> which is info from the Mars rover. Play-by-plays of what it&#8217;s doing.</li>
<li><a href="http://twitter.com/BarackObama" target="_blank">@BarackObama</a> will get you updates of what he&#8217;s up to</li>
<li><a href="http://twitter.com/Timer" target="_blank">@Timer</a> lets you pass in a message and minutes, and then it will send you that message back in those about of minutes (a reminder tool)</li>
<li><a href="http://twitter.com/MYNC_WX_Durham" target="_blank">@MYNC_WX_Durham</a> is durham local weather</li>
<li>Follow <a href="http://twitter.com/Twitter" target="_blank">@Twitter</a> for updates on the system and outage/service notices</li>
</ul>
</li>
</ul>
<p>Personally, I also follow lots of industry gurus. People&#8217;s who&#8217;s books I own or Adobe big shots and stuff like that. Also, follow former co-workers. Stuff that&#8217;s interesting to me.</p>
<p>So that&#8217;s my soapbox on Twitter.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2009/01/new-to-twitter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adobe MAX Announcements</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2008/11/adobe-max-announcements/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2008/11/adobe-max-announcements/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 14:52:22 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe MAX]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/2008/11/19/adobe-max-announcements/</guid>
		<description><![CDATA[It seems like this is a big year at Adobe MAX. There are a lot of new and exciting packages, tools, and frameworks being announced. Here&#8217;s the quick list: Bolt, Adobe’s new Eclipse based development tool for ColdFusion developers http://labs.adobe.com/wiki/index.php/Bolt Durango, a framework that allows developers to build customizable Adobe AIR applications http://labs.adobe.com/technologies/durango/ Flash Catalyst, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-247" title="max_header" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/11/max_header1.jpg" alt="" width="611" height="51" />It seems like this is a big year at <a href="http://max.adobe.com/na/experience/#?s=0&amp;p=0" target="_blank">Adobe MAX</a>. There are a lot of new and exciting packages, tools, and frameworks being announced. Here&#8217;s the quick list:</p>
<p>Bolt, Adobe’s new Eclipse based development tool for ColdFusion developers<br />
<a href="http://labs.adobe.com/wiki/index.php/Bolt" target="_blank">http://labs.adobe.com/wiki/index.php/Bolt</a></p>
<p>Durango, a framework that allows developers to build customizable Adobe AIR applications<br />
<a href="http://labs.adobe.com/technologies/durango/" target="_blank">http://labs.adobe.com/technologies/durango/</a></p>
<p>Flash Catalyst, formerly codenamed Thermo, is a new professional interaction design tool for rapidly creating application interfaces and interactive content without coding<br />
<a href="http://labs.adobe.com/technologies/flashcatalyst/" target="_blank">http://labs.adobe.com/technologies/flashcatalyst/</a></p>
<p>Adobe Wave, an Adobe AIR application and Adobe hosted service that work together to enable desktop notifications (like Growl)<br />
<a href="http://labs.adobe.com/wiki/index.php/Adobe_Wave" target="_blank">http://labs.adobe.com/wiki/index.php/Adobe_Wave</a></p>
<p>PatchPanel, a Flex library and set of services that make it possible for SWF files to work as Adobe Creative Suite CS3 and CS4 plug-ins<br />
<a href="http://labs.adobe.com/wiki/index.php/PatchPanel" target="_blank">http://labs.adobe.com/wiki/index.php/PatchPanel</a></p>
<p>Configurator, a utility that enables the easy creation of panels (palettes) for use in Adobe Photoshop CS4<br />
<a href="http://labs.adobe.com/technologies/configurator/" target="_blank">http://labs.adobe.com/technologies/configurator/</a></p>
<p>More on Centuar (CF 9)<br />
<a href="http://labs.adobe.com/wiki/index.php/Centaur" target="_blank">http://labs.adobe.com/wiki/index.php/Centaur</a></p>
<p>Alchemy, that allows users to compile C and C++ code into ActionScript libraries (AVM2)<br />
<a href="http://labs.adobe.com/technologies/alchemy/" target="_blank">http://labs.adobe.com/technologies/alchemy/</a></p>
<p>Genesis is the code-name for a new product initiative at Adobe with the objective of joining business applications, documents and the web on every knowledge workers desktop with integrated collaboration capabilities<br />
<a href="http://labs.adobe.com/wiki/index.php/Genesis" target="_blank">http://labs.adobe.com/wiki/index.php/Genesis</a></p>
<p>Codename &#8220;Cocomo&#8221; is a Platform as a Service that allows Flex developers to easily add real-time social capabilities into their RIA<br />
<a href="http://labs.adobe.com/technologies/cocomo/" target="_blank">http://labs.adobe.com/technologies/cocomo/</a></p>
<p>Stratus is a hosted rendezvous service that aids establishing communications between Flash Player endpoints. Unlike Flash Media Server, Stratus does not support media relay, shared objects, scripting, etc<br />
<a href="http://labs.adobe.com/wiki/index.php/Stratus" target="_blank">http://labs.adobe.com/wiki/index.php/Stratus</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2008/11/adobe-max-announcements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Output CLOB Data with Coldfusion</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2008/10/output-clob-data-with-coldfusion/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2008/10/output-clob-data-with-coldfusion/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 02:24:31 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/2008/10/14/output-clob-data-with-coldfusion/</guid>
		<description><![CDATA[PROBLEM Using Coldfusion, you have run a query or procedure that returns a CLOB (Character Large Object) data type. You need to display this content in your web page or write it to a file. If you wrap your returned CLOB variable in a &#60;cfoutput&#62; you get an odd output like &#8220;[C@183eeb0". If you try [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #fff; font-weight: bold;"><a href="http://www.adobe.com/products/coldfusion/" target="_blank"><img class="alignleft size-thumbnail wp-image-254" title="cf_logo" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/08/cf_logo-150x150.jpg" alt="" width="100" height="100" /></a>PROBLEM</span><br />
Using Coldfusion, you have run a query or procedure that returns a <a href="http://en.wikipedia.org/wiki/CLOB" target="_blank">CLOB (Character Large Object)</a> data type. You need to display this content in your web page or write it to a file. If you wrap your returned CLOB variable in a &lt;cfoutput&gt; you get an odd output like &#8220;[C@183eeb0". If you try to &lt;cfdump&gt; the returned CLOB you get a giant array of objects. So how do you get your data?</p>
<p><span style="color: #fff; font-weight: bold;">SOLUTION</span></p>
<div style="color: #cee1ef; font-weight: bold;">________________________________________</p>
<p>&lt;cfset x = CreateObject("java","java.lang.String").init(myClobOutput)&gt;</p>
<p>&lt;cfoutput&gt;#x#&lt;/cfoutput&gt;</p>
<p>________________________________________</p>
</div>
<p><span style="color: #fff; font-weight: bold;">EXPLANATION</span><br />
First, I can't take full credit for this. One of the Java guys I work with helped me figure this out. A CLOB is a "collection of character data." In my case, I am using Oracle, and it has its own "construct" for the CLOB. In other words it's an object of sorts. When you put this object in the &lt;cfoutput&gt; tags, you get the string's identifier, just like you would if you output a Java object. When you dump it, again just as with a Java object, you see an array of nested objects, one object per character.</p>
<p>While doing a &lt;cfset&gt; is creating a <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" target="_blank">Java String</a> under the hood, Coldfusion gets to decide how to create the string. To get our CLOB to display, you need to create an instance of a Java String using the CreateObject() method, and then call the init() function. The init() constructor function can take a variety of arguments and knows how to translate each into a string. Passing in the CLOB as an argument, the init() function treats it as a char[] (character array) and &#8220;allocates a new String so that it represents the sequence of characters currently contained in the character array argument.&#8221; So, in other words, it knows what the array is and loops through it, putting each character back together as a giant string.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2008/10/output-clob-data-with-coldfusion/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Programmatically Disable/Enable Items In a menuBar Component</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2008/08/flex-programmatically-disableenable-items-in-a-menubar-component/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2008/08/flex-programmatically-disableenable-items-in-a-menubar-component/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 21:12:30 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[menuBar]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/?p=83</guid>
		<description><![CDATA[In an Adobe AIR app I am working on, I need to programmatically disable / enable a items in a menuBar component, based on Internet connection status. I already have a function that listens for changes in the online status and updates a global variable when it changes, so I know when I loose an [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.adobe.com/products/flex/" target="_blank"><img class="alignleft size-full wp-image-256" title="fx_logo" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/08/fx_logo.jpg" alt="Adobe Flex" width="100" height="100" /></a>In an <a href="http://www.adobe.com/products/air/" target="_blank">Adobe AIR</a> app I am working on, I need to programmatically disable / enable a items in a menuBar component, based on Internet connection status. I already have a function that listens for changes in the online status and updates a global variable when it changes, so I know when I loose an Internet connection.  Now, I just need to change the disable / enable properties in my menuBar. After several tries, I figured out what I needed to do.</p>
<p>First here is my setup:</p>
<p>In my main MXML file, I have the actual Flex MenuBar component with properties.  That line of code looks lke:<br />
<span style="color: #cee1ef; font-weight: bold;">&lt;mx:MenuBar x=&#8221;0&#8243; y=&#8221;0&#8243; id=&#8221;cbMainMenu&#8221; labelField=&#8221;@label&#8221; showRoot=&#8221;false&#8221; width=&#8221;100%&#8221; buttonMode=&#8221;true&#8221; dataProvider=&#8221;/assets/menu.xml&#8221; /&gt;</span></p>
<p>The dataProvider is an XML file that looks like:</p>
<div style="color: #cee1ef; font-weight: bold;">________________________________________<br />
&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;</p>
<p>&lt;mainmenu&gt;<br />
&lt;menuitem label=&#8221;File&#8221;&gt;<br />
&lt;submenuitem label=&#8221;Quit&#8221; enabled=&#8221;true&#8221; /&gt;<br />
&lt;/menuitem&gt;</p>
<p>&lt;menuitem label=&#8221;Help&#8221;&gt;<br />
&lt;submenuitem label=&#8221;Online Help&#8221; enabled=&#8221;true&#8221; /&gt;<br />
&lt;submenuitem label=&#8221;Contact Support&#8221; enabled=&#8221;true&#8221; /&gt;<br />
&lt;/menuitem&gt;<br />
&lt;/mainmenu&gt;<br />
________________________________________</p>
</div>
<p>In my project, anytime I detect a change in Internet status, I want to set the &#8220;Contact Support&#8221; option to disabled/enabled.</p>
<p>So to get access to that here is the dot syntax:<br />
<span style="color: #cee1ef; font-weight: bold;">cbMainMenu.dataprovider.source[0].menuitem[1].submenuitem[1].@enabled = false;</span></p>
<p>To break that down it&#8217;s:<br />
+ cbMainMenu is my MenuBar component&#8217;s ID  (change this to match yours)<br />
+ dataProvider is the XML file I have pasted above<br />
+ source[0] is a reference to the actual data in the dataProvider<br />
+ now I just walk the XML tree, skipping the root node, with menuitem[1].submenuitem[1].  That gets the 2nd sub-menu item of the 2nd menu item (remember the count starts at zero)<br />
+ Last is &#8220;@enabled&#8221;  which is the enabled attribute (@).  It could have just as easily been @label to change the text.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2008/08/flex-programmatically-disableenable-items-in-a-menubar-component/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Writing Coldfusion Web Services</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2008/07/coldfusion-writing-coldfusion-web-services/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2008/07/coldfusion-writing-coldfusion-web-services/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 03:30:16 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Web Design / Development]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/2008/07/31/coldfusion-writing-coldfusion-web-services/</guid>
		<description><![CDATA[Adobe ColdFusion makes writing web services a very simple task. In general you write a standard Coldfusion component (CFC), set it&#8217;s access type to &#8220;remote&#8221; and set output to &#8220;false&#8221;: &#60;cfcomponent&#62; &#60;cffunction name="getMonthAbbreviation" access="remote" output="false" returntype="string" hint="Returns the month abbreviation for a given month."&#62; &#60;cfargument name="mymonth" type="string" required="yes" hint="A full month name"&#62; &#60;cfset var monthAbb [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.adobe.com/products/coldfusion/" target="_blank">Adobe ColdFusion</a> makes writing <a href="http://en.wikipedia.org/wiki/Web_service" target="_blank">web services</a> a very simple task. In general you write a standard Coldfusion component (CFC), set it&#8217;s access type to &#8220;remote&#8221; and set output to &#8220;false&#8221;:</p>
<pre style="background-color: #f9f9f9; border: 1px dashed #333; color: #900; font: 'Courier New', Courier, monospace 12px; margin: 12px 10px; padding: 5px;">&lt;cfcomponent&gt;
    &lt;cffunction name="getMonthAbbreviation" access="remote" output="false" returntype="string" hint="Returns the month abbreviation for a given month."&gt;
       &lt;cfargument name="mymonth" type="string" required="yes" hint="A full month name"&gt;

       &lt;cfset var monthAbb = DateFormat(ARGUMENTS.mymonth &amp; " 1, 2008","mmm")&gt;

       &lt;cfreturn monthAbb&gt;
    &lt;/cffunction&gt;
&lt;/cfcomponent&gt;</pre>
<p>That&#8217;s it. You have a web service. You can view it&#8217;s defintion (<a href="http://en.wikipedia.org/wiki/Web_Services_Description_Language" target="_blank">WSDL</a>) by pointing your Web browser to: <span style="color: teal;">http://www.yoursite.com/youwebservice.cfc?wsdl</span>. Depending on your browser you will see either the WSDL definition as <a href="http://en.wikipedia.org/wiki/XML" target="_blank">XML</a> or a blank page (do a view source). It should look something like (partial code below):</p>
<pre style="background-color: #f9f9f9; border: 1px dashed #333; color: #900; font: 'Courier New', Courier, monospace 12px; margin: 12px 10px; padding: 5px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;wsdl:definitions targetNamespace="http://web services" xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://web services" xmlns:intf="http://web services" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns1="http://rpc.xml.coldfusion" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
&lt;!--WSDL created by ColdFusion version 8,0,1,195765--&gt;
&lt;wsdl:types&gt;
&lt;schema targetNamespace="http://rpc.xml.coldfusion" xmlns="http://www.w3.org/2001/XMLSchema"&gt;
&lt;import namespace="http://schemas.xmlsoap.org/soap/encoding/"/&gt;
&lt;complexType name="CFCInvocationException"&gt;
&lt;sequence/&gt;
&lt;/complexType&gt;
&lt;/schema&gt;
&lt;/wsdl:types&gt;
&lt;wsdl:message name="getMonthAbbreviationResponse"&gt;
&lt;wsdl:part name="getMonthAbbreviationReturn" type="xsd:string"/&gt;
&lt;/wsdl:message&gt;
&lt;wsdl:message name="getMonthAbbreviationRequest"&gt;
&lt;wsdl:part name="mymonth" type="xsd:string"/&gt;
&lt;/wsdl:message&gt;
&lt;wsdl:message name="CFCInvocationException"&gt;
&lt;wsdl:part name="fault" type="tns1:CFCInvocationException"/&gt;
&lt;/wsdl:message&gt;
&lt;wsdl:portType name="example"&gt;
&lt;wsdl:operation name="getMonthAbbreviation" parameterOrder="mymonth"&gt;
....</pre>
<p>Now, if you want to call your web service in Coldfusion, start a new CFM page and add the following code:</p>
<pre style="background-color: #f9f9f9; border: 1px dashed #333; color: #900; font: 'Courier New', Courier, monospace 12px; margin: 12px 10px; padding: 5px;">&lt;cfinvoke web service="http://www.yoursite.com/youweb service.cfc?wsdl" method="getMonthAbbreviation" returnVariable="myMonthAbb"&gt;
    &lt;cfinvokeargument name="mymonth" value="December"&gt;
&lt;/cfinvoke&gt;

&lt;cfoutput&gt;My abbreviated month is: #myMonthAbb#&lt;/cfoutput&gt;</pre>
<p><a href="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/cfadmin_wspanel_lrg.gif"><img class="alignright size-full wp-image-272" style="border: 1px solid black;" title="cfadmin_wspanel_sml" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/cfadmin_wspanel_sml.gif" alt="" width="430" height="200" /></a>Something to mention here is that when you invoke a web service for the first time, Coldfusion will cache it behind the scenes. While this will make the initial call a little slower than normal (you probably will not notice), the purpose is to make all additional calls to that service faster. You can see cached web services listed in the Coldfusion Administrator.</p>
<p>While this is a nice feature, when you are developing the service, it can be a big pain. If you change the service, Coldfusion doesn&#8217;t always do a great job of refreshing the cached definition. Sometimes it will update the service, which is great. However, more often than not, you will need to open the CF Administrator tool and delete the service from the list, forcing CF to re-cache the updated version when you browse to it again. Even then, this technique doesn&#8217;t always work, leaving a CF restart as the only option to clear your web service definition.</p>
<h3>Returning Complex Types Using CF Web Services</h3>
<p>While Coldfusion makes it simple to return basic values like strings, numbers, or arrays via a web service, your end users may need more complex data returned. In Coldfusion, complex data is often passed around in CF structures. These are great &#8220;associative array&#8221; type data objects. Using a CFC as a standard component you can return a structure of data with no issue. This method also works via a web service, however the resulting XML looks more like a hash map than the nice structure design you may want.</p>
<p style="text-align: center;"><img class="size-full wp-image-277 aligncenter" style="border: 1px solid black;" title="cf_ws_struct_result" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/cf_ws_struct_result.gif" alt="" width="566" height="214" /></p>
<p>In this example, I have added a new function to my web service called getMonthStruct (and yes I had to clear the web service cache in the CFAdmin to see the changes!). This method simply returns a struct of month names with their associated numeric value. As you can see the XML data returned in the soap envelope has key and value nodes nested in item nodes. While this works, it is not as clean as it could be.</p>
<p>For our example, what we really want is a list of nodes named the month name with the numeric value nested inside. To get this result we need to create a custom Coldfusion component and return that custom &#8220;object&#8221;.</p>
<p>To build a custom component, start a new CFC file. The CFC should have an opening component tag, and nested cfproperty tags for each piece of data you plan to return. That&#8217;s it. Following our months example, you would write a &#8220;Calendar.cfc&#8221; file and add properties like:</p>
<pre style="background-color: #f9f9f9; border: 1px dashed #333; color: #900; font: 'Courier New', Courier, monospace 12px; margin: 12px 10px; padding: 5px;">&lt;cfcomponent&gt;
    &lt;cfproperty name="January" type="numeric" required="false"&gt;
    &lt;cfproperty name="February" type="numeric" required="false"&gt;
    &lt;cfproperty name="March" type="numeric" required="false"&gt;
    &lt;cfproperty name="April" type="numeric" required="false"&gt;
    &lt;cfproperty name="May" type="numeric" required="false"&gt;
    &lt;cfproperty name="June" type="numeric" required="false"&gt;
    &lt;cfproperty name="July" type="numeric" required="false"&gt;
    &lt;cfproperty name="August" type="numeric" required="false"&gt;
    &lt;cfproperty name="September" type="numeric" required="false"&gt;
    &lt;cfproperty name="October" type="numeric" required="false"&gt;
    &lt;cfproperty name="November" type="numeric" required="false"&gt;
    &lt;cfproperty name="December" type="numeric" required="false"&gt;
&lt;/cfcomponent&gt;</pre>
<p>Keep in mind this isn&#8217;t the best example. Building a &#8220;person&#8221; CFC might make more sense, where the properties are things like Name, Address, City, State, Zip, Phone, etc. The properties can be of any standard type (Date, Array, Boolean, String, etc) as long as your main CFC web service can set them correctly. Keep in mind that this is just a component definition. This is not the CFC your end user will call. They will still call the original service from above, after we modify it like so:</p>
<pre style="background-color: #f9f9f9; border: 1px dashed #333; color: #900; font: 'Courier New', Courier, monospace 12px; margin: 12px 10px; padding: 5px;">&lt;cfcomponent&gt;
    &lt;cffunction name="getMonthAbbreviation" access="remote" output="false" returntype="string" hint="Returns the month abbreviation for a given month."&gt;
       &lt;cfargument name="mymonth" type="string" required="yes" hint="A full month name"&gt;

       &lt;cfset var monthAbb = DateFormat(ARGUMENTS.mymonth &amp; " 1, 2008","mmm")&gt;

       &lt;cfreturn monthAbb&gt;
    &lt;/cffunction&gt;

    &lt;cffunction name="getMonthStruct" access="remote" output="false" returntype="struct" hint="Returns a struct of months"&gt;
       &lt;cfset var myCal = ""&gt;
       &lt;cfset var monthName = ""&gt;

       &lt;cfloop from="1" to="12" index="m"&gt;
          &lt;cfset monthName = DateFormat(m &amp; "/1/2008","mmmm")&gt;
          &lt;cfset StructInsert(myStruct,monthname,m)&gt;
       &lt;/cfloop&gt;

       &lt;cfreturn myStruct&gt;
    &lt;/cffunction&gt;

    &lt;cffunction name="getMonthObject" access="remote" output="false" returntype="Calendar" hint="Returns a object of months"&gt;
       &lt;cfset var myCal = ""&gt;

       &lt;cfobject component="Calendar" name="myCal"&gt;
         &lt;cfset myCal.January = 1&gt;
         &lt;cfset myCal.February = 2&gt;
         &lt;cfset myCal.March = 3&gt;
         &lt;cfset myCal.April = 4&gt;
         &lt;cfset myCal.May = 5&gt;
         &lt;cfset myCal.June = 6&gt;
         &lt;cfset myCal.July = 7&gt;
         &lt;cfset myCal.August = 8&gt;
         &lt;cfset myCal.September = 9&gt;
         &lt;cfset myCal.October = 10&gt;
         &lt;cfset myCal.November = 11&gt;
         &lt;cfset myCal.December = 12&gt;

       &lt;cfreturn myCal&gt;
    &lt;/cffunction&gt;
&lt;/cfcomponent&gt;</pre>
<p>I left in the first &#8220;months&#8221; method, getMonthStruct(), so you could see how I generated the initial structure. However, we want to focus on the last method, getMonthObject(). It&#8217;s not as dynamic as the original method, but the point is to show the basics of the process. In getMonthObject() I made the following changes:</p>
<ul>
<li>I set the returntype value to &#8220;Calendar&#8221; which is the name of my custom CFC. If you leave this as struct, you&#8217;ll still get the hash map XML code that you don&#8217;t really want.</li>
<li>I created a new var named myCal. While this is good form, if this were a normal CFC, you could skip that part and CF would still return a result. However, when using the CFC as a web service, skipping this step can cause errors generating the WSDL properly. EVERY variable needs to be declared at the top of your method, including loop indexes.</li>
<li>Next I create an object based off my Calendar.cfc definition and name it that var we just created (myCal).</li>
<li>Finally, just populate the values and return the custom object</li>
</ul>
<p>Now when you invoke your web service using Coldfusion, you will get an object definition returned. The values are there, but you would need to then call the &#8220;get&#8221; methods from this object to get the values. However, our XML generated in the Soap envelope is much simpler and in the format that we want:</p>
<p style="text-align: center;"><a href="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/cf_ws_customobj_result.gif"><img class="aligncenter size-full wp-image-276" style="border: 1px solid black;" title="cf_ws_customobj_result" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/cf_ws_customobj_result.gif" alt="" width="508" height="267" /></a></p>
<p>Your main web service code can of course be a lot more complicated than what I have here. As long as you have the basic parts you should get similar results. Some other tweaks you can make include:</p>
<ul>
<li>If the data you are loading into your custom component contains any &#8220;null&#8221; values, you will see a closed XML node and it will have a &#8220;nill&#8221; attribute. If you prefer not to see the &#8220;nill&#8221; part, you can have your CF code check the value and if it is null you can set the value to empty string (&#8220;&#8221;). That will result in a simple closed XML node.</li>
<li>If you wanted to return multiple &#8220;Calendar&#8221; objects, set your method&#8217;s return type to &#8220;array&#8221;. Then run a loop that creates a Calendar object, loads its data, then pushes it into your array. Again, be sure to set a var at the top of your method for your array index () to avoid any issues.</li>
<li>There may be times when you want to nest a collection of one custom object type inside another. For example, say you return a restaurant &#8220;Menu&#8221; object. Inside that object is an attribute called &#8220;soups&#8221; and you want &#8220;soups&#8221; to be a collection of &#8220;Soup&#8221; objects. First defined custom Soup.cfc and Menu.cfc objects just like we did above with Calendar. In the Menu.cfc file, when you set the property for soups, you will set it like:</li>
</ul>
<pre style="background-color: #f9f9f9; border: 1px dashed #333; color: #900; font: 'Courier New', Courier, monospace 12px; margin: 12px 10px; padding: 5px;">     &lt;cfproperty name="soups" type="Soup[]" required="true"&gt;</pre>
<p>:The property&#8217;s type is set to your custom component and a left and right square bracket. That is telling Coldfusion to expect to get an array of &#8220;Soup&#8221; objects for this value. To populate this value, you will follow the steps in the previous bullet to create an array of custom objects, then assign that array as the value:</p>
<pre style="background-color: #f9f9f9; border: 1px dashed #333; color: #900; font: 'Courier New', Courier, monospace 12px; margin: 12px 10px; padding: 5px;">    &lt;!--- Assume we have an array of Soup objects called mySoupsArray ---&gt;

    &lt;cfobject component="Menu" name="myMenu"&gt;
    &lt;cfset myMenu.soups = mySoupsArray &gt;</pre>
<h3>Using the SoapUI Tool to Test Your Web Services</h3>
<p>While you can invoke a web service with Coldfusion, it&#8217;s more for consuming other people&#8217;s services into your code. It doesn&#8217;t really provide a good picture of what your end user&#8217;s will recieve from your service, especially if they are using another language or technology. Enter the <a href="http://www.soapui.org/" target="_blank">SoapUI</a> tool by Eviware. The features of this tool include:</p>
<ul>
<li>It&#8217;s FREE (my favorite feature)</li>
<li>Comes as a standalone Java application or as an Eclipse plug-in</li>
<li>Allows you to create multiple projects, each having one or more web services</li>
<li>SoapUI consumes your service(s) and automatically loads all the methods and a default request for each</li>
<li>If the service has arguments, it automatically generates the XML syntax for you to populate with values</li>
<li>Includes several logs (soapui log, http log, jetty log, and an error log) that can help you if there is an error</li>
<li>Provides &#8220;Request Properties&#8221; to pass things like basic authentication information, timeout settings, and much more</li>
</ul>
<p style="text-align: center;"><a href="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/soapui.png"><img class="aligncenter size-full wp-image-278" style="border: 1px solid black;" title="soapui" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/soapui.png" alt="" width="558" height="342" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2008/07/coldfusion-writing-coldfusion-web-services/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>E V E R N O T E : Remember Everything!</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2008/07/e-v-e-r-n-o-t-e-remember-everything/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2008/07/e-v-e-r-n-o-t-e-remember-everything/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 02:41:09 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Evernote]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/2008/07/17/e-v-e-r-n-o-t-e-remember-everything/</guid>
		<description><![CDATA[For a while now I have been using a little tool / service called Instapaper. It&#8217;s a free web site that lets you store Web links for reading later. I use it a lot as I am constantly inundated during the day with new stuff to check out online. A new application, a tech resource, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/Evernote.png"><img class="size-full wp-image-270 alignleft" title="Evernote" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/Evernote.png" alt="" width="220" height="220" /></a>For a while now I have been using a little tool / service called <a href="http://www.instapaper.com/" target="_blank">Instapaper</a>. It&#8217;s a free web site that lets you store Web links for reading later. I use it a lot as I am constantly inundated during the day with new stuff to check out online. A new application, a tech resource, that new funny <a href="http://www.youtube.com/" target="_blank">YouTube</a> or <a href="http://www.break.com/" target="_blank">Break</a> movie, a book I want to buy and so on. If I spent the time during the day to check these things out in detail, I wouldn&#8217;t get any work done. With Instapaper, I had a Javascript <a href="http://en.wikipedia.org/wiki/Bookmarklet" target="_blank">bookmarklet</a> in my browser. If I saw something online I needed to look into later, I just press the little bookmarklet and a link to that page is automagically saved to my account. Then at night, or while I waiting at the dentist office or whenever I had time, I could go back and read up on all those interesting tidbits. While Instapaper is nice, it is very simple. Bookmarklet, and a white web page with links. Nothing wrong with that, just simple.</p>
<p>Yesterday I found a new site, <a href="http://www.evernote.com/" target="_blank">Evernote</a>. It&#8217;s like InstaPaper on steroids. Evernote offers the functionality of a bookmarklet that saves web links to a free online account, just like InstaPaper. But EverNote doesn&#8217;t stop there. First, it doesn&#8217;t just store the web page link, it stores the page itself. So you can actually just read that page right in Evernote. You can also store pictures and audio. When you save pictures, Evernote scans them for words and stores those as keyword with the picture, making searching more effective. You can also assign tags to anything you save for categorizing items and again better searching. Evernote also has tons of ways to store the things you need to remember. I already mentioned the bookmarklet, which they call the &#8220;Web clipper.&#8221; In addition to the clipper, Evernote also offers desktop applications for Windows and Mac with super simple and clean interfaces. They also offer an <a href="http://www.apple.com/iphone/" target="_blank">iPhone</a> application, and an application <a href="http://www.microsoft.com/windowsmobile/en-us/default.mspx" target="_blank">Windows Mobile</a> devices. With all these options, it&#8217;s incredibly easy to save almost anything from anywhere.</p>
<p><a href="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/evernote_iphone.png"><img class="alignright size-full wp-image-267" title="evernote_iphone" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/evernote_iphone.png" alt="" width="249" height="364" /></a>The best thing about Evernote is that all of this, 40Mb/month of storage, and the applications to access your information is all free. They do offer a Premium account for $45/year ($5/mo). The premium plan gets you 500Mb/month of storage, SSL encryption, priority image text recognition, better tech support, and removes the ads (which I haven&#8217;t seen any of so far). Oh yeah, and a free t-shirt comes with the premium plan.</p>
<p>So you&#8217;re probably thinking that Evernote sounds nice, but you&#8217;re not sure you would find it useful. Here&#8217;s a few idea of ways I used it and ways I&#8217;ve seen or read about other people using it:</p>
<ul>
<li>Save Web pages that you want to read later</li>
<li>To-Do list</li>
<li>Save white board notes</li>
<li>Snap and save pictures of business cards, wine labels</li>
<li>Wish list tool &#8211; save items from online stores or pictures of products from real stores that you want to buy / receive as a gift (music, books, tools, etc)</li>
<li>Save Code snippets or commonly used math formulas</li>
<li>Save digital receipts for online purchases / bill payments</li>
<li>Store software serial numbers (although for security, you may want to go premium for this use)</li>
<li>Save important instant message conversations (you know the ones where your boss promises you a promotion!)</li>
<li>PDFs of documents to read or review</li>
</ul>
<p>So, do you use Evernote now? Could you use Evernote? I&#8217;d be interested in hearing how you do or think you could use this service. Also, if you have better suggestion, I&#8217;d be open to hearing about it. Just keep in mind that in addition to being better than Evernote, it would have to also have a better icon (I love the elephant!)</p>
<p style="text-align: center;"><a href="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/evernote_screen.jpg"><img class="aligncenter size-large wp-image-269" title="evernote_screen" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/evernote_screen-1024x666.jpg" alt="Evernote Screen" width="430" height="280" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2008/07/e-v-e-r-n-o-t-e-remember-everything/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>35mm Becomes 3.5 megapixel</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2008/07/35mm-becomes-35-megapixel/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2008/07/35mm-becomes-35-megapixel/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 00:50:54 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/2008/07/17/35mm-becomes-35-megapixel/</guid>
		<description><![CDATA[I just saw that Polaroid announced that they will be discontinuing almost all of their legacy analog products. That&#8217;s big words for no more cameras that use film. That means no more film. Not that I&#8217;m surprised by the move, but it is the end of an era. We&#8217;ll no longer be able to &#8220;shake [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.polaroid.com/" target="_blank"><img class="size-full wp-image-287 alignnone" title="poloaroid_logo" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/poloaroid_logo.gif" alt="" width="224" height="44" /></a></p>
<p><a href="http://www.polaroid.com/products/0/354635/Instant_Film" target="_blank"><img class="alignright size-full wp-image-288" title="ifilm" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/ifilm.jpg" alt="" width="112" height="189" /></a>I just saw that Polaroid announced that they will be discontinuing almost all of their <a href="http://www.polaroid.com/support_listing?prod_cat=2155&amp;part_number=&amp;submit.x=37&amp;submit.y=11" target="_blank">legacy analog products</a>. That&#8217;s big words for no more cameras that use film. That means no more film. Not that I&#8217;m surprised by the move, but it is the end of an era. We&#8217;ll no longer be able to &#8220;shake it like a Polaroid picture!&#8221; So for any of you out there who still have the once popular instant cameras (yes Appy, I&#8217;m talking to you!) stock up now. Looks like we&#8217;ll have until early &#8217;09 to take pictures retro style.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2008/07/35mm-becomes-35-megapixel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dude, I&#8217;m Famous! Well Almost</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2008/07/dude-im-famous-well-almost/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2008/07/dude-im-famous-well-almost/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 12:33:44 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[IconFactory]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/2008/07/11/dude-im-famous-well-almost/</guid>
		<description><![CDATA[Well, almost famous, and only to a specific community, and &#8230; duh! Well, you&#8217;ll get the idea. As many of you know, today is the release of Apple&#8217;s iPhone 2.0 as it were. As I write this, I am reading posts from my Twitter buddies who are eagerly standing in line at various Apple stores [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/twitterrific.jpg"><img class="alignright size-full wp-image-271" title="twitterrific" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/07/twitterrific.jpg" alt="" width="319" height="460" /></a>Well, almost famous, and only to a specific community, and &#8230; duh! Well, you&#8217;ll get the idea.</p>
<p>As many of you know, today is the release of <a href="http://www.apple.com/iphone/" target="_blank">Apple&#8217;s iPhone 2.0</a> as it were. As I write this, I am reading posts from my <a href="http://www.twitter.com/" target="_blank">Twitter</a> buddies who are eagerly standing in line at various Apple stores all around the area waiting to get their hands on this latest model. One of the big deals with the new iPhone is that Apple finally opened up the code to allow outside developers to write their own applications and sell them to iPhone users via the iTunes online store front. This is BIG for Apple and iPhone (and sadly <a href="http://www.wireless.att.com/cell-phone-service/specials/iPhone.jsp" target="_blank">AT&amp;T</a>). Yesterday, many of us discovered that Apple went ahead and opened up the <a href="http://www.apple.com/iphone/appstore/" target="_blank">iTunes App Store</a> that has all the cool new applications that you can buy for this phone.</p>
<p>The genius boys over at the <a href="http://iconfactory.com/home" target="_blank">Iconfactory</a> already had an incredible little desktop application called <a href="http://iconfactory.com/software/twitterrific" target="_blank">Twitterrific</a> that connects to your Twitter account (if you don&#8217;t know I&#8217;ll have to explain that one in another post) and allows you to send updates. It&#8217;s awesome and as far as I know the preferred desktop Twitterrific app for Mac users. Being the bright guys that they are, the Iconfactory team jumped on Apple&#8217;s band wagon and made their awesome little program run on the iPhone. A few weeks ago, as they were preparing to launch the software they sent out a tweet asking for people to say something clever on Twitter so they could include it in the screenshot that appears with the product. To skip to the chase here, my tweet made the shot and since my icon is a posterized version of a picture of me, my face is now in the product shot. This is the <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284540316&amp;mt=8" target="_blank">first shot you see when you go into the app store</a> to purchase and download the app. I have received a slew of Tweets yesterday about it and I&#8217;m sort of excited about it. Thx Iconfactory! .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2008/07/dude-im-famous-well-almost/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Think I&#8217;ll Skip &quot;The Love Guru&quot;</title>
		<link>http://www.interactiveoctopus.com/blog/index.php/2008/06/think-ill-skip-the-love-guru/</link>
		<comments>http://www.interactiveoctopus.com/blog/index.php/2008/06/think-ill-skip-the-love-guru/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 13:37:39 +0000</pubDate>
		<dc:creator>pmolaro</dc:creator>
				<category><![CDATA[Media]]></category>
		<category><![CDATA[Movies]]></category>

		<guid isPermaLink="false">http://molaro.wordpress.com/2008/06/20/think-ill-skip-the-love-guru/</guid>
		<description><![CDATA[Not that I was planning to rush out to see it anyway, but for any who are, it seems Mike Meyer&#8217;s latest film, &#8220;The Love Guru&#8220;, is no Shrek! According to AintItCool.com : &#8220;&#8230;Myers puts a shotgun in the mouth of comedy and kills it. This isn&#8217;t merely a bad film, but a painful experience [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.imdb.com/title/tt0811138/" target="_blank"><img class="aligncenter size-full wp-image-295" title="loveguru" src="http://www.interactiveoctopus.com/blog/wp-content/uploads/2008/06/loveguru.gif" alt="The Love Guru" width="450" height="323" /></a></p>
<p>Not that I was planning to rush out to see it anyway, but for any who are, it seems Mike Meyer&#8217;s latest film, &#8220;<a href="http://www.imdb.com/title/tt0811138/" target="_blank">The Love Guru</a>&#8220;, is no Shrek! According to <a href="http://www.aintitcool.com/node/37138" target="_blank">AintItCool.com</a> :</p>
<blockquote><p>&#8220;&#8230;Myers puts a shotgun in the mouth of comedy and kills it. This isn&#8217;t merely a bad film, but a painful experience that you keep telling yourself to leave. &#8230; It is a pregnant woman smoking a cigarette and drinking a Coors Light.&#8221;</p></blockquote>
<p>I have to say, I&#8217;m actually not that surprised. When I saw Meyers on <a href="http://www.americanidol.com/" target="_blank">American Idol</a> and the <a href="http://www.mtv.com/ontv/movieawards/2008/" target="_blank">2008 MTV Movies Awards</a>, each time dressed as the &#8220;Guru,&#8221; I totally didn&#8217;t get the joke. I was hoping that the scripting for those spots was just rushed and that the film might actually have some merit. Guess not. Read the review for yourself, but as for me, I think I&#8217;ll pass. Oh yeah, and if you were thinking of seeing &#8220;<a href="http://www.apple.com/trailers/fox/thehappening/" target="_blank">The Happening</a>&#8220;, seems like it isn&#8217;t much better (also panned in this review).</p>
<p>On a related note, to see an awesome super hero movie, go see &#8220;<a href="http://www.apple.com/trailers/paramount/ironman/" target="_blank">Iron Man&#8221;</a> (and hopefully &#8220;<a href="http://www.apple.com/trailers/wb/thedarkknight/" target="_blank">The Dark Night&#8221;</a>). To pretty good super hero movie, go see &#8220;<a href="http://www.apple.com/trailers/universal/theincrediblehulk/" target="_blank">The Incredible Hulk</a>.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interactiveoctopus.com/blog/index.php/2008/06/think-ill-skip-the-love-guru/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

