<?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>Adam Fortuna &#187; Frameworks</title>
	<atom:link href="http://adamfortuna.com/category/frameworks/feed/" rel="self" type="application/rss+xml" />
	<link>http://adamfortuna.com</link>
	<description>Rants on technology, Ruby on Rails, Javascript and UI Design by Adam Fortuna</description>
	<lastBuildDate>Fri, 06 Aug 2010 20:34:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Reactor Presentation Next Tuesday</title>
		<link>http://adamfortuna.com/2008/01/28/reactor-presentation-next-tuesday/</link>
		<comments>http://adamfortuna.com/2008/01/28/reactor-presentation-next-tuesday/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 03:30:15 +0000</pubDate>
		<dc:creator>Adam Fortuna</dc:creator>
				<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[adogo]]></category>
		<category><![CDATA[Orlando]]></category>
		<category><![CDATA[presentations]]></category>
		<category><![CDATA[reactor]]></category>
		<category><![CDATA[transfer]]></category>

		<guid isPermaLink="false">http://www.adamfortuna.com/2008/01/28/reactor-presentation-next-tuesday/</guid>
		<description><![CDATA[If you&#8217;re in the Orlando next tuesday, Feburary 5th, and want to listen to a talk about Reactor, check out Adogo&#8217;s February meeting. Joe Zack and I will both be giving a presentation on a ColdFusion ORM, with him doing the also-popular Transfer. I&#8217;ll be interested in seeing how the two compare and the discussion [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re in the Orlando next tuesday, Feburary 5th, and want to listen to a talk about <a href="http://www.reactorframework.com/">Reactor</a>, check out <a href="http://adogo.us/2008/01/28/february-primer-coldfusion-orm-showcase-reactor/">Adogo&#8217;s February meeting</a>. <a href="http://www.cfhow.com/">Joe Zack</a> and I will both be giving a presentation on a ColdFusion ORM, with him doing the also-popular <a href="http://transfer.riaforge.org/">Transfer</a>. I&#8217;ll be interested in seeing how the two compare and the discussion that will probably ensue.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamfortuna.com/2008/01/28/reactor-presentation-next-tuesday/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Making the CSS Switch with Grids, Part 2</title>
		<link>http://adamfortuna.com/2007/08/06/making-the-css-switch-with-grids-part-2/</link>
		<comments>http://adamfortuna.com/2007/08/06/making-the-css-switch-with-grids-part-2/#comments</comments>
		<pubDate>Mon, 06 Aug 2007 08:34:22 +0000</pubDate>
		<dc:creator>Adam Fortuna</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Frameworks]]></category>

		<guid isPermaLink="false">http://www.adamfortuna.com/2007/08/06/making-the-css-switch-with-grids-part-2/</guid>
		<description><![CDATA[A month ago I was talking about designing with grids and specifically with 960 pixel wide grids due to the amount of divisors it has. Over the weekend a new CSS framework called Blueprint was release which emphasizes just those two aspects. Blueprint includes a small set of css files but packs quite a punch, [...]]]></description>
			<content:encoded><![CDATA[<p>A month ago I was talking about <a href="http://www.adamfortuna.com/2007/07/01/making-the-css-switch-with-grids/">designing with grids</a> and specifically with 960 pixel wide grids due to the amount of divisors it has. Over the weekend a new CSS framework called <a href="http://bjorkoy.com/blueprint/">Blueprint</a> was release which emphasizes just those two aspects. Blueprint includes a small set of css files but packs quite a punch, especially for a first release. </p>
<p>There are only 5 css files for the entire framework, split up in designations like &#8220;grid&#8221;, &#8220;reset&#8221; and &#8220;typography&#8221;.  A more in depth description of what they do can be found on the <a href="http://bjorkoy.com/blueprint/tutorial.html">Blueprint tutorial</a> page. The concepts make for learning how to create your own designs relatively easy. There are a few basic ideas to all layouts:</p>
<ol>
<li>A div with a class of &#8220;container&#8221; will hold everything within a box</li>
<li>The first item in a container (the one farthest to the left), needs a class of &#8220;first&#8221;</li>
<li>The last item in a container (the one on the right) needs a class of &#8220;last&#8221;</li>
<li>vertical columns need a class of &#8220;column&#8221;</li>
<li>You can specify a class from &#8220;span-1&#8243; to &#8220;span-9&#8243; to determine how wide a column should be.</li>
<li>You can create another &#8220;container&#8221; within any column and repeat these steps.</li>
</ol>
<p>A container sets the width to the magic number, 960px wide. This means that if you were trying to make a layout like <a href="http://www.adamfortuna.com">AdamFortuna.com</a> which has 100% wide portions, each would be it&#8217;s own element with a container inside of it, so the header would look like this:</p>
<pre class="brush: html">&lt;div id=&quot;header&quot;&gt;
  &lt;div class=&quot;container&quot;&gt;
     &lt;div class=&quot;column first span-10&quot;&gt;
       &lt;h2&gt;AdamFortuna.com&lt;/h2&gt;
       &lt;span&gt;Rants on software development, Coldfusion, Javascript and UI Design.&lt;/span&gt;
    &lt;/div&gt;
    &lt;div class=&quot;column last span-4&quot;&gt;
       Search form....
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;</pre>
<p>The &#8220;header&#8221; would then be responsible for setting the background color. The heavy amount of classes do all the work, keeping your css free of all IDs, one of the main reasons I don&#8217;t like <a href="http://developer.yahoo.com/yui/grids/">Yahoo Grids</a> is that it uses ID tags, not to mention littering your css with &#8220;yui&#8221; everywhere. Blueprint does a good job of staying towards the semantic css side of things, although ideally you wouldn&#8217;t have numbered classes like &#8220;span-3&#8243;, it would be more like &#8220;pod&#8221; or &#8220;asides&#8221;.  I&#8217;m happy with the mix though, and you can specify additional styles by tagging it up with your own IDs.  In the <a href="http://bjorkoy.com/blueprint/test.html">Blueprint example</a> you&#8217;ll also see a pair of background images that come along with the framework to use when testing your layouts.</p>
<p>Blueprint is still at version .3, with it just out in the public eye, but I see it being very useful down the line. If you&#8217;re pulling your hair out trying to get a normal box layout without tables, it&#8217;s a great resource to check out.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamfortuna.com/2007/08/06/making-the-css-switch-with-grids-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Validation, Business and Functional</title>
		<link>http://adamfortuna.com/2007/05/15/validation-business-and-functional/</link>
		<comments>http://adamfortuna.com/2007/05/15/validation-business-and-functional/#comments</comments>
		<pubDate>Wed, 16 May 2007 03:31:43 +0000</pubDate>
		<dc:creator>Adam Fortuna</dc:creator>
				<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.adamfortuna.com/2007/05/15/validation-business-and-functional/</guid>
		<description><![CDATA[The recent discussion of Form Validation &#8211; How do you do it?, had me wondering just what might be involved in creating an easy to use validation framework. It&#8217;s a task that might seem easy, but when you get down to all the special cases it&#8217;s anything but. ColdFusion is a language designed around rapid [...]]]></description>
			<content:encoded><![CDATA[<p>The recent discussion of <a href="http://www.doughughes.net/index.cfm?event=viewEntry&#038;entryId=236">Form Validation &#8211; How do you do it?</a>, had me wondering just what might be involved in creating an easy to use validation framework. It&#8217;s a task that might seem easy, but when you get down to all the special cases it&#8217;s anything but. ColdFusion is a language designed around rapid development, so why not attempt to create a Validation framework modeled around the idea that new rules can be added easily? Ok, that&#8217;s probably the case with any such framework, but it should be easy for a dynamic here. Today I&#8217;m mostly just brainstorming what I&#8217;d want and possible implementations. Over the next few days I&#8217;ll try to implement this.</p>
<p>So what should it be able to do? Well, Jeff&#8217;s post stated some very important requirements that I&#8217;d say are all must haves. To reiterate some of the points though, it should be able to validate entire business objects (cfcs with getters/setters OR named structs), it should be able to have a &#8220;strict&#8221; mode where it validates everything or a mode where only set fields are validated.  It should be able to validate forms via ajax (funcational validation), as well as single fields via ajax. It should also be able to validate from the client side and return error messages (json/html) or validate on the server side and get back some sort of error collection.</p>
<p>We want this to be as easy to use as possible, so the validation rules should only exist in a single place. The ajax features should also automatically call the associated validation rules. One of the difficulties with ajax is always that it requires twice the work by definition, but what if by some convention both Javascript and validation could be written for us? Here&#8217;s what I&#8217;m talking about.</p>
<pre class="brush: html">&lt;form id=&quot;register&quot; validate=&quot;onsubmit&quot; message=&quot;before&quot;&gt;
   &lt;div class=&quot;group&quot; id=&quot;required&quot;&gt;
      &lt;span id=&quot;register-first_name-field&quot;&gt;
         &lt;label for=&quot;register-first_name&quot;&gt;First Name&lt;/label&gt;
         &lt;input type=&quot;text&quot; id=&quot;register-first_name&quot; name=&quot;user[first_name]&quot; /&gt;
      &lt;/span&gt;
      &lt;span id=&quot;register-username-field&quot;&gt;
         &lt;label for=&quot;register-username&quot;&gt;Username&lt;/label&gt;
         &lt;input type=&quot;text&quot; id=&quot;register-username&quot; validate=&quot;onkeyup&quot; name=&quot;user[username]&quot; /&gt;
      &lt;/span&gt;
      &lt;span id=&quot;register-email-field&quot;&gt;
         &lt;label for=&quot;register-email&quot;&gt;Email&lt;/label&gt;
         &lt;input type=&quot;text&quot; id=&quot;register-email&quot; validate=&quot;onchange&quot; name=&quot;user[email]&quot; /&gt;
      &lt;/span&gt;
   &lt;/div&gt;
   &lt;span&gt;
      &lt;input type=&quot;submit&quot;/&gt;
   &lt;/span&gt;
&lt;/form&gt;</pre>
<p>This basic form would be the basis for how the front end would work. Based on the metadata we&#8217;re marking up on the form (namely those &#8220;validate&#8221; attributes). The idea is that a form has basic validation rules associated with it &#8212; when to validate it and where to put the return values. Each field in the form would then inherit the validation rules defined in the form, but could also overwrite them. For instance, this form would validate everything on submit by default, and place and error messages &#8220;before&#8221; the field they&#8217;re for. Other options might include &#8220;after&#8221;, &#8220;top&#8221; or &#8220;bottom&#8221; for the very top of the form, or &#8220;above&#8221; and &#8220;below&#8221; for errors to be put at the top of the current grouping. The HTML will require some kind of hooks for where to place these messages of course, which is where some the convention markup comes into place. The before/after  messages would look for the formid-fieldid-field element and place it in an element before that. Top/Bottom would look for the formid and place based on that, and the grouping option would look for an element with the class of group that&#8217;s a parent element.</p>
<p>Now how would this know where to submit to for validation? That&#8217;s another easy convention to handle. Let say there&#8217;s three possible things that can be validated via ajax on a form &#8212; an entire form, a single object from a form or a single field from a form. Creating URLs for these to submit to might end up with something like this:</p>
<p>http://localhost/validate (validate.index)<br />
http://localhost/validate/object (validate.object?object=objName)<br />
http://localhost/validate/object/field (validate.field?object=objName&#038;field=fieldName)</p>
<p>Using Coldcourse you could create these without much trouble, and the javascript could discover the validation URL to use based on the form field names. The fields are named in the form object[field] which is a Ruby on Rails/ColdFusion on Wheels convention. On the server side these are converted to structures before we ever have to start working with them. This validate controller would then call up some sort of ValidationService where the real meat of the work happens. The controller then knows to return the errors it gets back to the javascript handler based on some sort of Javascript view template.</p>
<p>This is just brainstorming at this point, but looks easy enough to implement. If there&#8217;s anything I&#8217;m overlooking, or any suggestions with this so far feel free to comment.</p>
<p>Tomorrow: start planning the service layer!</p>
]]></content:encoded>
			<wfw:commentRss>http://adamfortuna.com/2007/05/15/validation-business-and-functional/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New Prototype.js Books Available</title>
		<link>http://adamfortuna.com/2007/05/08/new-prototypejs-books-available/</link>
		<comments>http://adamfortuna.com/2007/05/08/new-prototypejs-books-available/#comments</comments>
		<pubDate>Tue, 08 May 2007 10:43:29 +0000</pubDate>
		<dc:creator>Adam Fortuna</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.adamfortuna.com/2007/05/08/new-prototypejs-books-available/</guid>
		<description><![CDATA[Recently, I stumbled across a very unexpected book at a trek to Barnes and Noble: Prototype and Scriptaculous in Action. Being a long time Prototype user and reader of Justin Palmer I was surprised there wasn&#8217;t more press on this one. Not to be outdone though, the Pragmatic Programmers series announced the new book Prototype [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I stumbled across a very unexpected book at a trek to Barnes and Noble: <a href="http://www.amazon.com/Prototype-Scriptaculous-Action-Dave-Crane/dp/1933988037/ref=pd_bbs_sr_1/104-1788025-5999906?ie=UTF8&#038;s=books&#038;qid=1178619859&#038;sr=8-1">Prototype and Scriptaculous in Action</a>. Being a long time Prototype user and reader of <a href="http://alternateidea.com/">Justin Palmer</a> I was surprised there wasn&#8217;t more press on this one. Not to be outdone though, the Pragmatic Programmers series announced the new book <a href="http://pragmaticprogrammer.com/titles/cppsu/index.html">Prototype and script.aculo.us &#8211; You never knew JavaScript could do this!</a> beta book to be available. If you&#8217;re not familiar with beta books, the idea is basically that you can download the unfinished pdf right now, as well as updates along the way before eventually getting the pdf of the final version. For a little more you can have the finished book shipped to you as well. I did this for an earlier book by the Pragmatic Programmers and was impressed with how it worked, and the lack of problems I ran into.</p>
<p>If you search Amazon for <a href="http://www.amazon.com/s/104-1788025-5999906?ie=UTF8&#038;tag=mozilla-20&#038;index=blended&#038;link%5Fcode=qs&#038;field-keywords=javascript&#038;sourceid=Mozilla-search">Javascript</a> books, you&#8217;re going to have a hard time getting started. There are a few that stand out that I&#8217;ve been wanting to read though including <a href="http://www.amazon.com/Pro-JavaScript-Techniques-John-Resig/dp/1590597273/ref=pd_bbs_sr_7/104-1788025-5999906?ie=UTF8&#038;s=books&#038;qid=1178620300&#038;sr=8-7">Pro JavaScript Techniques</a> by John Resig (the creator of jQuery), <a href="http://www.amazon.com/ppk-JavaScript-1-e-VOICES/dp/0321423305/ref=sr_1_16/104-1788025-5999906?ie=UTF8&#038;s=books&#038;qid=1178620300&#038;sr=8-16">ppk on JavaScript, 1/e</a> by the guy who runs <a href="http://www.quirksmode.org/">Quirksmode.org</a> and the bestselling <a href="http://www.amazon.com/Ajax-Action-Dave-Crane/dp/1932394613/ref=pd_bbs_sr_2/104-1788025-5999906?ie=UTF8&#038;s=books&#038;qid=1178620515&#038;sr=8-2">Ajax in Action</a>. The problem with learning &#8220;Ajax&#8221; most people run into though is that it&#8217;s so abstracted by your Javascript framework of choice that very little of what you script is actual Ajax. For that reason these three and the Prototype ones above (which although I haven&#8217;t read cover to cover, I&#8217;ve probably skimmed through half of while at the bookstore) look like great ones for someone looking to further their JS skills.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamfortuna.com/2007/05/08/new-prototypejs-books-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coldbox 2.0 Final Released</title>
		<link>http://adamfortuna.com/2007/04/28/coldbox-20-final-released/</link>
		<comments>http://adamfortuna.com/2007/04/28/coldbox-20-final-released/#comments</comments>
		<pubDate>Sat, 28 Apr 2007 23:54:42 +0000</pubDate>
		<dc:creator>Adam Fortuna</dc:creator>
				<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[Frameworks]]></category>

		<guid isPermaLink="false">http://www.adamfortuna.com/2007/04/28/coldbox-20-final-released/</guid>
		<description><![CDATA[If you&#8217;re interested in checking out ColdBox, Luis released version 2.0 earlier today. For a framework that doesn&#8217;t get too much press it&#8217;s amazingly mature, with more documentation than any other I&#8217;ve come across (aside from those techspedition Fusebox books that have outdated practices). The sample applications that come with the framework offer even more [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re interested in checking out ColdBox, <a href="http://www.luismajano.com/blog/index.cfm/2007/4/28/ColdBox-200-Final-Release-is-here-Come-and-Get-it">Luis released version 2.0</a> earlier today. For a framework that doesn&#8217;t get too much press it&#8217;s amazingly mature, with more documentation than any other I&#8217;ve come across (aside from those techspedition Fusebox books that have outdated practices). The sample applications that come with the framework offer even more support with examples of how to create full applications using ColdBox including integration with Transfer and Coldspring. Read the release post for a full list of the features in 2.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamfortuna.com/2007/04/28/coldbox-20-final-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
