<?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>ajmichels.com &#187; AJ Michels</title>
	<atom:link href="http://www.ajmichels.com/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ajmichels.com</link>
	<description>Web Development · Movies · Games · Life</description>
	<lastBuildDate>Sun, 05 Feb 2012 21:43:41 +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>Introducing PHP Site Mesh</title>
		<link>http://www.ajmichels.com/2012/02/05/introducing-php-site-mesh/</link>
		<comments>http://www.ajmichels.com/2012/02/05/introducing-php-site-mesh/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 21:43:30 +0000</pubDate>
		<dc:creator>AJ Michels</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>

		<guid isPermaLink="false">http://www.ajmichels.com/?p=291</guid>
		<description><![CDATA[We have been learning Grails at work and I couldn&#8217;t help but feel that the Site Mesh implementation is an awesome way of doing templating.  I looked around for awhile to is if I could find an similar implementation in PHP but I only found one so far that seemed at all like what I [...]]]></description>
			<content:encoded><![CDATA[<p>We have been learning Grails at work and I couldn&#8217;t help but feel that the Site Mesh implementation is an awesome way of doing templating.  I looked around for awhile to is if I could find an similar implementation in PHP but I only found one so far that seemed at all like what I was looking for.  <a href="http://sourceforge.net/projects/sitemesh-php/" target="_blank">SiteMesh.PHP</a> is a open project on SourceForge and I honestly just didn&#8217;t like the way it was implemented.  It seemed very limited  and general not as elegant as what I have seen in Grails.  So I have set out to create my own implementation.  So far so good.  I should have something beta code to post soon.</p>
<p>For those unfamiliar with Site Mesh below is very simple example.  The basic idea here is that all of the pages you create are individually valid html pages.  The contents of the body of a page are inserted via a developer defined content tag within the a layout page.  A page can have infinitely nested layout pages.  Additionally there are other helper tags that make templating your site very straight forward.  I think that this way of doing templating the especially helpful with PHP since the use of incline &lt;?php ?&gt; syntax is very unreadable.  It creates a elegant abstraction between business logic and view code.</p>
<pre class="brush: xml; title: Page.html; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/REC-html40/loose.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xmlns:php=&quot;http://test.com&quot;&gt;
   &lt;head&gt;
      &lt;meta name=&quot;layout&quot; content=&quot;Layout.html&quot; /&gt;
      &lt;meta name=&quot;description&quot; content=&quot;This is my page description.&quot; /&gt;
      &lt;title&gt;Page Title&lt;/title&gt;
   &lt;/head&gt;
   &lt;body&gt;
      &lt;h1&gt;Page&lt;/h1&gt;
      &lt;p&gt;Page content&lt;/p&gt;
   &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>&nbsp;</p>
<pre class="brush: xml; title: Layout.html; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/REC-html40/loose.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xmlns:php=&quot;http://test.com&quot;&gt;
   &lt;head&gt;
      &lt;title&gt;&lt;php:pageTitle /&gt; - Layout Title&lt;/title&gt;
   &lt;/head&gt;
   &lt;body&gt;
      &lt;h1&gt;Layout&lt;/h1&gt;
      &lt;php:pageContent /&gt;
      &lt;p&gt;Layout content&lt;/p&gt;
   &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>&nbsp;</p>
<pre class="brush: xml; title: Browser Output; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/REC-html40/loose.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xmlns:php=&quot;http://test.com&quot;&gt;
   &lt;head&gt;
      &lt;meta name=&quot;description&quot; content=&quot;This is my page description.&quot; /&gt;
      &lt;title&gt;Page Title - Layout Title&lt;/title&gt;
   &lt;/head&gt;
   &lt;body&gt;
      &lt;h1&gt;Layout&lt;/h1&gt;
      &lt;h2&gt;Page&lt;/h2&gt;
      &lt;p&gt;Page content&lt;/p&gt;
      &lt;p&gt;Layout content&lt;/p&gt;
   &lt;/body&gt;
&lt;/html&gt;
</pre>

<a href="http://twitter.com/?status=Introducing+PHP+Site+Mesh+http%3A%2F%2Fwww.ajmichels.com%2F%3Fp%3D291" class="retweet-anywhere" title="Retweet This Post" rev="" rel="291">Retweet</a>]]></content:encoded>
			<wfw:commentRss>http://www.ajmichels.com/2012/02/05/introducing-php-site-mesh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Font Styles in AS2 on Flash CS5</title>
		<link>http://www.ajmichels.com/2011/04/29/font-styles-in-as2-on-flash-cs5/</link>
		<comments>http://www.ajmichels.com/2011/04/29/font-styles-in-as2-on-flash-cs5/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 15:42:55 +0000</pubDate>
		<dc:creator>AJ Michels</dc:creator>
				<category><![CDATA[Action Script]]></category>
		<category><![CDATA[Action Script 2]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.ajmichels.com/?p=273</guid>
		<description><![CDATA[While working on updating a legacy project developed in Flash Professional using Action Script 2 I ran into some issues with HTML text and formatting.  Certain portions of the HTML text (which was being loaded from an XML file) where supposed to be displayed as either bold or italics (or both), but instead the text [...]]]></description>
			<content:encoded><![CDATA[<p>While working on updating a legacy project developed in Flash Professional using Action Script 2 I ran into some issues with HTML text and formatting.  Certain portions of the HTML text (which was being loaded from an XML file) where supposed to be displayed as either bold or italics (or both), but instead the text within the &lt;i&gt; or &lt;b&gt; tags was not displaying at all.
</p>
<p>I tried a whole bunch of stuff to get it working.  Ultimately what we found was that for some reason Adobe seems to have changed the way fonts are embedded when you publish a flash project.  So while we were embedding Arial (probably not necessary given our audience) it was only embedding one style of the font (ie. regular, bold, italic).  So when we switched the embedded font from &#8216;regular&#8217; to &#8216;italic&#8217; the reverse issue was occurring, all of the text within the &lt;i&gt; tags was showing up while everything disappeared.
</p>
<p><strong>The solution</strong> was to change the font for the one we were embedding to the &#8216;device&#8217; font &#8216;sans serif&#8217; this allowed flash to decide which style to use on the fly.  I am sure this is not an issue in AS3, unfortunately re-writing the code was not an option in the time-frame I had.
</p>
<p><em>Note: We tried embedding all of the styles we needed for the font but Flash still seems incapable of applying the correct style when appropriate.</em>
	</p>
<p>Thanks goes to John for helping me resolve this issue.</p>

<a href="http://twitter.com/?status=Font+Styles+in+AS2+on+Flash+CS5+http%3A%2F%2Fwww.ajmichels.com%2F%3Fp%3D273" class="retweet-anywhere" title="Retweet This Post" rev="" rel="273">Retweet</a>]]></content:encoded>
			<wfw:commentRss>http://www.ajmichels.com/2011/04/29/font-styles-in-as2-on-flash-cs5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Launching Websites in Non-Default Browser</title>
		<link>http://www.ajmichels.com/2011/03/09/launching-websites-in-non-default-browser/</link>
		<comments>http://www.ajmichels.com/2011/03/09/launching-websites-in-non-default-browser/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 02:00:23 +0000</pubDate>
		<dc:creator>AJ Michels</dc:creator>
				<category><![CDATA[Organization]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.ajmichels.com/?p=255</guid>
		<description><![CDATA[Unfortunately there are some websites out there that have decided they are going to favor a specific web browser.  For example most sites created by Microsoft are optimized to work with IE.  This is great for Microsoft but not so much for people who know enough to recognize that IE is not at all the [...]]]></description>
			<content:encoded><![CDATA[<p>Unfortunately there are some websites out there that have decided they are going to favor a specific web browser.  For example most sites created by Microsoft are optimized to work with IE.  This is great for Microsoft but not so much for people who know enough to recognize that IE is not at all the best web browser out there (a rant for another time).  A more specific example would be Microsoft&#8217;s SharePoint.  For SharePoint they take advantage of ActiveX controls that are not available in other browsers to do things like integrate with Single Sign-On and Office Communicator, and their WYSIWYG editor seems to only work in IE for probably a similar reason.  This often causes people to switch between using the browser the prefer and the browser that gives them the best experience on the site they need to use.  This post discusses several options for dealing with the management of these &#8216;bookmarks&#8217;.
</p>
<p><span style="font-family:Arial; font-size:11pt"><strong>List of Culprit Websites<br />
</strong></span></p>
<ul>
<li><span style="font-family:Arial; font-size:10pt">Netfix (Silverlight Player)<br />
</span></li>
<li><span style="font-family:Arial; font-size:10pt">Informz<br />
</span></li>
<li><span style="font-family:Arial; font-size:10pt">Microsoft Share Point<br />
</span></li>
<li><span style="font-family:Arial; font-size:10pt">Microsoft Live<br />
</span></li>
</ul>
<p><span style="font-family:Arial"><span style="font-size:15pt"><strong>IE Tab Extensions</strong></span><br />
		</span></p>
<p><a href="http://www.google.com/chrome" target="_blank"><span style="font-family:Arial; font-size:10pt; text-decoration:underline">Google Chrome</span></a><span style="font-family:Arial; font-size:10pt"> (my current preference) and <a href="http://www.mozilla.com/" target="_blank"><span style="text-decoration:underline">Firefox</span></a> both have extensions called &#8220;IE Tab&#8221; (<a href="https://chrome.google.com/extensions/detail/hehijbfgiekmjfkfjpbkbammjbdenadd" target="_blank"><span style="text-decoration:underline">Chrome Extension</span></a>, <a href="https://addons.mozilla.org/en-US/firefox/addon/ie-tab/" target="_blank"><span style="text-decoration:underline">Firefox Extension</span></a>) these effectively create an instance of Internet Explorer inside of a tab within each browser.  This allows you to get most of the &#8220;benefits&#8221; of using IE for a particular site without needed to open a separate browser and not interrupting your web experience.  They also provide options that allow you to do things like specify sites that you always want opened in an IE Tab.<br />
</span></p>
<p><span style="font-family:Arial"><span style="font-size:12pt"><em>NOTE: Using these extensions however, is not a 100% affective replacement of the actual IE browser.  You will inevitably run into situations where a website&#8217;s functionality will be hindered by the nature of the extension versus the native browser.</em></span><span style="font-size:10pt"><br />
			</span></span></p>
<p><span style="font-family:Arial; font-size:15pt"><strong>Browser Shortcuts<br />
</strong></span></p>
<p><span style="font-family:Arial; font-size:10pt">If the extension IE Tab Extension approach is not an option either because you are not using a browser with extensions or you are not trying to open a website in IE but rather a different browser, you can create windows shortcuts for the browser that include extra parameters that will cause the shortcut to open the browser than immediately launch the URL of our choosing.<br />
</span></p>
<p><span style="font-family:Arial"><span style="font-size:10pt">Browse to the install directory for the browser you &#8216;need&#8217; to use on your computer ( IE will most likely be </span><span style="font-size:12pt"><em>C:\Program Files\Internet Explorer</em></span><span style="font-size:10pt">), right click on the execuatble file for the browser (</span><span style="font-size:12pt"><em>iexplore.exe</em></span><span style="font-size:10pt"> for IE) and select &#8220;Create Shortcut&#8221;.  You can now move this shortcut to whatever location you want.  I created a folder under &#8220;My Documents&#8221; for &#8220;Start Menu Shortcuts&#8221;.  Once you have the shortcut in the location you want it you can rename the file to whatever you prefer.  Then right click on the shortcut and select &#8220;Properties&#8221;.  In the field labeled &#8220;Target&#8221; at the end of the existing text add the URL you want to open. (ex. </span><span style="font-size:12pt"><em>&#8220;C:\Program Files\Internet Explorer\iexplore.exe&#8221; http://www.google.com</em></span><span style="font-size:10pt">), then click OK.  Now when you click on the shortcut and it will open Internet Explorer and launch the web address you specified.<br />
</span></span></p>
<p><span style="font-family:Arial; font-size:10pt">The process should be the same for most browsers in Windows.<br />
</span></p>
<p><span style="font-family:Arial"><span style="font-size:12pt"><em>NOTE: I have run into issues with this method in that specifically Windows 7 doesn&#8217;t like you having more than one shortcut in your start menu or taskbar that run the same application.  When it notices that you are placing a shortcut to a application that already has a shortcut windows will replace the existing shortcut with the new one.</em></span><span style="font-size:10pt"><br />
			</span></span></p>
<p><span style="font-family:Arial; font-size:15pt"><strong>Batch File Shortcuts<br />
</strong></span></p>
<p><span style="font-family:Arial"><span style="font-size:10pt">To counter the Windows 7 shortcut issue I started playing with the idea of running command line code to accomplish my goal.  You can do this in Windows by creating batch files (.bat).  For those who are unfamiliar, these are essentially text files that contain command line code that automatically gets executed when the file is run.  To create the batch file all you need to do is open Notepad (or your text editor of choice, not a word processor), insert the following code, and save the file as a </span><span style="font-size:12pt"><em>.bat</em></span><span style="font-size:10pt"> file.<br />
</span></span></p>
<p><span style="font-family:Arial; font-size:9pt">
<pre class="brush: plain; title: ; notranslate">START iexplore.exe http://google.com</pre>
<p></span></p>
<p><span style="font-family:Arial; font-size:10pt">The file that you end up with will now execute the command you specified.  In the case of the example I have above it will run Internet Explorer and launch Google.com.<br />
</span></p>
<p><span style="font-family:Arial; font-size:10pt">As with the shortcuts example you can put this file where ever you want on your computer.  You can even create a shortcut to this file that can be placed on the start menu or task bar and you will not run into the issue previously mentioned because you will have a separate batch file for each website you want to open.<br />
</span></p>
<p><span style="font-family:Arial; font-size:10pt">If anyone has any other tips or issues with the tips I have described above please comment.  I should point out that if you haven&#8217;t noticed all of the previously mentioned examples are for use on a Windows PC and will most likely not work on a Mac, I honestly have no idea.<br />
</span></p>

<a href="http://twitter.com/?status=Launching+Websites+in+Non-Default+Browser+http%3A%2F%2Fwww.ajmichels.com%2F%3Fp%3D255" class="retweet-anywhere" title="Retweet This Post" rev="" rel="255">Retweet</a>]]></content:encoded>
			<wfw:commentRss>http://www.ajmichels.com/2011/03/09/launching-websites-in-non-default-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Office 2010</title>
		<link>http://www.ajmichels.com/2010/11/02/office-2010/</link>
		<comments>http://www.ajmichels.com/2010/11/02/office-2010/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 22:26:50 +0000</pubDate>
		<dc:creator>AJ Michels</dc:creator>
				<category><![CDATA[Organization]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[OneNote]]></category>

		<guid isPermaLink="false">http://www.ajmichels.com/?p=184</guid>
		<description><![CDATA[I have been a big fan of Google Apps (Docs, Calendar, Gmail) for at least the last several years. They provide a lot of the features you need for an office suite and they do so in an open and accessible way. I found myself at a point where I was using Google Docs to [...]]]></description>
			<content:encoded><![CDATA[<p>I have been a big fan of Google Apps (Docs, Calendar, Gmail) for at least the last several years.  They provide a lot of the features you <strong>need</strong> for an office suite and they do so in an open and accessible way.  I found myself at a point where I was using Google Docs to manage most of my business and personal documents and notes.  Then I started writing documentation at work using MS Word 2007 (MS Office being the tool of choice at the AAN), this opened my eyes a bit.</p>
<p>My love affair with Google Docs is coming to a close and my relationship with MS Office is finding new passion.  After writing several user manuals and other documents with Word 2007 I started to find that the experience was so much more fulfilling than what I was getting from Google Docs.</p>
<h2>Word</h2>
<p>Google Docs doesn&#8217;t come close to the ease with which Word 2010 allows you to create well formated and good looking documents.  Yes you can create a CSS based style sheet for your Google doc word processing file, which is great if you love spending hours writing and tweaking CSS.  Word comes packed with a load of pre-configured styles for you to choose from.  If you can&#8217;t find one that looks the way you want, no problem, there is a tool for modifying your style and you can even save it out for use in a different document.  Aside from the cosmetic features word is rich with all of the old features you know and love.</p>
<h2>Excel</h2>
<p>I have yet to find much that has changed in Excel for 2010 but I am sure they have made similar improvements as in Word.  All of the powerful features from previous versions carry over of course, including the powerful dynamic and pivot tables.</p>
<h2>Power Point</h2>
<p>It has never been easier to create fast and stunning presentations.  This is not something I have done very much of and frankly I feel slide show presentations are used completely inappropriately in most presentations.  Come on people, it isn&#8217;t a place to write all of your lines, give me the key points.</p>
<h2>OneNote</h2>
<p>This is really the focus of this post.  OneNote is a backwater piece of software that I don&#8217;t think Microsoft was ever too serious about.  Well, the times they are ah&#8217;changin.  OneNote has transformed my personal organization, not to mention several areas of cooperative organization at work.  If you are unfamiliar, OneNote as the name may suggest is a software designed for taking and organizing notes.  I have tried several methods of note taking in my time, but I have always strived for a paperless solution.  For me OneNote is an excellent solution.  Content is organized by &#8220;Notebook&#8221;, &#8220;Section&#8221;, &#8220;Page&#8221; and &#8220;Sub-Pages&#8221;.  All have direct correlation to real world objects.  This makes it very easy for even a complete stranger to the software to open up a notebook and understand what they are looking at.</p>
<p>The content that you can put into OneNote is extremely open.  You can put text and images anywhere you want just like on a real piece of paper.  Unlike a piece of paper you can also include hyperlinks, files and links to files.  You can even integrate content with other MS productions such as Outlook.  For example, defining a piece of content as a &#8220;Task&#8221; will automatically create a task in Outlook for you.</p>
<p>To top it all off the biggest advantage digital note taking in OneNote provides is searchability.  Try as you may to create a short hand system for yourself to emphasize hand written content, making it easier to find later, you can&#8217;t match the power of really good search functionality.  OneNote will even index written content it finds in images using <abbr title="Optical Character Recognition">OCR</abbr>.</p>
<p>I decided I liked MS Office 2010 I decided to bite the bullet and purchase it for my personal computers at home.  It has been a very welcome addition to my software collection.</p>

<a href="http://twitter.com/?status=Office+2010+http%3A%2F%2Fwww.ajmichels.com%2F%3Fp%3D184" class="retweet-anywhere" title="Retweet This Post" rev="" rel="184">Retweet</a>]]></content:encoded>
			<wfw:commentRss>http://www.ajmichels.com/2010/11/02/office-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video Capture Tools</title>
		<link>http://www.ajmichels.com/2010/09/14/video-capture-tools/</link>
		<comments>http://www.ajmichels.com/2010/09/14/video-capture-tools/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 19:50:47 +0000</pubDate>
		<dc:creator>AJ Michels</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Capture]]></category>
		<category><![CDATA[FLV]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.ajmichels.com/?p=179</guid>
		<description><![CDATA[Here are some tools I have found useful in capturing video, specifically from the web. Download Helper (Extension for Firefox) This is by far the best tool I have found for capturing FLV and MP4 videos from the web.  All you have to do is visit the web page with the video you want to [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some tools I have found useful in capturing video, specifically from the web.</p>
<h2><a href="http://www.downloadhelper.net/" target="_blank">Download Helper</a> (Extension for <a href="http://www.mozilla.com/en-US/firefox/firefox.html" target="_blank">Firefox</a>)</h2>
<p>This is by far the best tool I have found for capturing FLV and MP4 videos from the web.  All you have to do is visit the web page with the video you want to grab.  Once the page is done loading (and the video has started to stream) the extension icon will activate indicating that it has found a video to download.  Click on the icon and select the file you want to download.  This works especially well with YouTube.  When you click the icon it will let you select from what ever size you want to download whether it be 480p, 720p, 1080, etc.</p>
<h2><a href="http://camstudio.org/" target="_blank">CamStudio</a></h2>
<p>CamStudio is a open source project used for capturing video directly from your screen.  This means if you see it on your screen you will capture it.  The software has a few settings for video and audio quality.  The Biggest issue I had with this CamStudio was that to get the audio to capture as well you need to use the &#8216;Stereo Mixer&#8217; audio input (esentially loops your current audio output back to your PC).  When doing this I was unable to eliminate a minor feedback I was getting, I think probably from the poor quality audio hardware I have in my work computer.</p>
<h2><a href="http://www.bobyte.com/AviScreen/index.asp" target="_blank">AviScreen</a></h2>
<p>AviScreen is very similar to CamStudio.  Both are good tools for creating screencasts.</p>
<p>It is also worth pointing out that neither CamStudio or AviScreen are incredibly user friendly and are definately lacking in UI quality, but hey what else can you expect from a piece of software that probably doesn&#8217;t make any money for it&#8217;s developer.</p>

<a href="http://twitter.com/?status=Video+Capture+Tools+http%3A%2F%2Fwww.ajmichels.com%2F%3Fp%3D179" class="retweet-anywhere" title="Retweet This Post" rev="" rel="179">Retweet</a>]]></content:encoded>
			<wfw:commentRss>http://www.ajmichels.com/2010/09/14/video-capture-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>All I see is Blond, Brunette, Redhead&#8230;</title>
		<link>http://www.ajmichels.com/2010/09/10/all-i-see-is-blond-brunette-redhead/</link>
		<comments>http://www.ajmichels.com/2010/09/10/all-i-see-is-blond-brunette-redhead/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 15:14:55 +0000</pubDate>
		<dc:creator>AJ Michels</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.ajmichels.com/?p=169</guid>
		<description><![CDATA[http://createqrcode.appspot.com/ Retweet]]></description>
			<content:encoded><![CDATA[<p><img src="http://chart.apis.google.com/chart?cht=qr&amp;chs=300x300&amp;chl=blond%20brunette%20readhead&amp;chld=H|0" alt="QR Code" /></p>
<p><a href="http://createqrcode.appspot.com/">http://createqrcode.appspot.com/</a></p>

<a href="http://twitter.com/?status=All+I+see+is+Blond%2C+Brunette%2C+Redhead...+http%3A%2F%2Fwww.ajmichels.com%2F%3Fp%3D169" class="retweet-anywhere" title="Retweet This Post" rev="" rel="169">Retweet</a>]]></content:encoded>
			<wfw:commentRss>http://www.ajmichels.com/2010/09/10/all-i-see-is-blond-brunette-redhead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cf.Objective() 2010 – Day 3</title>
		<link>http://www.ajmichels.com/2010/04/24/cf-objective-2010-day-3/</link>
		<comments>http://www.ajmichels.com/2010/04/24/cf-objective-2010-day-3/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 21:19:33 +0000</pubDate>
		<dc:creator>AJ Michels</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Cryptography]]></category>

		<guid isPermaLink="false">http://www.ajmichels.com/2010/04/24/cf-objective-2010-day-3/</guid>
		<description><![CDATA[Part three of my cf.Objective 2010 series.&#160; Again I arrived a little late today.&#160; Just over tired.&#160; I got to Terry Ryan’s ORM talk about half way through.&#160; When I walked in he was talking about lazy loading, extra lazy, and eager.&#160; He mentioned how you can actually do a eager join when you load [...]]]></description>
			<content:encoded><![CDATA[<p>Part three of my cf.Objective 2010 series.&#160; Again I arrived a little late today.&#160; Just over tired.&#160; I got to Terry Ryan’s ORM talk about half way through.&#160; When I walked in he was talking about lazy loading, extra lazy, and eager.&#160; He mentioned how you can actually do a eager join when you load an object which instead of running separate queries two get all of the data you need it Hibernate will create a ‘large’ join statement that will pull all of the data in one query.&#160; This was something I hadn’t previously heard of and sounded like it might have some good uses.&#160; He went on to talk about Caching, Event Handling and Table Generation.</p>
<p> <span id="more-155"></span>
</p>
<p>I am starting to get to the point in the conference where I just want to lock myself in my office at home and experiment with all of the things I have been exposed.&#160; This inevitably makes it a bit difficult to pay close attention to the presentations.</p>
<h2>Practical ColdFusion Security</h2>
<p>with <a href="http://blog.classsoftware.com" target="_blank">Justin Mclean</a></p>
<p>Justin’s talk was split into two parts.&#160; First he talked about risk assessment then applying it to a practical example.</p>
<p>Risk assessment is balancing the business objectives and security requirements.&#160; This process should not be done only once.&#160; Risk should be assessed before the project is implemented, after it has been implemented and any time it is changed.&#160; Keep in mind that treats are not always external.&#160; Once threats have been identified they should be rated for both frequency (how likely the treat is to occur) and consequence.&#160; The level of risked is determined by <em>f x c</em>.&#160; After level of risk is determined each threat can be prioritized.</p>
<p><strong>Risk Assessment Process</strong></p>
<ol>
<li>Identify Assets (anything that has risk. staff, software, hardware, information) </li>
<li>Identify and Quantify the possible threats (include unlikely threats, don’t ignore the obvious) </li>
<li>Determine the consequences of each threat </li>
<li>Evaluate the current risk (What level of risk are they based on frequency and consequence. What is acceptable.) </li>
<li>Decide acceptable level of risk </li>
<li>Treat each risk </li>
</ol>
<blockquote><p>The simpler a system is the more secure it is.</p>
</blockquote>
<p>For the second half of his presentation Justin talked about how he applied this process to a Student Election System he helped develop.</p>
<h2>Developing APIs: Dos and Donts</h2>
<p>with <a href="http://www.simonfree.com/" target="_blank">Simon Free</a></p>
<p>An API (Application Programming Interface) is an interface to an application that has documentation for what functionality is available and exposes functionality of an application to outside use.&#160; Whether that be another internal application or an external application.&#160; They are good for sharing content and functionality, centralizing functionality, and allowing other technologies and code to interact with your code.&#160; There are two major types of APIs, RESTful and RPC.&#160; RESTful is a much more flexible API a base URI that exposes multiple URLs that have different functionality.&#160; When developing an API you should write and test your documentation before writing any code.&#160; This will ensure you have a solid road map for the code you are developing.</p>
<p>Once you have a solid, tested set of documentation write your code strictly from that documentation.&#160; If you discover revisions it is best to update the documentation and have it tested again before continuing to your coding.&#160; After coding the API you need rigorous testing (obviously) and attempt to hack it.&#160; This is important because you can be certain that once it is available to your end user they will try to break and hack it.</p>
<p>Simon had a lot of great information in this presentation and it was very compelling.&#160; He did a good job of taking a high level approach and then giving multiple examples.&#160; Part of the way through his talk he brought up three people onto the stage and had them test some documentation.&#160; He came back to them after a while and went over the results.&#160; The API they where testing documentation for was actually the Flickr API.&#160; He gave one person no documentation, one person a single page of documentation, and the third person the entire Flickr API documentation.&#160; Person one could not complete the task at all.&#160; Person two was very close but not perfect.&#160; Person three had it perfect but had to sort through all of the 30+ functions to find the few he needed.</p>
<h2>A Brief Introduction to Cryptography</h2>
<p>with <a href="http://12robots.com/" target="_blank">Jason Dean</a></p>
<p>I was going to go to the session on using ColdFusion for creating workflows but because of my personal interest in Cryptography I decided to go to Jason’s presentation.&#160; I asked Jason if he had read the book that got me interested “<a href="http://en.wikipedia.org/wiki/The_Code_Book" target="_blank">The Code Book</a>” by Simon Singh.&#160; He told me it was on his list of books to read.</p>
<p>Jason started off the presentation by giving a very brief overview of cryptography, cryptanalysis, and cryptology.&#160; I am not going to write much about this part of the presentation.&#160; I would encourage you to check out any number of books on the subject such as the one I mentioned above.&#160; I must say that book was a very enjoyable read.&#160; It even inspired me to write a couple simple CF apps that handle some basic well known ciphers.</p>
<p>After his overview he started using examples that we as programs would be familiar with just as Digitally Sign Certificates, SSL, and TLS.</p>
<p>Some encryption technologies available in CF include CFMX_COMPAT, Blowfish, DES (Data Encryption Standard), Triple-DES, AES, PBEWithMD5AndDES (Password Based Encryption), PBEWithMD5AndTripleDES.&#160; DES is the old standard but is not anymore.&#160; Triple-DES is much stronger and can be effective is used correctly (C = E<sub>k3</sub>(D<sub>k2</sub>(E<sub>k1</sub>(plaintext))). The new standard algorithm is Rijndael (<em>rain-doll</em>).&#160; It is a 128 bit encryption that can accept either 128, 256, or 512 bit keys.</p>
<p>To use encryption in ColdFusion you would use the Encrypt function:</p>
<pre class="code">encrypt(str, key, [cipher, encoding, IV or salt, iterations])</pre>
<pre class="code">&lt;cfset plaintext = &quot;My plain text message&quot; &gt;
&lt;cfset key = &quot;mykey&quot; &gt;
&lt;cfset cipertext = encrypt(plaintext, key, &quot;AES'/CBC/PKCS5Padding&quot;, &quot;key&quot;) &gt;
&lt;cfoutput&gt;#cipertext#&lt;/cfoutput&gt;
&lt;cfset decipertext = decrypt(cipertext, key, &quot;AES'/CBC/PKCS5Padding&quot;, &quot;key&quot;) &gt;
&lt;cfoutput&gt;#decipertext#&lt;/cfoutput&gt;</pre>
<h2>Making Bad Code Good</h2>
<p>with <a href="http://nodans.com" target="_blank">Dan Wilson</a></p>
<p>This was a pretty basic session with a lot of code examples.&#160; Dan just went through about nine real world code examples he has encountered during his career and showed how they could have been written in a more efficient way.&#160; I can basically summarize it by saying use proper standards, name variables and functions with context and avoid taking shortcuts.</p>
<p>&#160;</p>
<p>If you have any questions about what went on at the conference don’t hesitate to contact me or better yet leave a comment.</p>

<a href="http://twitter.com/?status=cf.Objective%28%29+2010+%E2%80%93+Day+3+http%3A%2F%2Fwww.ajmichels.com%2F2010%2F04%2F24%2Fcf-objective-2010-day-3%2F" class="retweet-anywhere" title="Retweet This Post" rev="" rel="155">Retweet</a>]]></content:encoded>
			<wfw:commentRss>http://www.ajmichels.com/2010/04/24/cf-objective-2010-day-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cf.Objective() 2010 – Day 2</title>
		<link>http://www.ajmichels.com/2010/04/23/cf-objective-2010-day-2/</link>
		<comments>http://www.ajmichels.com/2010/04/23/cf-objective-2010-day-2/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 22:11:07 +0000</pubDate>
		<dc:creator>AJ Michels</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.ajmichels.com/2010/04/23/cf-objective-2010-day-2/</guid>
		<description><![CDATA[Part two of my cf.Objective 2010 series.  I was a bit worried this day was going to be rough as I had been at the office until almost 10pm the night before.  I was a little late the first session and missed breakfast but for the most part I was more awake than I expected.  [...]]]></description>
			<content:encoded><![CDATA[<p>Part two of my cf.Objective 2010 series.  I was a bit worried this day was going to be rough as I had been at the office until almost 10pm the night before.  I was a little late the first session and missed breakfast but for the most part I was more awake than I expected.  It helped that the first couple sessions weren’t entirely boring.  Actually the session on Flex 4 was pretty interesting, but still wasn’t earth shattering information.</p>
<p><span id="more-152"></span></p>
<h2>ColdFusion &amp; jQuery: Two Great Tastes That Go Great Together</h2>
<p>with <a href="http://jeffcoughlin.com/" target="_blank">Jeff Coughlin</a></p>
<p>I came a few minutes late to this session so I missed the introduction.</p>
<p>When I walked in Jeff was talking about the <em>cfmediaplayer</em> tag in CF9 and how you can hook into it with JavaScript.  Specifically he was using <a href="http://jquery.com/" target="_blank">jQuery</a> to control the flash video player that ColdFusion was outputting to the screen.  So he had it set up so that when the user clicks on any one of a specific set of links jQuery takes the value of the <em>href</em> attribute of that anchor tag and updates the <em>source</em> attribute of the media player then plays the new video.</p>
<p>Then he showed an example of using CF9’s built in <em>cfmap</em> &amp; <em>cfmapitem</em> which use the <a href="http://code.google.com/apis/maps/" target="_blank">Google Maps API</a> to output a map that can be interacted with.  The <em>cfmapitem</em> take is used to defined 1…* points on the map.  He then used jQuery to add a link the each map item’s detail view which opened a video in a jQuery pop-up window.</p>
<p>Jeff’s final demo was a slideshow with rotating images, cross fade transition, and a semi-transparent caption bar at the bottom of each image.  This seemed to me to be a pretty simple demo but I am pretty familiar with JavaScript and have played around a bit with jQuery.  One simple but neat feature was that when the user hovers over the slideshow with the mouse it pauses the image rotation.  He had other features that seemed pretty standard for that kind of widget.</p>
<h2>Flex 4 for Flex 3 Developers</h2>
<p>with <a href="http://blogs.digitalprimates.net/jefftapper/" target="_blank">Jeff Tapper</a></p>
<p>First note for this presentation is that it was not intended for people who have never used <a href="http://www.adobe.com/products/flex/" target="_blank">Flex</a> before.  It was truly for people who have been developing with Flex 3 and want to move to Flex 4.  Pretty specific subject matter so the numbers were pretty thin.  That being said I wasn’t sure I would get much out of it.  I have been playing with Flex 4 a bit using the command line SDK but I am coming more from Flex 2 not Flex 3.</p>
<p>The most jarring difference is that there are new libraries (new namespaces).  No longer do define all of your components using the ‘mx’ namespace.  Jeff pointed out that one reason for this is a shift from favoring inheritance for a composition approach.  He cited the example of most components in F3 inherit a ton of layout specific properties such as scrollable (default true).  Which you inevitably spend time overwriting.</p>
<p>He demonstrated how easy it is to create custom layout types in F4, rather than creating a custom container component.  If you need a layout other than vertical, horizontal, or tile you can just create it.</p>
<p>Instead of using repeaters you provide a group with a <em>dataProvider</em> and an <em>itemRenderer</em> and that’s it.  It works like a list.  All the list class does now is manage selection.  Virtualization has been moved outside of the list class and into the layout.  This opens up virtualization to almost everything.  On top of that, virtualization now works much smoother.  Rather than waiting until the item renderer at the top is off the screen to recycle it for the new item appearing at the bottom, now it creates new renderers and junks the one at the top.</p>
<p>The states model in F4 has been simplified.  You can define inline state properties when you define a component.  The example I have below shows how the Button component has a <em>label</em> of ‘Register’ when the state is ‘register’ and a <em>label</em> of ‘Login’ when the state is ‘login’.</p>
<pre style="overflow: hidden;">	&lt;s:States&gt;
		&lt;s:State name="register" /&gt;
		&lt;s:State name="login" /&gt;
	&lt;/s:States&gt;

	&lt;s:Button label.login="Login" label.register="Register" /&gt;</pre>
<p>Containers not only do not inherit layout functionality they do not inherit style functionality which is not delegated to the skin component.  One key to this concept that I didn’t understand at first is that you need to think of a skin as not just the colors and styles of a component but also the structure.</p>
<p>Something to note about F4 is that there are several more complicated components from F3 that are not available in F4.  However you can still use the MX library version in F4 but there are a few special components you need to use with them like MXDataProvider.</p>
<p>One thing I asked Jeff about because I was curious, was if you could compile an only F3 app with the F4 SDK.  I assumed that because the F4 stuff is mostly in new libraries that this would not be an issue.  He said there is a option for F3 compatibility mode within the F4 SDK.  Also that the new SDK is faster in general.</p>
<h2>Building RIAs with jQuery &amp; jqGrid</h2>
<p>with <a href="http://www.alagad.com/blog/author.cfm/ezra-parker" target="_blank">Ezra Parker</a></p>
<p>Ezra gave a quick elevator intro to <a href="http://jquery.com/" target="_blank">jQuery</a>, prefaced with the disclaimer that this was not a talk about how to use jQuery.  He pointed out several key features of jQuery including Utilities (which currently only consists of one, Position), themes, and widgets.</p>
<p>Generally I found this session a little too introductory for me.  He didn’t show how jQuery works but rather what it can do.  Which to be honest, I found even less useful.  If I want to know what properties are available for the accordion widget I can get all of the information in the available documentation online.  It seems a bit out of place for such an ‘advanced’ conference.  If it wasn’t for the fact that there where not any other sessions that I felt where more, relevant I would have left.  I am not at all suggesting that Ezra was a bad speaker or that the presentation was bad.  Just that for me personally it was not very compelling.  If you are interested in more specifics of the jQuery portion of his presentation seek it out for yourself.</p>
<p>The <a href="http://www.trirand.com/blog/?page_id=6" target="_blank">jqGrid</a> information was a little more interesting to me because it is not something I have worked with before.  However, it was still information I could easily get from online documentation and experimentation.</p>
<h2>Deploying ColdFusion Applications with Ant</h2>
<p>with <a href="http://www.alagad.com/blog/archives.cfm/author/Doug-Hughes" target="_blank">Doug Hughes</a></p>
<p>The idea behind deploying with Ant is to automate all of the things you do to get your code from development to production.  Automating these things helps to avoid user error, missed files, wrong environmental settings, etc.  Ant is an Apache product that was primarily built for doing Java build processes.  The way you primarily interact with it is by writing build files in xml, which are basically descriptions of what you want to have happen.</p>
<p>Doug briefly introduced Ant and then jumped right into examples.  His first example was pretty simple.  First he walks through his scenario without using Ant.  He throws in some pretty extreme ‘accidents’ but makes a good point.  The whole processes, with him explaining it, took at least 5 minutes (and it was a very simple example).  Then he did the whole thing using Ant and it probably took about 10 seconds.</p>
<p><a href="http://www.alagad.com/blog/post.cfm/introducing-cfant">CFAnt</a> is a project Doug started that provides prebuilt Ant tasks to aid ColdFusion developers deploy applications.</p>
<p>… <em>lapse of attention span</em> … caught fragments of the talk on CF9 ORM with Hibernate … looked like a good presentation but I am really starting to crash at this point. One more session to go.  I think he got more in-depth with specific hibernate stuff than session I have seen about it before.</p>
<h2>Don’t Let OO Drag You Down: A Pragmatic Look at OO Design and Development</h2>
<p>with <a href="http://www.briankotek.com">Brian Kotek</a></p>
<p>This session was not exactly what I expected.  Brian had a tendency to ramble a bit and I think he thought he was simplifying things more than he was.  But maybe I was just too tired.</p>
<p>What I think he was trying to do was break down some examples, each starting with a poor OO implementation and then gradually getting more complicated but being a better implementation.  I have to say I didn’t entirely agree with his reasoning or maybe just his examples.  Without actually using the terminology he was really talking about OO Patterns.  If you are interested in these patterns I have compiled a couple <a href="http://www.ajmichels.com/oop/">lists of Wikipedia articles</a> that are relevant.</p>
<p>Comments?</p>

<a href="http://twitter.com/?status=cf.Objective%28%29+2010+%E2%80%93+Day+2+http%3A%2F%2Fwww.ajmichels.com%2F2010%2F04%2F23%2Fcf-objective-2010-day-2%2F" class="retweet-anywhere" title="Retweet This Post" rev="" rel="152">Retweet</a>]]></content:encoded>
			<wfw:commentRss>http://www.ajmichels.com/2010/04/23/cf-objective-2010-day-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple &lt; Microsoft</title>
		<link>http://www.ajmichels.com/2010/04/23/apple-microsoft/</link>
		<comments>http://www.ajmichels.com/2010/04/23/apple-microsoft/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 20:26:22 +0000</pubDate>
		<dc:creator>AJ Michels</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.ajmichels.com/2010/04/23/apple-microsoft/</guid>
		<description><![CDATA[Short rant about how pissed I am with Apple.  People who think that Apple is less ‘evil’ than Microsoft are ignorant. I own an iPhone and for the most part I really like it.  I have few complaints, and most of them are a result of greedy mobile carriers.  iPad comes out and now I [...]]]></description>
			<content:encoded><![CDATA[<p>Short rant about how pissed I am with Apple.  People who think that Apple is less ‘evil’ than Microsoft are ignorant.<a href="http://www.ajmichels.com/wordpress/wp-content/uploads/2010/04/rottenapple2.jpg"><img class="alignright" style="display: inline; margin-left: 10px; margin-right: 10px; border: 0px initial initial;" title="rottenapple2" src="http://www.ajmichels.com/wordpress/wp-content/uploads/2010/04/rottenapple2.jpg" border="0" alt="rottenapple2" width="211" height="265" align="right" /></a></p>
<p>I own an iPhone and for the most part I really like it.  I have few complaints, and most of them are a result of greedy mobile carriers.  iPad comes out and now I am really interested in developing apps for the iPhone and iPad.  I think it would be fun as well as a way for me to branch out from web development.  So I go to the Apple website and register as an Apple Developer.  It wasn’t until after I registered that I found Apple has made it virtually impossible for you to develop apps for the app store if you do not have a computer running OSX.  On top of that it has to be running on an Intel platform, so one of their newer model machines.</p>
<p><strong>Screw you Apple.</strong></p>
<p>OSX blows you elitist bastards.  You develop a great mobile platform, the iPhone OS, and then you tell me because I prefer<em> *insert favorite not apple OS here*</em> I am not worthy of developing applications for your platform.</p>
<p>As if that wasn&#8217;t enough they updated there App store terms of use to eliminate Adobes efforts of circumventing this proprietary BS.</p>
<p>I guess it is time for me to start looking at Android or the Win Mobile 7 OS.  I definitely wont be buying an iPad anytime soon.</p>

<a href="http://twitter.com/?status=Apple+%26lt%3B+Microsoft+http%3A%2F%2Fwww.ajmichels.com%2F2010%2F04%2F23%2Fapple-microsoft%2F" class="retweet-anywhere" title="Retweet This Post" rev="" rel="142">Retweet</a>]]></content:encoded>
			<wfw:commentRss>http://www.ajmichels.com/2010/04/23/apple-microsoft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cf.Objective() 2010 – Day 1</title>
		<link>http://www.ajmichels.com/2010/04/22/cf-objective-2010-day-1/</link>
		<comments>http://www.ajmichels.com/2010/04/22/cf-objective-2010-day-1/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 22:10:52 +0000</pubDate>
		<dc:creator>AJ Michels</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.ajmichels.com/2010/04/22/cf-objective-2010-day-1/</guid>
		<description><![CDATA[Through work I received the opportunity again to attend the annual cf.Objective Conference held in the Twin Cities.  I have attended the conference for the last four years since its inception in 2007.  To summarize it is a conference for advanced ColdFusion developers.  If you are brand new to ColdFusion you would be better off [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ajmichels.com/wordpress/wp-content/uploads/2010/04/IMG_1283.jpg"><img class="alignright size-medium wp-image-125" style="display: inline; margin-left: 0px; margin-right: 0px;" title="Adobe Keynote" src="http://www.ajmichels.com/wordpress/wp-content/uploads/2010/04/IMG_1283-300x225.jpg" alt="" width="300" height="225" align="right" /></a>Through work I received the opportunity again to attend the annual <a href="http://cfobjective.com" target="_blank">cf.Objective Conference</a> held in the Twin Cities.  I have attended the conference for the last four years since its inception in 2007.  To summarize it is a conference for advanced ColdFusion developers.  If you are brand new to ColdFusion you would be better off attending <a href="http://cfunited.com" target="_blank">CFUnited</a>. Some session you might see at cf.Objective would be about Frameworks, ORM, CF integration with Flex, etc.</p>
<p>In this post I am summarizing the sessions I attended on the first day.</p>
<p><span id="more-122"></span></p>
<h2>Adobe Keynote (not really though)</h2>
<p><a href="http://www.terrenceryan.com/" target="_blank">Terry Ryan</a> talked for a while about the new releases adobe has had in the last year (ColdFusion 9, ColdFusion Builder). He mentioned the updated ULA stating you can maintain full  Then he demoed some of the features in ColdFusion Builder.  He also showed a couple plugins/apps he is building for CF Builder.</p>
<ul>
<li>Code Assist</li>
<li>Code Insight</li>
<li>SQL Insight</li>
<li>ORM Insight</li>
<li>CF Builder Plugins with CF
<ul>
<li>Instant Code Review (peer code review over instant messenger)</li>
<li>Aptactular (Code generator, not publicly available)</li>
</ul>
</li>
</ul>
<p>After CF Builder he went over the process of using Catalyst the to create a Flex app and skin starting with a Photoshop mockup.</p>
<p>Overall there was not any new information released.  They did preface this presentation with this information.</p>
<h2>ColdFusion 9: A New Way of Building Applications</h2>
<p>with <a href="http://www.danvega.org/blog/" target="_blank">Daniel Vega</a></p>
<p>Dan talked about some new features that make development easier in ColdFusion 9.</p>
<ul>
<li>Implicit Arrays – <em>MyArray = { ‘value1’, ‘value2’, ‘value3’ }</em></li>
<li>ArrayFind() &#8211; returns the key of a value in an array (0 if does not exist)</li>
<li>ArrayContains() &#8211; returns a true/false if value exists in an array</li>
<li>Script Components – including full language support in script</li>
<li>Inline If Statements &#8211; <em># (condition) ? true result : false result #</em></li>
<li>Implicit Structures</li>
<li>Components
<ul>
<li>creating an object with ‘new’ operator instead of CreateObject()</li>
<li>define a constructor method with ‘initmethod’ component attribute</li>
<li>implicit getters and setters with ‘accessors’ component attribute</li>
</ul>
</li>
</ul>
<p>After his overview of new features he likes he talked about architecting applications (using CF9) features.  He went over several examples of bad architecture like “God CFCs” or components that have all of the data and methods needed to interact with data in the database. <em>Ex. Blog.cfc written by Ray Camden.</em> He also mentioned the more recent pattern of creating too many CFCs. Then we get into the ‘new’ ways of doing things.</p>
<ul>
<li>Caching using cfcache
<ul>
<li>fragment caching available in CF9</li>
<li>timespan caching</li>
<li>idletime caching</li>
<li>dependant caching</li>
</ul>
</li>
</ul>
<p>Dan then demoed a commerce application he created written with the framework ‘ColdMVC’.  He urged us to focus not on the framework but on the concepts used to write the specific app.</p>
<p>… at this point I got distracted with ‘urgent’ work stuff. <img src='http://www.ajmichels.com/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<h2>Building High Performing Applications with ColdFusion 9</h2>
<p>with <a href="http://blog.joshuaadams.com/" target="_blank">Josh Adams</a></p>
<p>This was apparently a presentation that is given online at Adobe’s website all the time.  If you are interested <a href="https://www.adobe.com/cfusion/event/index.cfm?event=register_no_session&amp;id=1577896&amp;loc=en_us">https://www.adobe.com/cfusion/event/index.cfm?event=register_no_session&amp;id=1577896&amp;loc=en_us</a></p>
<h2>Continuous Integration with MXUnit, Ant, and Hudson</h2>
<p>with <a href="http://blog.mxunit.org/" target="_blank">Marc Esher</a></p>
<p>This presentation was an introduction to CI with ColdFusion using MXUnit, Ant and Hudson, not an introduction to those individual technologies. The idea behind Continuous Integration is to automate tasks a programming does to package and/or deploy code.  This kind of automation is intended not only to make workflow faster but to prevent user error.</p>
<ol>
<li>Programmer Commits Code to Source Control Repository</li>
<li>Hudson Pings the Source Code Repo for changes</li>
<li>Hudson finds a change and runs scripts including but not limited to Ant scripts and running unit test.</li>
</ol>
<p>Hudson has a nice admin interface that tells you the status of projects and allows you to manually initiate builds.  It even provides data about the test results over time.  It is very configurable.</p>
<blockquote><p>You don’t use CI to debug failed test. You use it to tell you want tests have failed.</p></blockquote>
<p>This presentation mostly made me more excited to learn about unit testing and using ant.</p>
<h2>Productive Work Practices</h2>
<p>with <a href="http://appgen.pbell.com/" target="_blank">Peter Bell</a></p>
<p>In this presentation Peter talked about being more efficient, have better work flow.  There were a lot of really good take-aways from this presentation.  I have to say it was the most inspiring session I had today.  I really hope Peter posts his slides.  He did a really good job of breaking things down into logical bullets.</p>
<ul>
<li><a href="http://lifehacker.com/5298615/five-best-clipboard-managers" target="_blank">Multiple Clipboard Tools</a></li>
<li><a href="http://www.pomodorotechnique.com/" target="_blank">Pomodoro Technique</a></li>
<li><a href="http://www.google.com/search?q=software+product+lines" target="_blank">Software Product Lines</a></li>
</ul>
<p>I briefly spoke with Peter after his presentation because I wanted to make sure I could get to the slides, but also because I was interested in whether he had heard of and uses <a href="http://davidco.com/" target="_blank">Getting Things Done (GTD)</a> by David Allen.</p>
<h2>Build a Better Search with Apache Solr</h2>
<p>with <a href="http://www.iotashan.com/" target="_blank">Shannon Hicks</a></p>
<p><a href="http://lucene.apache.org/solr/" target="_blank">Solr</a> is an open source search engine that runs on Java and is included in CF9.  It is made to search not just documents but all kinds of data.  It is also a java framework that can be extended to meet specific needs.  Solr is implemented in a very basic way with ColdFusion 9.</p>
<blockquote><p>If you want to use Solr as a really fast version of Verity, you can use <em>cfindex</em> and <em>cfsearch</em>.</p></blockquote>
<p>Based on Shannon’s demo (which was not exactly simple, mostly because of the nature of the content) it is very clear that Solr is far more powerful than Verity.  Solr uses xml configuration files to define how solr acts, what data to index, and how to return the information when the index is queried.  The two major configuration files are <em>solrconfig.xml</em> and <em>schema.xml</em>.</p>
<p>One interesting feature he highlighted was Solr’s built in spell check functionality.  Which much like google, allows you to offer spelling corrections in your search results.</p>
<p>Someone asked about indexing collections of binary documents like PDFs and Shannon mentioned another apache project called <a href="http://lucene.apache.org/tika/" target="_blank">Tika</a> that performs such tasks.</p>
<ul>
<li><a href="http://cfsolrlib.riaforge.org" target="_blank">CFSolrLib</a></li>
<li><a href="http://lucene.apache.org" target="_blank">Apache Lucene</a>
<ul>
<li>Tika – indexing binary files</li>
<li>Nutch – web crawler</li>
</ul>
</li>
<li>Demo Project – <a href="http://pintley.com" target="_blank">Pintley.com</a></li>
</ul>
<p>…</p>
<p>End of the day. Back to the office to complete some work.</p>

<a href="http://twitter.com/?status=cf.Objective%28%29+2010+%E2%80%93+Day+1+http%3A%2F%2Fwww.ajmichels.com%2F2010%2F04%2F22%2Fcf-objective-2010-day-1%2F" class="retweet-anywhere" title="Retweet This Post" rev="" rel="122">Retweet</a>]]></content:encoded>
			<wfw:commentRss>http://www.ajmichels.com/2010/04/22/cf-objective-2010-day-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

