<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4764550274440393244</id><updated>2011-10-04T11:49:08.919-07:00</updated><category term='ActionScript'/><category term='mxmlc'/><category term='Update'/><category term='JsjStudios'/><category term='MVC'/><category term='Enumerable'/><category term='Ruby'/><category term='bug'/><category term='Framework'/><category term='Rails'/><category term='JumpShip'/><title type='text'>JumpShip Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-2244993399620170901</id><published>2008-12-16T15:58:00.000-08:00</published><updated>2008-12-17T11:45:49.415-08:00</updated><title type='text'>Announcing JumpShip 4.0</title><content type='html'>&lt;font class="Apple-style-span" face="arial"&gt;JumpShip 4.0 has been released. The new version, although not significantly different from the last, takes a slight philosophical departure from the last. And since it was a significant enough change to possibly break compatibility with older version, I've decided to call it a new major revision.&lt;/font&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;The most significant change in JumpShip 4.0 is that, now the framework actively discourages the use of Singleton that have become widely popular in other frameworks. Although JumpShip has always touted it's diminished use of Singletons and therefore it's advantage when using it a an application framework &lt;/font&gt;&lt;i&gt;&lt;font class="Apple-style-span" face="arial"&gt;or&lt;/font&gt;&lt;/i&gt;&lt;font class="Apple-style-span" face="arial"&gt; a component framework, the framework itself has never taken an opinion on the use of the Singleton pattern and in face included a few Singletons itself.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;There has been a recent backlash against the Singleton pattern in the design pattern world ( See the &lt;/font&gt;&lt;a href="http://www.as3dp.com/2008/11/26/we-don%E2%80%99t-need-no-stinkin%E2%80%99-singletons-why-to-avoid-the-singleton-pattern-in-actionscript-30-programming/"&gt;&lt;font class="Apple-style-span" face="arial"&gt;post on &lt;/font&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-size: 13px; "&gt;&lt;a href="http://www.as3dp.com/2008/11/26/we-don%E2%80%99t-need-no-stinkin%E2%80%99-singletons-why-to-avoid-the-singleton-pattern-in-actionscript-30-programming/"&gt;&lt;font class="Apple-style-span" face="arial"&gt;http://www.as3dp.com,&lt;/font&gt;&lt;/a&gt;&lt;font class="Apple-style-span" face="arial"&gt; &lt;/font&gt;&lt;a href="http://blogs.msdn.com/scottdensmore/archive/2004/05/25/140827.aspx"&gt;&lt;font class="Apple-style-span" face="arial"&gt;Scott Densmore's post&lt;/font&gt;&lt;/a&gt;&lt;font class="Apple-style-span" face="arial"&gt;, or &lt;/font&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-size: 16px; "&gt;&lt;font class="Apple-style-span" face="arial"&gt;&lt;a href="http://misko.hevery.com/code-reviewers-guide/"&gt;Miško Hevery's thoughts&lt;/a&gt; ). The Singleton has been used as a substitue for global variables ( you know, those things good programmers never use ), and have all of the drawbacks of globals. They can be very convenient but make your code hard to read, hard to test, and hard to debug.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;For all these reasons, the latest version of JumpShip has removed ( almost ) all of the Singletons in the Framework. The one exception being the JSRuntimeEnvironment class which is used to make your application behave slightly differently ( logging, throwing errors, etc. ) in a development environment than it does in a production environment ( stability at all costs ).&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;Eliminating Singletons meant eliminating some classes from the framework, namely the service locator classes, and changing others, JSApplicationState and JSRailsGatewayBase, so that they do not have Singleton implementations.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;This has effected the Rails Gateway classes the most and hopefully made the easier to use. You now no longer need to extend JSRailsGatewayBase in order to use it. Instead of having to define a service locator in the implementation, you simply pass in the base path of your Rails app when you create a new JSRailsGatewayBase instance.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;The JSApplicationState class is also no longer a Singleton which means you can have as many different state objects as you want.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;The other big change in JumpShip 4.0 is that now the JSDataRecord class recognizes when another JSDataRecord instance has been added as an attribute and will automatically listen for data binding events, rebroadcasting them upward if one is received. This allows multi-dimensional data structures that maintain data binding all the way down the tree. Although, JumpShip still encourages flat data structures, there may be occasions when you need data binding for multi-dimensional data.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;Finally, JumpShip 4.0 includes improved documentation and a few bug fixes for potential memory leaks.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="arial"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-2244993399620170901?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/2244993399620170901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=2244993399620170901' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/2244993399620170901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/2244993399620170901'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2008/12/announcing-jumpship-40.html' title='Announcing JumpShip 4.0'/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-5776834779313972781</id><published>2008-07-19T23:33:00.000-07:00</published><updated>2008-07-19T23:56:19.029-07:00</updated><title type='text'>Using JumpShip inside Flex. A roadmap.</title><content type='html'>&lt;span class="Apple-style-span"   style="  ;font-family:Verdana;font-size:13px;"&gt;&lt;div id="e-db" style="margin-top: 0px; margin-bottom: 0px; "&gt;Using JumpShip inside Flex. A roadmap.&lt;/div&gt;&lt;div id="e-db" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="e-db" style="margin-top: 0px; margin-bottom: 0px; "&gt;All files can be found at: &lt;a href="http://www.youbits.com/jumpship/FlexAndJumpShip.zip"&gt;http://www.youbits.com/jumpship/FlexAndJumpShip.zip&lt;/a&gt; for your convenience the entire JumpShip Framework is also included.&lt;br /&gt;&lt;/div&gt;&lt;div id="e-db" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="e-db3" style="margin-top: 0px; margin-bottom: 0px; "&gt;        The JSDataModel and JSControllerBase can be used inside of an mxml document as they are. The only trick to using JumpShip in Flex is in using JSViewBase. &lt;/div&gt;&lt;div id="e-db3" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="e-db4" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;/div&gt;&lt;div id="e-db6" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;JSViewBase extends Sprite in order to add the ability to add, remove and manipulate DisplayObject's to itself and have those DisplayObjects be part of the Display List. It extends Sprite as opposed to Flex's UIComponent so that it can be used in both Flash and Flex but this decision adds a small amount of complexity for the Flex developer since You can't attach a Sprite directly to most Flex components because all children of a Flex component must extend UIComponent. &lt;/div&gt;&lt;div id="tydo" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="e-db8" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;/div&gt;&lt;div id="e-db10" style="margin-top: 0px; margin-bottom: 0px; "&gt;    There are several ways to get past this small annoyance, however. &lt;/div&gt;&lt;div id="tydo0" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="e-db12" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;/div&gt;&lt;div id="e-db14" style="margin-top: 0px; margin-bottom: 0px; "&gt;    First of all you should realize that you don't need to add JSViewBase to the the Display List in order to use it. JSViewBase is Just a mediator between your Model / Controller and a group of one or more components. It is meant to handle communication between other pieces of the MVC framework. This allows you to build components which don't have any code that is JumpShip Framework specific and wrap them in a JSViewBase instance which takes care of all of the interaction within JumpShip.&lt;/div&gt;&lt;div id="tydo1" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="e-db16" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;/div&gt;&lt;div id="e-db18" style="margin-top: 0px; margin-bottom: 0px; "&gt;    You can create and use JSViewBase just as if it didn't extent Sprite by creating a new instance but not bothering to attach it to the display list. In this case the only thing you loose is the ability to use add components directly to JSViewBase and have them show up on the display list. Instead you would use JSViewBase to store references to it's components which would sit somewhere on the display list. An example of this is provided along with this post.&lt;/div&gt;&lt;div id="e-db18" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="e-db18" style="margin-top: 0px; margin-bottom: 0px; "&gt;    Included is a demo Flex project that uses the JSViewBase as a mediator for the Flex compnents contained in the main application.&lt;/div&gt;&lt;div id="tydo2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="e-db20" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;/div&gt;&lt;div id="e-db22" style="margin-top: 0px; margin-bottom: 0px; "&gt;    Another way to use JSViewBase would be to wrap the class in a proxy component that extends UIComponent. The JSViewBase proxy would just pass all references straight to the JSViewBase instance and the rest of the JumpShip Framework would not know the difference. An example of a JSViewBase proxy class is provided as part of this post.&lt;/div&gt;&lt;div id="tydo3" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="e-db24" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;/div&gt;&lt;div id="e-db26" style="margin-top: 0px; margin-bottom: 0px; "&gt;    A third solution is just to give up the utility function that JSViewBase provides and simply create a new Flex component that implements IView. Although you would loose some of the nicer things that JSViewBase provides, you may decide that those features aren't particularly useful to you anyway. Or you could implement a subset of the JSViewBase functionality in your new component. But as long as your component implements IView, it is capable of fully participating in the JumpShip Framework. Note that IView doesn't require that your implementation be a DisplayObject at all.&lt;/div&gt;&lt;div id="tydo4" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="e-db28" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;/div&gt;&lt;div id="e-db30" style="margin-top: 0px; margin-bottom: 0px; "&gt;    Most MVC frameworks don't even attempt to provide a standard View implementation because as this article illustrates, it can be tricky to implement a View class flexible enough for everyone to use. But JumpShip attempts to go where other frameworks do not, realizing that there is value to establishing conventions even if those conventions get away on rare occasion. But I hope this article illustrates that what may seem like a barrier, really is no big deal when you understand the broader intentions of the JumpShip Framework.&lt;/div&gt;&lt;div id="e-db30" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="e-db30" style="margin-top: 0px; margin-bottom: 0px; "&gt;All files can be found at: &lt;a href="http://www.youbits.com/jumpship/FlexAndJumpShip.zip"&gt;http://www.youbits.com/jumpship/FlexAndJumpShip.zip&lt;/a&gt; for your convenience the entire JumpShip Framework is also included.&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-5776834779313972781?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/5776834779313972781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=5776834779313972781' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/5776834779313972781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/5776834779313972781'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2008/07/using-jumpship-inside-flex.html' title='Using JumpShip inside Flex. A roadmap.'/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-7903300180285141236</id><published>2008-06-16T22:22:00.000-07:00</published><updated>2008-06-16T22:47:26.510-07:00</updated><title type='text'>JumpShip 3.2 Update Released.</title><content type='html'>&lt;span class="Apple-style-span"  style="color: rgb(68, 68, 68);  font-family:'Lucida Grande';"&gt;&lt;h1 style="color: rgb(16, 70, 111); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; padding-bottom: 0.5em; margin-left: 1em; clear: both; font-size: 0.9em; border-bottom-width: 3px; border-bottom-style: double; border-bottom-color: rgb(68, 68, 68); "&gt;&lt;a name="jumpship_3.2_update_released" id="jumpship_3.2_update_released" style="text-decoration: none; "&gt;JumpShip 3.2 Update Released.&lt;/a&gt;&lt;/h1&gt;&lt;div class="level1"&gt;&lt;p style="font-size: 0.8em; margin-left: 2em; margin-right: 2em; "&gt;This minor update of the &lt;a href="http://osflash.org/projects/jumpship" class="wikilink1" title="projects:jumpship" style="text-decoration: none; color: green; "&gt;JumpShip&lt;/a&gt; Framework fixes bugs in the JSDataModel and JSViewBase classes.&lt;/p&gt;&lt;p style="font-size: 0.8em; margin-left: 2em; margin-right: 2em; "&gt;JumpShip Framework An MVC Based ActionScript with the following features:&lt;/p&gt;&lt;ul style="list-style-type: square; font-size: 0.8em; "&gt;&lt;li class="level1" style="line-height: 1.4em; "&gt;&lt;div class="li"&gt;A Ruby on Rails like Data Mode&lt;/div&gt;&lt;/li&gt;&lt;li class="level1" style="line-height: 1.4em; "&gt;&lt;div class="li"&gt;A Command Pattern Based Controller (similar to ARP and Cairngorm&lt;/div&gt;&lt;/li&gt;&lt;li class="level1" style="line-height: 1.4em; "&gt;&lt;div class="li"&gt;A standardized View with asset loading tools.&lt;/div&gt;&lt;/li&gt;&lt;li class="level1" style="line-height: 1.4em; "&gt;&lt;div class="li"&gt;Model / View Data Binding&lt;/div&gt;&lt;/li&gt;&lt;li class="level1" style="line-height: 1.4em; "&gt;&lt;div class="li"&gt;Controller Before / After filtering&lt;/div&gt;&lt;/li&gt;&lt;li class="level1" style="line-height: 1.4em; "&gt;&lt;div class="li"&gt;Controller Command Cascading (the ability for commands to call other commands).&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color: rgb(0, 0, 0);  white-space: pre;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h5 style="color: rgb(16, 70, 111); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; padding-bottom: 0.5em; clear: both; margin-left: 1em; font-size: 0.8em; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: rgb(68, 68, 68); "&gt;&lt;a name="the_following_bugs_have_been_fixed" id="the_following_bugs_have_been_fixed" style="text-decoration: none; "&gt;The following bugs have been fixed:&lt;/a&gt;&lt;/h5&gt;&lt;div class="level5"&gt;&lt;ul style="list-style-type: square; font-size: 0.8em; "&gt;&lt;li class="level1" style="line-height: 1.4em; "&gt;&lt;div class="li"&gt;JSDataModel: Fixed a bug in the ‘getItemIndex()’ method that returned an improper value.&lt;/div&gt;&lt;/li&gt;&lt;li class="level1" style="line-height: 1.4em; "&gt;&lt;div class="li"&gt;JSViewBase: Fixed a scope issue that prevented proper data binding.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-7903300180285141236?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/7903300180285141236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=7903300180285141236' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/7903300180285141236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/7903300180285141236'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2008/06/jumpship-3.html' title='JumpShip 3.2 Update Released.'/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-3567526580307505980</id><published>2008-05-21T19:40:00.000-07:00</published><updated>2008-05-22T23:40:19.893-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JumpShip'/><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Enumerable'/><title type='text'>Awesomeness with JSEnumerable and JSArrayEnumerable</title><content type='html'>&lt;span class="Apple-style-span"   style="  ;font-family:Verdana;font-size:13px;"&gt;&lt;div id="k38t0" style="margin-top: 0px; margin-bottom: 0px; "&gt;JSEnumerable and JSArrayEnumerable are included in the core JumpShip library but are powerful classes in their own right and can even be used outside of the JumpShip Framework.&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;The enumerable classes provide standard methods for traversing and manipulating collections of data. The methods they define are meant to mirror standard Enumerable modules in other programing languages like Ruby. A lot of the time one of the more tedious tasks of managing data is the need to iterate over the entire data set to find the specific piece of data you need to retrieve or perform a transformation on.&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;The two enumerable classes in JumpShip each provide the same functionality but in two different ways. JSEnumerable is a class that can be extended by your data model so that it inherits all of the enumerable functionality. JSArrayEnumerable is a static class that manipulates the prototype of the standard Array class so that all Arrays in your app gain the enumerable functionality. Even though prototype manipulation has become a frowned upon practice in AS3, the Array is the most often used class for enumeration. If you want to make extensive use of the enumerable methods, using JSArrayEnumerable can save you a lot of work by simply allowing you to use Array objects throughout your application instead of sub-classes of JSEnumerable. Either way is fine, however, and will allow you to take full advantage of the enumerable methods to do some great tricks with your data. Let's see some examples.&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;Let's start with some dummy data. We're using JSDataModel as our data collection. It extends JSEnumerable:&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;var test = new JSDataModel();&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;var rec1:JSDataRecord = new JSDataRecord();&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;var rec2:JSDataRecord = new JSDataRecord();&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;var rec3:JSDataRecord = new JSDataRecord();&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;var rec4:JSDataRecord = new JSDataRecord();&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;rec1.create({firstname:"joe", lastname:"smith", purchases:10});&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;rec2.create({firstname:"jamie", lastname:"doe", purchases:1});&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;rec3.create({firstname:"jamie", lastname:"scanlon", purchases:50});&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;rec4.create({firstname:"mickey", lastname:"mouse", purchases:16});&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;test.addItem(rec1);&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;test.addItem(rec2);&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;test.addItem(rec3);&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;test.addItem(rec4);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;Let's also turn on the JSArrayEnumerable class to make all Array objects enumerable:&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;JSArrayEnumerable.enable = true;&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;Now the fun part. Let's say we want a way to quickly compile a list of all of the last names in our data set.&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;var names:Array = test.pluck("lastname"); // smith,doe,scanlon,mouse&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;The 'pluck' method pulls out a filed from the records in the collection and presents it as an Array. If you were to think of the data in the form of a table, pluck returns a column. In this case we pluck the 'lastname' column. Now lets say we want to only pull out the last names that contain the letter 's'.&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;var sortedNames:Array = names.grep( /s/, function(item, index) {&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;return item;&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;}); // smith,scanlon,mouse&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;Notice that we have called the 'grep' method on the 'names' variable which is an Array. Since we have enabled JSArrayEnumerable, all Array's now have this method. If we hadn't enabled JSArrayEnumerable, this would throw a compile error. The 'grep' method is one of the most powerful. It lets you use a RegExp ( Regular Expression ) to filter which records to return in the form of an Array. The capability to filter the records in your data set is only limited by your ability to create a good Regular Expression. The 'grep' method calls toString() on each item in the data set so it is also valuable to make sure that you implement a meaningful toString() method if you are working with complex datatypes, ( here we are only dealing with Strings and Numbers so this isn't an issue ). &lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;Hopefully you can begin to see the power of using the enumerable classes. We just performed two operations that would normally require a loop and at least one 'if' statement. Here's another example. Let's say we want to get a running total of all customer purchases.&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;var total:Number = 0;&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;total = test.inject(total, function(memo, item, index) {&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;return Number(memo) + Number(item.purchases);&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;}); // 77&lt;/span&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k38t2" style="margin-top: 0px; margin-bottom: 0px; "&gt;The 'inject' method allows you to specify a variable ( in this case a Number ) that will be submitted to a function for each item in the data set. The function also gets the item in the data set and the index. Whatever is returned by the function is submitted to the next item in the data set. This is a great way to apply a recursive function to every item in the data set. In this case, we use it to tally the values of the 'purchases' field.&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-3567526580307505980?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/3567526580307505980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=3567526580307505980' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/3567526580307505980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/3567526580307505980'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2008/05/awesomeness-with-jsenumerable-and.html' title='Awesomeness with JSEnumerable and JSArrayEnumerable'/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-1824471940063330004</id><published>2008-05-21T19:34:00.000-07:00</published><updated>2008-05-22T23:33:55.623-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JumpShip'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Update'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><title type='text'>JumpShip, an AS3 MVC Framework for Flex and Flash, has been updated.</title><content type='html'>&lt;span class="Apple-style-span"   style="color: rgb(51, 51, 51);   font-family:'Lucida Grande';font-size:13px;"&gt;&lt;div&gt;JumpShip, an AS3 MVC Framework for Flex and Flash, has been updated.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;This update features the following changes:&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="color: rgb(51, 51, 51);  font-family:'Lucida Grande';font-size:13px;"&gt;&lt;span class="Apple-style-span"  style="color: rgb(68, 68, 68);  font-size:16px;"&gt;&lt;ul style="list-style-type: square; font-size: 0.8em; "&gt;&lt;li class="level1" style="line-height: 1.4em; "&gt;&lt;div class="li"&gt;Addition of a new core class JSArrayEnumerable which adds Enumerable methods to Array objects.&lt;/div&gt;&lt;/li&gt;&lt;li class="level1" style="line-height: 1.4em; "&gt;&lt;div class="li"&gt;Minor bug fixes for JSDataRecord.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-1824471940063330004?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/1824471940063330004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=1824471940063330004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/1824471940063330004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/1824471940063330004'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2008/05/jumpship-as3-mvc-framework-for-flex-and.html' title='JumpShip, an AS3 MVC Framework for Flex and Flash, has been updated.'/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-6980423251465864916</id><published>2008-04-10T23:56:00.001-07:00</published><updated>2010-01-21T15:55:22.802-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JumpShip'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='mxmlc'/><title type='text'>JumpShip mxmlc Compiler Bug</title><content type='html'>An email from a member of the community pointed out that certain JumpShip Framework's JSEnumerabler Class and it's descending JSDataModel Class might cause errors due to a compiler bug which is documented here:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://bugs.adobe.com/jira/browse/SDK-9508"&gt;http://bugs.adobe.com/jira/browse/SDK-9508&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is a bug that has been fixed as of Flex 3.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-6980423251465864916?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/6980423251465864916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=6980423251465864916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/6980423251465864916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/6980423251465864916'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2008/04/email-from-member-of-community-pointed.html' title='JumpShip mxmlc Compiler Bug'/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-7947061467672149293</id><published>2008-04-09T23:25:00.000-07:00</published><updated>2009-12-01T13:07:23.965-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JumpShip'/><category scheme='http://www.blogger.com/atom/ns#' term='JsjStudios'/><title type='text'>I've ditched my site and turned it into a Flash blog.</title><content type='html'>I've decided to ditch my two year old web desing site in favor of a Flash blog. &lt;a href="http://www.jsjstudios.com/"&gt;http://www.jsjstudios.com&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There you will find articles related to Flash / Flex but not Jumpship specific. There is a lot of great content there already, hope you enjoy it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Jamie&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-7947061467672149293?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/7947061467672149293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=7947061467672149293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/7947061467672149293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/7947061467672149293'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2008/04/ive-ditched-my-site-and-turned-it-into.html' title='I&apos;ve ditched my site and turned it into a Flash blog.'/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-8901981116073990390</id><published>2008-03-06T23:28:00.000-08:00</published><updated>2008-05-22T23:27:55.252-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JumpShip'/><title type='text'>JumpShip Has Buzz</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_KKIn-dEAtjc/R9DwlfEXbtI/AAAAAAAAAAc/Pg0UpzalDoU/s1600-h/Picture+2.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_KKIn-dEAtjc/R9DwlfEXbtI/AAAAAAAAAAc/Pg0UpzalDoU/s320/Picture+2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174900498634338002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_KKIn-dEAtjc/R9DwlvEXbuI/AAAAAAAAAAk/rrtlS8quLWA/s1600-h/Picture+1.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_KKIn-dEAtjc/R9DwlvEXbuI/AAAAAAAAAAk/rrtlS8quLWA/s320/Picture+1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174900502929305314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've been monitoring traffic for a little while now but ever since I announced the release of &lt;a href="http://osflash.org/projects/jumpship"&gt;JumpShip 3.0&lt;/a&gt;, interests seems to have spiked. So thanks to all who are reading, we are now 63 countries strong!&lt;br /&gt;&lt;br /&gt;Jamie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-8901981116073990390?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/8901981116073990390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=8901981116073990390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/8901981116073990390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/8901981116073990390'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2008/03/jumpship-has-buzz.html' title='JumpShip Has Buzz'/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_KKIn-dEAtjc/R9DwlfEXbtI/AAAAAAAAAAc/Pg0UpzalDoU/s72-c/Picture+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-9056435706037419350</id><published>2008-03-02T11:07:00.000-08:00</published><updated>2008-03-02T11:17:31.463-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JumpShip'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><title type='text'>JumpShip 3.0 is Here!!</title><content type='html'>JumpShip 3.0 has been released.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.osflash.org/projects/jumpship"&gt;www.osflash.org/projects/jumpship&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Release Notes:&lt;br /&gt;&lt;br /&gt;The main goal of this version of JumpShip has been to lower the barrier to entry both in the learning curve, and in the time it takes to get an application up and running. &lt;br /&gt;&lt;br /&gt;Former versions of the JumpShip Framework required you to extend base classes to get even the simplest application working. In JumpShip 3.0, the base classes are still there but they are fully implemented. JumpShip 3.0 lets you extend the framework one piece at a time, leaving the rest to perform in a minimal way. In this way you can get an application up and running almost instantly. Using an agile programming style, you can add and change functionality as you need it.&lt;br /&gt;&lt;br /&gt;In order to lower the learning curve, JumpShip 3.0 has come more in line with the way other popular MVC frameworks work. Although JumpShip still takes the unique point of view that it is easier to work with a framework that sets reasonable conventions rather than try to be everything to all people, JumpShip 3.0 brings these conventions more in line with other frameworks like Cairngorm, PureMVC and ARP. The goal was to make the concepts familiar to those who have used other frameworks while still providing all of the great tools that JumpShip is known for.&lt;br /&gt;&lt;br /&gt;JumpShip 3.0 has also made significant improvements to the Ruby on Rails Gateway. The new JSRailsGateway takes advantage of the RESTful scaffolding that is standard in the latest version of Rails. The Gateway talks directly to you Rails models, eliminating the need for a Gateway on the Rails side to capture, translate, and send data from Flash to Rails.&lt;br /&gt;&lt;br /&gt;So to put it simply, JumpShip 3.0 can preform standard Create, Read, Update, and Delete operations on a standard Ruby on Rails back end with no extra sever-side code. The JumpShip Rails Gateway works with the JumpShip Data Model (JSDataModel) so everything sent and received through the Gateway is understood by the rest of your JumpShip application.&lt;br /&gt;&lt;br /&gt;Take a look in the examples folder in the rails package and see how to put together a simple database driven address book in minutes.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;br /&gt;&lt;br /&gt;Jamie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-9056435706037419350?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/9056435706037419350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=9056435706037419350' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/9056435706037419350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/9056435706037419350'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2008/03/jumpship-30-is-here.html' title='JumpShip 3.0 is Here!!'/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-7433700034777736998</id><published>2008-01-07T10:07:00.001-08:00</published><updated>2008-01-07T10:20:29.328-08:00</updated><title type='text'></title><content type='html'>The next release of JumpShip is going to sport some pretty heavy architectural changes in order to bring it more in line with what seems to be developing as a standard way of implementing MVC. The reason for the changes are two-fold.&lt;br /&gt;&lt;br /&gt;First, I think it's important to simplify the framework in order to encourage new developers to use it. And letting developers use the same basic approach with JumpShip as they may have encountered in other frameworks like Cairngorm or PureMVC is something I would put under the category of simplification.&lt;br /&gt;&lt;br /&gt;Second, lazyness mainly. It will be easier to maintain the framework if JumpShip barrows as much as it can from all the other work being done in this space. Many other people have much stronger opinions on how best to implement MVC than I do. &lt;br /&gt;&lt;br /&gt;My main goal has always been to lower the learning curve by taking lessons from folks outside of Flash or Java. Folks who are less interested in design pattern theory and are more interested in getting things done correctly, fast, and without thinking about too much.&lt;br /&gt;&lt;br /&gt;JumpShip is more focused on the more practical side of development. Respectful of standards and best practices but not afraid to lay down some conventions that make development with the framework take less thought.&lt;br /&gt;&lt;br /&gt;Ultimately I don't want the way JumpShip implements MVC to be a barrier, and in fact I'd like to get to the point where it's almost invisible to the developer who just wants to get their app up and running.&lt;br /&gt;&lt;br /&gt;Jamie Scanlon&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-7433700034777736998?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/7433700034777736998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=7433700034777736998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/7433700034777736998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/7433700034777736998'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2008/01/next-release-of-jumpship-is-going-to.html' title=''/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-3164075532808245336</id><published>2007-12-21T12:11:00.000-08:00</published><updated>2007-12-21T12:40:55.745-08:00</updated><title type='text'>JumpShip's Birthday!</title><content type='html'>Ok, so I realized a little late that it was a year ago that I released JumpShip to the OS world. Since that time I've been personally responsible for introducing the JumpShip framework to more than a few companies I've done Flash work for.&lt;br /&gt;&lt;br /&gt;If anything the scope of the project has become more focused on core principles. I've taken some time to lean and use a few different frameworks over the past year and I'm glad to say that while I've learned a lot about the insights and usefulness of various frameworks, I've not needed to adjust the core design principals of JumpShip (which itself was inspired greatly by other people smarter than I).&lt;br /&gt;&lt;br /&gt;So although my understanding of how frameworks should be used has changed, so has my understanding of why JumpShip is still a great framework.&lt;br /&gt;&lt;br /&gt;As a new year gets started the focus on JumpShip will be to simplify the implementation while keeping the current feature set intact. &lt;br /&gt;&lt;br /&gt;My recent experience with Cairngorm leaves me with the impression that Data Binding is a far more powerful tool than I first thought. And although it's implementation in Flex is far too specific and opaque for me (it's not even a standard feature of it's older brother Flash), there is still something about the ease of use as compared to the current JumpShip implementation that makes me think that this area might be a rich vein to mine.&lt;br /&gt;&lt;br /&gt;And lets face it, the Rails gateway needs work. I simply haven't kept up with the whole REST movement in the Rails world, and I think adopting more RESTful approach could simplify the JumpShip Rails gateway a whole lot (mostly on the Ruby end).&lt;br /&gt;&lt;br /&gt;I'm looking forward to the next year and I'm looking forward to see what becomes of JumpShip.&lt;br /&gt;&lt;br /&gt;Jamie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-3164075532808245336?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/3164075532808245336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=3164075532808245336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/3164075532808245336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/3164075532808245336'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2007/12/jumpships-birthday.html' title='JumpShip&apos;s Birthday!'/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-1953901463782626162</id><published>2007-09-06T08:25:00.000-07:00</published><updated>2007-09-06T12:40:59.217-07:00</updated><title type='text'>Enumerable Class for Flash</title><content type='html'>DOWNLOAD:&lt;br /&gt;http://www.youbits.com/jumpship/JSEnumerable.as&lt;br /&gt;&lt;br /&gt;Anybody who has spent any time with Ruby have surely come to appreciate the simple elegance of blocks especially as it relates to enumerable objects like arrays. For those not familiar, you can write something like:&lt;br /&gt;&lt;br /&gt;myArray.each {|item|&lt;br /&gt; item.do.something&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;This will iterate over the contents of the array and pass each item to a code block {...} allowing you to perform an operation. In Ruby, variables ( in this case items in the array ) are available within the block by defining them inside the "|...|".&lt;br /&gt;&lt;br /&gt;The Ruby syntax makes it elegant but the true worth is in the concept. How many countless hours would be saved over the course of a Flash programmers career if he/she didn't have to always write out "for (var i = 0; i &lt; myArray.length: i++) ...". Well we can't change the language but maybe we can attempt to use some Ruby concepts to make our lives easier.&lt;br /&gt;&lt;br /&gt;The ajax library Prototype uses an Enumerable module in JavaScript to Incorporate the Ruby concepts of blocks and the Ruby Enumerable Module to do some pretty powerful things. After taking a look at their work, I thought it would be worthwhile to try to implement an enumerable (JSEnumerable) class in ActionScript that lets you traverse and search any list-based data type that extends it.&lt;br /&gt;&lt;br /&gt;The Syntax looks something like:&lt;br /&gt;&lt;br /&gt;myEnum.each(function(item) {&lt;br /&gt; item.do.something();&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;You can also add a second parameter to the block function with will contain the index of the item. That would look like:&lt;br /&gt;&lt;br /&gt;myEnum.each(function(item, index) {&lt;br /&gt; item.do.something();&lt;br /&gt; trace(index) // 0,1,2,3,...&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;Using the JSEnumerable class requires extending it and defining a hook function called doEach. Since not all enumerable objects are arrays, this class defines how to traverse the data. So if a class extended the JSEnumerable class and had all of its data stored in a private Array called myData, doEach might look something like:&lt;br /&gt;&lt;br /&gt;protected override function doEach(iterator:Function) {&lt;br /&gt; for (var i = 0; i &lt; myData.length; i++) {&lt;br /&gt;  iterator(myData[i]);  &lt;br /&gt; }  &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if myData were an Object, the doEach function might look like:&lt;br /&gt;&lt;br /&gt;protected override function doEach(iterator:Function) {&lt;br /&gt; for (var a in myData) {&lt;br /&gt;  iterator(myData[a]);  &lt;br /&gt; }  &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The JSEnumerable class also includes the following methods:&lt;br /&gt;&lt;br /&gt;public function all(iterator:Function):Boolean&lt;br /&gt;true if all items match the conditions in the block, false otherwise.&lt;br /&gt;  &lt;br /&gt;public function any(iterator:Function):Boolean&lt;br /&gt;true if any items match the conditions in the block, false otherwise.&lt;br /&gt;&lt;br /&gt;public function collect(iterator:Function):Array&lt;br /&gt;iterates over the items and returns a new array according to the code in the block.&lt;br /&gt;  &lt;br /&gt;public function detect(iterator:Function):Boolean&lt;br /&gt;returns the item if the block conditions are true, false otherwise.&lt;br /&gt;  &lt;br /&gt;public function findAll(iterator:Function):Array&lt;br /&gt;returns an array of all items that match the block conditions &lt;br /&gt;  &lt;br /&gt;public function grep(pattern:RegExp, iterator:Function):Array&lt;br /&gt;returns the item if the pattern matches the string representation of the item. the item must have a toString() method to produce a result.&lt;br /&gt;  &lt;br /&gt;public function inc(object):Boolean&lt;br /&gt;true if the object matches an item, false otherwise.&lt;br /&gt;  &lt;br /&gt;public function max(iterator:Function):*&lt;br /&gt;returns the maximum value as determined by the block&lt;br /&gt;  &lt;br /&gt;public function min(iterator:Function):*&lt;br /&gt;returns the minimum value as determined by the block&lt;br /&gt;  &lt;br /&gt;public function reject(iterator:Function):Array&lt;br /&gt;returns an array of all items that DON'T match the block conditions&lt;br /&gt;&lt;br /&gt;As far as JumpShip goes, future versions of the JSDataModel and JSDataRecord will extend this class and all the above functions will be available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-1953901463782626162?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/1953901463782626162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=1953901463782626162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/1953901463782626162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/1953901463782626162'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2007/09/enumerable.html' title='Enumerable Class for Flash'/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-649796976023054384</id><published>2007-09-02T19:45:00.000-07:00</published><updated>2007-09-02T19:50:08.686-07:00</updated><title type='text'></title><content type='html'>JumpShip for AS3 Released!!!&lt;br /&gt;After an exhaustive port. the AS3 version of JumpShip has been released! The principals differ little from the original AS2 version of JumpShip so there should be very few migration issues (hopefully).&lt;br /&gt;&lt;br /&gt;While undergoing the migration I have had a few epiphanies about how to better implement the JumpShip Framework for AS3 / Flex / AIR and the coming months will be devoted to exploring those possibilities. Honestly, most of the room for improvement is on the Ruby on Rails end of the Rails gateway to put in more in line with the REST movement happening over there.&lt;br /&gt;&lt;br /&gt;So there are a lot of things on my plate but help from anybody who may be interested is always welcome.&lt;br /&gt;&lt;br /&gt;Jamie Scanlon&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;JumpShip for AS2 Released.&lt;br /&gt;JumpShip, the original AS2 version, has been updated with a major release. It includes several bug fixes to the Ruby on Rails gateway, and a glaring implementation error in the JSDataModel. There are also bug fixes in the JSLayoutManager Class in the extras package.&lt;br /&gt;&lt;br /&gt;Since we are all moving rapidly to AS3 I cannot promise that the AS2 version will be updated for much longer. Brave AS2 diehards are welcome to pick up this project where I leave off.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-649796976023054384?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/649796976023054384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=649796976023054384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/649796976023054384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/649796976023054384'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2007/09/jumpship-for-as3-released-after.html' title=''/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-4844853843675515481</id><published>2007-07-29T19:35:00.000-07:00</published><updated>2007-07-29T19:40:40.996-07:00</updated><title type='text'>AS3 Version... Really Soon.</title><content type='html'>I have basically finised porting the Jumpship Core and Rails code over to AS3. I just need to do do a little more beta testing to make sure it's working. If anybody wants to help beta test, just email me, I'll send you the latest code.&lt;br /&gt;&lt;br /&gt;I really should release another update to JumpShip for AS2 also... It's done but I was waiting to reslease JS2 &amp; JS3 at the same time.&lt;br /&gt;&lt;br /&gt;Jamie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-4844853843675515481?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/4844853843675515481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=4844853843675515481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/4844853843675515481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/4844853843675515481'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2007/07/as3-version-really-soon.html' title='AS3 Version... Really Soon.'/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-7798364857110589145</id><published>2007-07-09T20:51:00.000-07:00</published><updated>2007-07-09T20:57:46.275-07:00</updated><title type='text'></title><content type='html'>Update coming soon! the Rails package and the JSLayoutManager are soon to be updated. I found a few bugs and made a few improvements.&lt;br /&gt;&lt;br /&gt;I see the JSLayoutManager class as being really key to the project that I'm working on. I want to build it out so that it can be the base class for a user page layout app. I want to be able to let the users place display elements in absolute or relative positions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-7798364857110589145?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/7798364857110589145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=7798364857110589145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/7798364857110589145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/7798364857110589145'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2007/07/update-coming-soon-rails-package-and.html' title=''/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4764550274440393244.post-288061729222070815</id><published>2007-05-16T17:35:00.000-07:00</published><updated>2010-02-09T08:25:48.442-08:00</updated><title type='text'></title><content type='html'>This is a forum for the &lt;a href="http://osflash.org/projects/jumpship"&gt;JumpShip Framework&lt;/a&gt;, an MVC ActionScript Framework developed by Jaime Scanlon and JSStudios. This Blog is very lame, I know, but I'm n the process of acquiring a server to host a blog, and I just wanted to reserve this namespace on blogger. PLEASE feel free to post comments or join our mailing list &lt;a href="http://osflash.org/mailman/listinfo/jumpship_osflash.org"&gt;Here&lt;/a&gt; for fuller discussion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4764550274440393244-288061729222070815?l=jumpshipframework.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jumpshipframework.blogspot.com/feeds/288061729222070815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4764550274440393244&amp;postID=288061729222070815' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/288061729222070815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4764550274440393244/posts/default/288061729222070815'/><link rel='alternate' type='text/html' href='http://jumpshipframework.blogspot.com/2007/05/this-is-form-fot-jumpship-framework-mvc.html' title=''/><author><name>JumpShip</name><uri>http://www.blogger.com/profile/00807981616877406864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
