<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Through My Lenses &#187; CFUnited 2009 Notes</title>
	<atom:link href="http://www.ericstoike.com/wp/category/cfunited-2009-notes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ericstoike.com/wp</link>
	<description>A look into the world as I see it...</description>
	<lastBuildDate>Mon, 07 Jun 2010 04:05:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- podcast_generator="podPress/8.8" - maintenance_release="8.8.4" -->
		<copyright>Copyright &#xA9; 2010 Through My Lenses </copyright>
		<managingEditor>eric@gvfootball.com ()</managingEditor>
		<webMaster>eric@gvfootball.com ()</webMaster>
		<category>posts</category>
		<itunes:keywords></itunes:keywords>
		<itunes:subtitle></itunes:subtitle>
		<itunes:summary>A look into the world as I see it...</itunes:summary>
		<itunes:author></itunes:author>
		<itunes:category text="Society &amp; Culture"/>
		<itunes:owner>
			<itunes:name></itunes:name>
			<itunes:email>eric@gvfootball.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://www.ericstoike.com/wp/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<image>
			<url>http://www.ericstoike.com/wp/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
			<title>Through My Lenses</title>
			<link>http://www.ericstoike.com/wp</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>#cfunited Notes &#8211; &#8220;Intro to jQuery&#8221;</title>
		<link>http://www.ericstoike.com/wp/2009/08/15/cfunited-notes-intro-to-jquery/</link>
		<comments>http://www.ericstoike.com/wp/2009/08/15/cfunited-notes-intro-to-jquery/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 15:54:34 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[CFUnited 2009 Notes]]></category>
		<category><![CDATA[#cfunited]]></category>
		<category><![CDATA[#cfunited2009]]></category>
		<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=794</guid>
		<description><![CDATA[Javascript is NOT the enemy. You can find peace.
Why jQuery?
powerful, wide support, works for me (after initial period of grumpy old man whining)
History

3 years old
high compatibility
free
minified, gziped or full fat
available on Google CDN

What does it do?

finds stuff
changes stuff
loads stuff
and more stuff

Signs that you may be looking at jQuery

$ is jQuery
lots and lots and lots of [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Javascript is NOT the enemy. You can find peace.</strong></p>
<p><strong>Why jQuery?</strong></p>
<p>powerful, wide support, works for me (after initial period of grumpy old man whining)</p>
<p><strong>History</strong></p>
<ul>
<li>3 years old</li>
<li>high compatibility</li>
<li>free</li>
<li>minified, gziped or full fat</li>
<li>available on Google CDN</li>
</ul>
<p><strong>What does it do?</strong></p>
<ul>
<li>finds stuff</li>
<li>changes stuff</li>
<li>loads stuff</li>
<li>and more stuff</li>
</ul>
<p><strong>Signs that you may be looking at jQuery</strong></p>
<ul>
<li>$ is jQuery</li>
<li>lots and lots and lots of stuff chained together because everything returns itself</li>
</ul>
<p><strong>Selectors</strong></p>
<ul>
<li>find soemthing</li>
<li>follows CSS rules</li>
<li>Basic &#8211; $(&#8220;#someId&#8221;) $(&#8220;.someClass&#8221;) $(&#8220;p&#8221;)</li>
<li>$(&#8220;#parent p&#8221;) &#8211;&gt; all paragraphs under #parent</li>
<li>$(&#8220;something:not(somethingelse)&#8221;)</li>
<li>also has ^ $ for beginning and end</li>
<li>$(&#8216;a[href*=cnn]&#8216;) &#8211;&gt; all links to anything containing cnn</li>
<li>$(&#8216;a[href$=pdf]&#8216;) &#8211;&gt; all links whtat end in pdf</li>
<li>$(&#8216;#favThings &gt; li:even and <img src='http://www.ericstoike.com/wp/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> dd</li>
<li>:eq</li>
<li>contains</li>
<li>form related (checked, selected, en/disabled)</li>
<li>next, prev, parent, children, and siblings</li>
<li>filter (custom JS code)</li>
</ul>
<p><strong>Manipulation</strong></p>
<ul>
<li>adding, removing classes</li>
<li>setting, getting attributes</li>
<li>prepending and appending</li>
<li>changing contents</li>
</ul>
<p><strong>Events</strong></p>
<ul>
<li>what you expect (click, change, etc)</li>
<li>special ones (hover, toggle)</li>
<li>$(document).ready</li>
</ul>
<p><strong>Effects</strong></p>
<ul>
<li>tick me off</li>
<li>&#8220;will my client want to see this 50 times?&#8221;</li>
<li>hiding/showing</li>
<li>fading</li>
<li>bouncing</li>
<li>http://docs.jquery.com/effects</li>
</ul>
<p><strong>Ajax</strong></p>
<ul>
<li>load</li>
<li>get (has length restriction)</li>
<li>post</li>
<li>getJSON</li>
<li>getScript</li>
</ul>
<p><strong>Plugins</strong></p>
<ul>
<li>over 2,400</li>
<li>wide range of areas: ui, form, widgets, etc</li>
<li>quality also covers a wide range</li>
</ul>
<p><strong>Favorites</strong></p>
<ul>
<li>Validate</li>
<li>ThickBox</li>
<li>jqGrid</li>
<li>jQuery Select</li>
</ul>
<p><strong>jQuery+CF</strong></p>
<p>Helpful<strong><br />
</strong></p>
<ul>
<li>still<strong> </strong>the glue</li>
<li>native JSON format</li>
<li>returnFormat</li>
<li>XML generation</li>
</ul>
<p>Not So Helpful</p>
<ul>
<li>onRequest (EVIL++) fixed in CF9</li>
<li>whitepsace</li>
<li>debugging</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/08/15/cfunited-notes-intro-to-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#cfunites Notes &#8211; &#8220;Advanced Custom Tags&#8221;</title>
		<link>http://www.ericstoike.com/wp/2009/08/15/cfunites-notes-advanced-custom-tags/</link>
		<comments>http://www.ericstoike.com/wp/2009/08/15/cfunites-notes-advanced-custom-tags/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 13:33:02 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[CFUnited 2009 Notes]]></category>
		<category><![CDATA[#cfunited]]></category>
		<category><![CDATA[#cfunited2009]]></category>
		<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=792</guid>
		<description><![CDATA[What is a custom tags?

CF custom tags are user created tags to extend the tag set
written in CF
executed on CF server
used along side standards tags
locally available

Why use them?

code reuse
encapsulation
abstraction
simplification
customized control flow
packaging

What about CFC?

yes everything you can do everything in CFCs but sometimes cust tags can sometimes offer a more natural feeling

Basics

stored anywhere the server has [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What is a custom tags?</strong></p>
<ul>
<li>CF custom tags are user created tags to extend the tag set</li>
<li>written in CF</li>
<li>executed on CF server</li>
<li>used along side standards tags</li>
<li>locally available</li>
</ul>
<p><strong>Why use them?</strong></p>
<ul>
<li>code reuse</li>
<li>encapsulation</li>
<li>abstraction</li>
<li>simplification</li>
<li>customized control flow</li>
<li>packaging</li>
</ul>
<p><strong>What about CFC?</strong></p>
<ul>
<li>yes everything you can do everything in CFCs but sometimes cust tags can sometimes offer a more natural feeling</li>
</ul>
<p><strong>Basics</strong></p>
<ul>
<li>stored anywhere the server has access to</li>
<li>invoking: cf_, cfModule, cfImport</li>
<li>execution: open, close, self-close</li>
<li>scopes: attributes, thisTag, caller, variables</li>
<li>passing data to/from:</li>
</ul>
<p><strong>Gathering and consuming data</strong></p>
<ul>
<li>using custom tags as functional facades</li>
<li>implicit execution</li>
</ul>
<p><strong>Leverage Relative Addressing of Template</strong></p>
<ul>
<li>use custom tag as a proxy to CFC creation</li>
<li>CFC names as relative to tag proxy location</li>
</ul>
<p>Can be recursive!</p>
<p><strong>Examples</strong></p>
<p>regEx Loop  (cf_reLoop) &#8211; loop tag to easily access Java&#8217;s regular expression matching functionality (faster/more robust than CF)</p>
<p>template mailer (cf_mail) &#8211; tag to encapsulate passed in data into a template and then mailed</p>
<p>navigation/navigationItem &#8211; set of tags to create a navigation with as many items as needed. handles hover functionality. decouples where a link is going from how it works to get there makes it easier to change either property later.</p>
<ul>
<li>cfAssociate is used to pass attributes from parent into the child</li>
<li>cfExit method=&#8221;exittag&#8221; is used at the bottom to only let the tag be called once regardless of if it is a self-closed ta</li>
</ul>
<p>switchLoop &#8211; works like cfSwitch but allows for &#8220;resetting&#8221; of expression. allows for two different cases to be hit.</p>
<p>randomSwitch &#8211; works like cfSwitch but a random case is selected.</p>
<p>renderXml &#8211; recursive tag to loop through an XML document.</p>
<p><strong>Resources</strong></p>
<p><a href="http://www.bennadel.com/">http://www.bennadel.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/08/15/cfunites-notes-advanced-custom-tags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#cfunited Notes &#8211; &#8220;Create a Public Facing API&#8221;</title>
		<link>http://www.ericstoike.com/wp/2009/08/14/cfunited-notes-create-a-public-facing-api/</link>
		<comments>http://www.ericstoike.com/wp/2009/08/14/cfunited-notes-create-a-public-facing-api/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 19:59:36 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[CFUnited 2009 Notes]]></category>
		<category><![CDATA[#cfunited]]></category>
		<category><![CDATA[#cfunited2009]]></category>
		<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=789</guid>
		<description><![CDATA[APIs &#8211; The Basics

application programming interface
2 types &#8211; RESTful and RPC
offers ability to share data and functionality
centralize functionality

Possible Problems

poor planning can cause poor usability
needs to be accessible across multiple langauges
variable scope may not exist / be accurate
documentation needs to be extensible
security can be tested/attacked

The biggest security threat to your API

you!

Documentation
description, parameters, example call, example response, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>APIs &#8211; The Basics</strong></p>
<ul>
<li>application programming interface</li>
<li>2 types &#8211; RESTful and RPC</li>
<li>offers ability to share data and functionality</li>
<li>centralize functionality</li>
</ul>
<p><strong>Possible Problems</strong></p>
<ul>
<li>poor planning can cause poor usability</li>
<li>needs to be accessible across multiple langauges</li>
<li>variable scope may not exist / be accurate</li>
<li>documentation needs to be extensible</li>
<li>security can be tested/attacked</li>
</ul>
<p><strong>The biggest security threat to your API</strong></p>
<ul>
<li>you!</li>
</ul>
<p><strong>Documentation</strong></p>
<p>description, parameters, example call, example response, error code</p>
<p><strong>Great Examples</strong></p>
<p>twitter, flickr, digg, openOffice<strong> </strong></p>
<p><strong>Development Process of an API (ideal)</strong></p>
<ol>
<li>create use case</li>
<li>document</li>
<li>test documentation</li>
<li>code API</li>
<li>test</li>
<li>hack</li>
<li>go to 4</li>
</ol>
<p><strong>Creating a RESTful-ish API</strong></p>
<ul>
<li>URL parsing</li>
<li>request type parsing</li>
<li>XML responses</li>
<li>requires authentication</li>
<li>error handling</li>
</ul>
<p><strong>Resources</strong></p>
<p>InfoQ article &#8211; REST Intro &#8211; <a href="http://www.infoq.com/articles/rest-introduction">infoq.com/articles/rest-introduction</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/08/14/cfunited-notes-create-a-public-facing-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#cfunited Notes &#8211; &#8220;Extending CFBuilder w/ CFML&#8221;</title>
		<link>http://www.ericstoike.com/wp/2009/08/14/cfunited-notes-extending-cfbuilder-w-cfml/</link>
		<comments>http://www.ericstoike.com/wp/2009/08/14/cfunited-notes-extending-cfbuilder-w-cfml/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 16:18:59 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[CFUnited 2009 Notes]]></category>
		<category><![CDATA[#cfunited]]></category>
		<category><![CDATA[#cfunited2009]]></category>
		<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=785</guid>
		<description><![CDATA[http://labs.adobe.com/technologies/coldfusion9/
What can extensions do?
Anything CF can!
•    written w/ CFML and XML
•    runs on a CF server
Common Uses
•    code generation
•    framework scaffolding
•    server management / probes
•    code analysis
•    reporting
Add New Context Menus
•    RDS View (databasees and tables)
•    Outline View
•    Resource View (projects and files)
Workspace Events
Installing a CFBuilder Extension
Preferences -&#62; CF -&#62; Extensions
Good practice to put extensions [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://labs.adobe.com/technologies/coldfusion9/">http://labs.adobe.com/technologies/coldfusion9/</a></p>
<p><strong>What can extensions do?</strong><br />
<strong>Anything CF can!</strong><br />
•    written w/ CFML and XML<br />
•    runs on a CF server<br />
<strong>Common Uses</strong><br />
•    code generation<br />
•    framework scaffolding<br />
•    server management / probes<br />
•    code analysis<br />
•    reporting<br />
Add New Context Menus<br />
•    RDS View (databasees and tables)<br />
•    Outline View<br />
•    Resource View (projects and files)<br />
Workspace Events<br />
<strong>Installing a CFBuilder Extension</strong><br />
Preferences -&gt; CF -&gt; Extensions<br />
Good practice to put extensions folder under CFIDE so they are separate from applications</p>
<p><strong>ide_config.xml</strong></p>
<ul>
<li>application details</li>
<li> extensions are a simple zip archive</li>
<li> optional collection of data during install</li>
<li> responding to workspace events &#8211; onProjectCreate</li>
<li> adding context menus</li>
<li> filter with regEx to optionally appear</li>
</ul>
<p><strong>Collecting User Input</strong><br />
static input w/ native eclipse controls<br />
<strong>types</strong></p>
<ul>
<li> string</li>
<li> dir</li>
<li> boolean</li>
<li> file</li>
<li> password</li>
<li> list</li>
</ul>
<p><strong>attributes</strong></p>
<ul>
<li> name</li>
<li> label</li>
<li> tooltip</li>
<li> required</li>
<li> default</li>
<li> checked</li>
<li> pattern</li>
<li> errorMessage</li>
<li> helpMessage</li>
</ul>
<p><strong>keywords for default values</strong><br />
{$projectLocation}</p>
<ul>
<li> projectLocation</li>
<li> projectName</li>
<li> serverHome</li>
<li> wwwroot</li>
</ul>
<p><strong>Handler Communication</strong></p>
<ul>
<li>sends info via XML</li>
</ul>
<p><strong>Dynamic Input</strong></p>
<ul>
<li>XML, HTML, AJAX, Flex, Eclipse SWT</li>
<li>showResponse=&#8221;yes&#8221;</li>
<li>response can be HTML or XML</li>
</ul>
<p><strong>Tips</strong></p>
<ul>
<li>You can reload from prefs if you make changes to the xml</li>
<li>Errors output to Eclipse logs (windows &gt; show view &gt; other &gt; general &gt; error log)</li>
<li>You can also write your own log with cfLog</li>
<li>Use CF to generate CF (use generated code as &lt;:cf and rip out the :&#8217;s later)</li>
<li>Adam&#8217;s Ext-Util.cfc</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/08/14/cfunited-notes-extending-cfbuilder-w-cfml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#cfunited Notes &#8211; &#8220;Facebook applications with a CF Backend&#8221;</title>
		<link>http://www.ericstoike.com/wp/2009/08/14/cfunited-notes-facebook-applications-with-a-cf-backend/</link>
		<comments>http://www.ericstoike.com/wp/2009/08/14/cfunited-notes-facebook-applications-with-a-cf-backend/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:03:58 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[CFUnited 2009 Notes]]></category>
		<category><![CDATA[#cfunited]]></category>
		<category><![CDATA[#cfunited2009]]></category>
		<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=782</guid>
		<description><![CDATA[Workings of a Facebook App

Facebook -&#62; your website -&#62; Facebook API -&#62; your website -&#62; Facebook
They scan for &#8220;bad&#8221; stuff before displaying it.
Good though because its all secure for you.

Setup

name your application (read the terms &#8211; good bathroom reading)
make note of your API key and secret (needed for all API calls)
setup a facebook URL (unique) [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Workings of a Facebook App</strong></p>
<ul>
<li>Facebook -&gt; your website -&gt; Facebook API -&gt; your website -&gt; Facebook</li>
<li>They scan for &#8220;bad&#8221; stuff before displaying it.</li>
<li>Good though because its all secure for you.</li>
</ul>
<p><strong>Setup</strong></p>
<ol>
<li>name your application (read the terms &#8211; good bathroom reading)</li>
<li>make note of your API key and secret (needed for all API calls)</li>
<li>setup a facebook URL (unique) and the callback URL (your server and should be directory only as they will append different files)</li>
<li>settings page to set sandbox, app type, sms integration and iphone</li>
</ol>
<p><strong>1st Roadblock</strong></p>
<ul>
<li>validation is carried out on form fields that have specified names (pre cf9)</li>
<li>fb_sig is in the wrong format and will never validate. set to another field and clear that field.</li>
</ul>
<p><strong>A Look at FBML</strong></p>
<ul>
<li>tag system that handles output of data</li>
<li>tags display data just as the website does</li>
<li>tags are mostly used for UI/layout</li>
<li>conditional logic tags do exist (if/else)</li>
</ul>
<p><strong>Digging into the API</strong></p>
<ul>
<li>RESTful-ish API</li>
<li>dot delimited methods</li>
<li>methods are grouped in actions</li>
<li>returns XML/JSON/PHP</li>
<li>access to FQL (SQL-like)</li>
<li>API Key, Call Id, MD5 Hash of secret and Version needed on EVERY request</li>
</ul>
<p>CF is your glue</p>
<ul>
<li>Use API to get data</li>
<li>parse and loop over data with CF</li>
<li>output using FBML</li>
<li>store data associated with uid w/ CF + SQL</li>
<li>do not use cfLocation but rather fb:redirect and you can only redirect to FB</li>
</ul>
<p><strong>? Can you limit who can add your applciation by FB network?</strong></p>
<p>After they allow it, you would have access to all that information. If they are not in the network that you wanted then you could just show a denied message or there may be API functionality to kick them oput of the application.</p>
<p><a href="http://www.simonfree.com/presentations">simonfree.com/presentations</a></p>
<p><a href="http://www.twitter.com/simonfree">twitter.com/simonfree</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/08/14/cfunited-notes-facebook-applications-with-a-cf-backend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#cfunited Notes &#8211; &#8220;CF Developer&#8217;s Guide to Mate Flex Framework&#8221;</title>
		<link>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf-developers-guide-to-mate-flex-framework/</link>
		<comments>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf-developers-guide-to-mate-flex-framework/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 21:49:44 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[CFUnited 2009 Notes]]></category>
		<category><![CDATA[#cfunited]]></category>
		<category><![CDATA[#cfunited2009]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=780</guid>
		<description><![CDATA[Sample Application
Uses upcoming.org REST API to show events
ColdFusion End

basic CFC to call API (getCountryList, getStateList, getEvent, search, etc)

Mate

easily handle flex events
tag-based
dependency injection
supports modules
flex messaging support
extensible (extensions available)

Typical Process

view &#8212; event &#8211;&#62; main.mxml -&#62; eventMap (remote objects to CF) -&#62; manager
result is then injected into the view

Terminology
EventMap:

EventHandlers
RemoteObjectInvoker
ResultHandlers
MethodInvoker
EventAnnouncer
Injectors

Manager
Setting up your Flex App

Enable CF remoting
Include mate.swc
Typical folder structure

Mate [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Sample Application</strong></p>
<p>Uses upcoming.org REST API to show events</p>
<p><strong>ColdFusion End</strong></p>
<ul>
<li>basic CFC to call API (getCountryList, getStateList, getEvent, search, etc)</li>
</ul>
<p><strong>Mate</strong></p>
<ul>
<li>easily handle flex events</li>
<li>tag-based</li>
<li>dependency injection</li>
<li>supports modules</li>
<li>flex messaging support</li>
<li>extensible (extensions available)</li>
</ul>
<p><strong>Typical Process</strong></p>
<ul>
<li>view &#8212; event &#8211;&gt; main.mxml -&gt; eventMap (remote objects to CF) -&gt; manager</li>
<li>result is then injected into the view</li>
</ul>
<p><strong>Terminology</strong></p>
<p>EventMap:</p>
<ul>
<li>EventHandlers</li>
<li>RemoteObjectInvoker</li>
<li>ResultHandlers</li>
<li>MethodInvoker</li>
<li>EventAnnouncer</li>
<li>Injectors</li>
</ul>
<p>Manager</p>
<p><strong>Setting up your Flex App</strong></p>
<ul>
<li>Enable CF remoting</li>
<li>Include mate.swc</li>
<li>Typical folder structure</li>
</ul>
<p>Mate does not care about how you build your view</p>
<ul>
<li>follow standard flex practices</li>
<li>no framework references in the view (exception being dispatcher which does &#8220;private&#8221; events but this shouldn&#8217;t be used unless needed)</li>
</ul>
<p><strong>Events are Events</strong></p>
<ul>
<li>just regular events</li>
<li>dispatched using standard dispatchEvent() method</li>
<li>&#8220;bubbles = true&#8221; will be helpful</li>
</ul>
<p><strong>EventMap handles Mapping Events</strong></p>
<p>EventHandlers define</p>
<ul>
<li>what the event responds to</li>
</ul>
<p><strong>Confronting your manager</strong></p>
<ul>
<li>business &amp; app logic</li>
<li>bindable properties</li>
</ul>
<p><strong>Injecting Data</strong></p>
<ul>
<li>keep view independent of framework</li>
<li>view has a setter method to update it when event happens</li>
<li>injectors are defined with target and then data to pass (propertyInjector, listenerInjector).</li>
</ul>
<p><strong>Responding to event in the view</strong></p>
<p>- cut off -</p>
<p><strong>References</strong></p>
<ul>
<li><a href="http://mate.asfusion.com">http://mate.asfusion.com</a></li>
<li><a href="http://www.adobe.com/newsletters/edge/june2009/articles/article5/index.html">http://www.adobe.com/newsletters/edge/june2009/articles/article5/index.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf-developers-guide-to-mate-flex-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#cfunited Notes &#8211; &#8220;CF &amp; PDF: Improving Your Workflow&#8221;</title>
		<link>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf-pdf-improving-your-workflow/</link>
		<comments>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf-pdf-improving-your-workflow/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 20:20:16 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[CFUnited 2009 Notes]]></category>
		<category><![CDATA[#cfunited]]></category>
		<category><![CDATA[#cfunited2009]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=777</guid>
		<description><![CDATA[What&#8217;s the problem?
Normally, lots of steps in the process involving lots of different people at different levels.
What&#8217;s the solution?
After noticing the problem for some time, most organizations will finally address the problem.
CF + PDF!
Accelerates form creation that has server side connections.
Tools

LiveCycle Designer &#8211; Windows only!?!?!? Comes free with Acrobat Professional.
ColdFusion

Demos

Loads in browser (machine dependent) and [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What&#8217;s the problem?</strong></p>
<p>Normally, lots of steps in the process involving lots of different people at different levels.</p>
<p><strong>What&#8217;s the solution?</strong></p>
<p>After noticing the problem for some time, most organizations will finally address the problem.</p>
<p>CF + PDF!</p>
<p>Accelerates form creation that has server side connections.</p>
<p><strong>Tools</strong></p>
<ul>
<li>LiveCycle Designer &#8211; Windows only!?!?!? Comes free with Acrobat Professional.</li>
<li>ColdFusion</li>
</ul>
<p><strong>Demos</strong></p>
<ul>
<li>Loads in browser (machine dependent) and URL still says .cfm</li>
<li>Forms have a JS backend to add some functionality like calculations/move text around/etc.</li>
<li>CF9 adds package functionality to add multiple files together in one .cfm load</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf-pdf-improving-your-workflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#cfunited Notes &#8211; &#8220;Code Reviews and Team Dynamics&#8221;</title>
		<link>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-code-reviews-and-team-dynamics/</link>
		<comments>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-code-reviews-and-team-dynamics/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 19:02:54 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[CFUnited 2009 Notes]]></category>
		<category><![CDATA[#cfunited]]></category>
		<category><![CDATA[#cfunited2009]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=775</guid>
		<description><![CDATA[What is code quality?
Not talking about the little things like &#8220;you missed a cfQueryParam there&#8221; but more &#8220;is it going to stand up to the test of time&#8221; so that things last.
Steve McConnell
1 of 3 most influential people in the software industry (Bill Gates and Linus Torvald as the other two)
&#8220;Testing does not along make [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What is code quality?</strong></p>
<p>Not talking about the little things like &#8220;you missed a cfQueryParam there&#8221; but more &#8220;is it going to stand up to the test of time&#8221; so that things last.</p>
<p><strong>Steve McConnell</strong></p>
<p>1 of 3 most influential people in the software industry (Bill Gates and Linus Torvald as the other two)</p>
<p>&#8220;Testing does not along make better software.&#8221;</p>
<p>&#8220;If you want to lose weight, do not buy a new scale; change your diet. If you want to make better products, do not test more; code better.&#8221;</p>
<p><strong>Improving Code Quality</strong></p>
<ul>
<li>code standards guidelines (note: guidelines was spelled wrong on the slide)</li>
<li>pair coding</li>
<li>user groups</li>
<li>test driven development</li>
</ul>
<p><strong>Code (Peer) Reviews</strong></p>
<p>Peer in the sense that we are not reviewing who wrote the code but more working as a group of peers to make the code better. Its easy to make it personal but you need to make sure that is left out. Don&#8217;t say things like &#8220;why did you do it this way?&#8221; but rather &#8220;I don&#8217;t understand this section.&#8221;</p>
<blockquote><p><em><strong>Key: Don&#8217;t use &#8220;you&#8221; statements.</strong></em></p></blockquote>
<p><strong>Goal?</strong></p>
<p>Understanding the goal will help get to the finish line.</p>
<ul>
<li>drive quality (obvious goal)</li>
<li>build a team (important but hard)</li>
<li>increase fungibility (ability to cross training)</li>
</ul>
<p><strong>Self Review</strong></p>
<p>Have something to talk to. Actually speaking out loud helps immensely because your brain processes things differently when it hears it than when you just think to yourself. Who/what you are talking to does not matter.</p>
<p><strong>Informal Peer Reviews</strong></p>
<ul>
<li>design validation</li>
<li>agile side of desk</li>
<li>talking out loud</li>
<li>&#8220;manage up&#8221;</li>
</ul>
<p>One method is to initiate on your own code. &#8220;Hey Erin, would you take a look at some of this code?&#8221; She can find mistakes but also learns how to do some things.</p>
<p>Another way is to walk over and ask what another developer is working on. This gives you the opportunity to get out and talk to someone which helps build a team but also to learn/teach something in both directions.</p>
<p>Building team dynamics should also be part of your job description.</p>
<p>What about the un-passionate types? They are normally the people that just want to get things done and don&#8217;t care about the quality. This is quite hard.</p>
<p>Rules:</p>
<ul>
<li>Everyone learns differently (be inviting to other styles of learning)</li>
<li>Create comfortable communication</li>
<li>Follow through (everything else ONLY works if you do this)</li>
</ul>
<p><strong>Formal Peer Reviews</strong></p>
<ul>
<li>review code ahead of time</li>
<li>don&#8217;t spend more than 90 minutes</li>
<li>meetings should be a recap</li>
<li>tools help</li>
</ul>
<p>You do not want this <a href="http://www.frequency-decoder.com/2009/05/29/wtf-s-minute">http://www.frequency-decoder.com/2009/05/29/wtf-s-minute</a> but rather a collaborative effort to make the code better. You want a to do list in order to make the code production ready. You do not want the experience to get personal towards the coder at all. The leader is in charge of making this is not done. Side conversations can happen if needed because if you reprimand someone in front of the group, you are making it personal as well.</p>
<p>? don&#8217;t defend your own code during the meeting.</p>
<p><strong>Code Review Tools</strong></p>
<ul>
<li>Crucible by Atlassian. &lt;$5000. has very good version control integration.</li>
<li>Code Collaborator by SmartBear. $1299/concurrent user w/ 10 user minimum</li>
</ul>
<p>But really you don&#8217;t need a tool, if you have some sort of version control and eclipse then you have all you need.</p>
<blockquote><p><em><strong>Key: Don&#8217;t dredge up the past!</strong></em></p></blockquote>
<p>Full slides at Adam&#8217;s blog <a href="http://cfrant.blogspot.com/">http://cfrant.blogspot.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-code-reviews-and-team-dynamics/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>#cfunited Notes &#8211; &#8220;CF9 and AIR: Developing Offline Applications&#8221;</title>
		<link>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf9-and-air-developing-offline-applications/</link>
		<comments>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf9-and-air-developing-offline-applications/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 14:45:10 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[CFUnited 2009 Notes]]></category>
		<category><![CDATA[#cfunited]]></category>
		<category><![CDATA[#cfunited2009]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=772</guid>
		<description><![CDATA[The same 3 ways (WebService, HTTPService and RemoteObject) to connect to CF from AIR that existed in CF8 will continue in 9.
New things in Centaur
Fast Remoting

made several times faster
direct data translation between ActionScript and CF types
circular ref bug is fixed
no code changes required
support the old style remoting for backwards compatibility

ActionSript proxies to access CF tags

access [...]]]></description>
			<content:encoded><![CDATA[<p>The same 3 ways (WebService, HTTPService and RemoteObject) to connect to CF from AIR that existed in CF8 will continue in 9.</p>
<p>New things in Centaur</p>
<p>Fast Remoting</p>
<ul>
<li>made several times faster</li>
<li>direct data translation between ActionScript and CF types</li>
<li>circular ref bug is fixed</li>
<li>no code changes required</li>
<li>support the old style remoting for backwards compatibility</li>
</ul>
<p>ActionSript proxies to access CF tags</p>
<ul>
<li>access CF tags from within MXML</li>
<li>chart, image, document, mail, pdf, pop</li>
<li>no server code (cfm/cfc) required</li>
<li>enable access to services in CFAdmin (username/IP)</li>
<li>include &#8220;services.swc&#8221; in AIR app</li>
<li>use &lt;cf:Config&#8230;&gt; to connect to the server</li>
</ul>
<p>? offline access to proxy?</p>
<p>No the processing engine is the CF server so this part will not work offline.</p>
<p>Built-in online support</p>
<ul>
<li>build offline apps without SQL mess and conflict handling</li>
<li>CF-AIR persistent framework for SQLite DB on client side</li>
<li>CF keeps track of all updates to local DB and syncs the server</li>
<li>session.commit() will send all changes that have happened in the session since the last commit</li>
<li>conflict handling is completely configurable based on operation (insert, update, delete). you get back the original object and the new object and can decide which should be saved where.</li>
</ul>
<p>Other Enhancements</p>
<p>remotingFetch</p>
<ul>
<li>cfProperty attribute</li>
<li>if false, the value is not send on the wire for flash remoting</li>
<li>true by default</li>
</ul>
<p>resetTrackingChanges</p>
<ul>
<li>resets all tracking data in CF offline store</li>
</ul>
<p>ignoreLazyLoad</p>
<ul>
<li>on commit, need entire tree</li>
</ul>
<p><a href="http://askjayvir.blogspot.com">askjayvir.blogspot.com</a><br />
<a href="http://rakshith.net">rakshith.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/08/13/cfunited-notes-cf9-and-air-developing-offline-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#cfunited Notes &#8211; &#8220;CF911: Tools and Techniques for CF Server Troubleshooting&#8221;</title>
		<link>http://www.ericstoike.com/wp/2009/08/12/cfunited-notes-cf911-tools-and-techniques-for-cf-server-troubleshooting/</link>
		<comments>http://www.ericstoike.com/wp/2009/08/12/cfunited-notes-cf911-tools-and-techniques-for-cf-server-troubleshooting/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 21:15:24 +0000</pubDate>
		<dc:creator>cowboyEric</dc:creator>
				<category><![CDATA[CFUnited 2009 Notes]]></category>
		<category><![CDATA[#cfunited]]></category>
		<category><![CDATA[#cfunited2009]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.ericstoike.com/wp/?p=767</guid>
		<description><![CDATA[When the stuff hits the fan:

you want to know what went wrong and why
diagnostics to track errors and other info &#8211; in CF, web server, DB and whole OS.
available tools for monitoring CF &#8211; free/commercial/cf/generic
presentations at http://www.carehart.org/presentations

Typical Scenario
CF stops responding
What do you do?

Restart CF &#8211; doesn&#8217;t find root cause
Diagnostics logs &#8211; finding the right logs [...]]]></description>
			<content:encoded><![CDATA[<p>When the stuff hits the fan:</p>
<ul>
<li>you want to know what went wrong and why</li>
<li>diagnostics to track errors and other info &#8211; in CF, web server, DB and whole OS.</li>
<li>available tools for monitoring CF &#8211; free/commercial/cf/generic</li>
<li>presentations at <a href="http://www.carehart.org/presentations">http://www.carehart.org/presentations</a></li>
</ul>
<p><strong>Typical Scenario</strong></p>
<p>CF stops responding</p>
<p>What do you do?</p>
<ul>
<li>Restart CF &#8211; doesn&#8217;t find root cause</li>
<li>Diagnostics logs &#8211; finding the right logs can be valuable</li>
<li>Monitoring tools &#8211; which ones? built in vs add on? check for running requests.</li>
<li>search google/mailing list/troubleshooting support</li>
</ul>
<p><strong>Free Tools</strong></p>
<p>CFSTAT &#8211; reports high level measures. num of requests running, queued, avg req time, more. sadly not there in the multiserver mode. enabled on the CFAdmin on the Debug Output Settings page.</p>
<p>Gotcha Note: avg req time is only the last 2 requests averaged so that value is not fully reliable.</p>
<p>GetMetricData(&#8220;perf_monitor&#8221;) &#8211; returns same data as a CF structure.</p>
<p>JRun Metrics &#8211; enabled in 6 to add a line at regular intervals to track current state (threads, mem usage, j2ee sessions, more)</p>
<p>CF8 Server Monitor &#8211; only in Enterprise. Charlie has 4 part blog series (option to turn on url vars ie. fuseaction) on his website.</p>
<p>Admin API &#8211; same as monitor</p>
<p><strong>Commercial Tools</strong></p>
<p>FusionReactor and SeeFusion</p>
<p>Both work with 6, 7, 8, 9, OpenBD and Railo.</p>
<p>All three open the blackbox to see currently running requests, view past long running requests, see details of each query as well as stack trace.</p>
<p>Alerts can be setup for certain states to email notifications.</p>
<p>FusionReactor writes more logs that can be very valuable.</p>
<p>Full presentation at <a href="http://www.carehart.org/presentations/#cf911">http://www.carehart.org/presentations/#cf911</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericstoike.com/wp/2009/08/12/cfunited-notes-cf911-tools-and-techniques-for-cf-server-troubleshooting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.495 seconds -->
