
<?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>Modus Create &#187; Uncategorized</title>
	<atom:link href="http://moduscreate.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://moduscreate.com</link>
	<description>Modus Create provides high end solutions and design for mobile, tablet, and rich web applications.</description>
	<lastBuildDate>Wed, 28 Mar 2012 18:13:39 +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>The Evolution of Rvrsit</title>
		<link>http://moduscreate.com/the-evolution-of-rvrsit/</link>
		<comments>http://moduscreate.com/the-evolution-of-rvrsit/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 16:47:06 +0000</pubDate>
		<dc:creator>Jay Garcia</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[ImpactJS]]></category>
		<category><![CDATA[Sencha Touch]]></category>
		<category><![CDATA[SilkJS]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=1501</guid>
		<description><![CDATA[It is with great pride today that we publicly announce the immediate availability of Rvrsit, our very first HTML5 game! Rvrsit was designed for use on the iPad and constructed using best practices of Sencha Touch, the best and most powerful HTML5...  <br /><a class="read-more" href="http://moduscreate.com/the-evolution-of-rvrsit/">Read More &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>It is with great pride today that we publicly announce the immediate availability of <a title="Rvrsit" href="http://moduscreate.com/rvrsit" target="_blank">Rvrsit</a>, our very first HTML5 game!</p>

<p><img src="http://moduscreate.com/wp-content/uploads/2012/03/game1-455x350.jpg" alt="" title="game large" width="455" height="350" class="alignright size-large wp-image-1727" /></p>

<p>Rvrsit was designed for use on the iPad and constructed using best practices of <a title="Sencha Touch" href="http://sencha.com/products/touch">Sencha Touch</a>, the best and most powerful HTML5 mobile framework and <a title="Impact JS" href="http://impactjs.com">Impact JS</a>, arguably the most modern JavaScript gaming framework on the market.</p>

<h2>The history</h2>

<p>I began development of this game over a year ago, when Sencha Touch 1.0 was in release candidate phase. My initial inspiration came from my experience in teaching my 4.5 year old son (now 6) how to play Othello. Little did I know that it would take over a year to get to this point!</p>

<p><img class="alignright size-medium wp-image-1542" style="float: right; margin: 10px;" title="takeshi_othello" src="http://moduscreate.com/wp-content/uploads/2012/03/takeshi_othello-194x300.jpg" alt="" width="194" height="300" />I remember having an epiphany &#8220;If I can teach a 4.5 year old how to play Othello, surely I can teach (program) a computer!&#8221;. So, I set off to start developing Rvrsit, then known as Othello. I began by doing research into Othello (also known as Reversi) algorithms. I found a few JavaScript implementations including ones in Java and C++. All of them were really difficult to understand and some took different approaches to achieve AI.  Most implementations of Othello (or Reversi, as it&#8217;s often called) were slow or not very attractive.</p>

<p>In order to figure out a fast way to get the AI working, I began to think about the rules of game play. Then, I needed to figure out how to get those rules into play. The result was an approach that was different compared to anything that I could find, but extremely fast!</p>

<p><img class="alignright size-small wp-image-1555" style="float: left; margin: 10px;" title="game-logic" src="http://moduscreate.com/wp-content/uploads/2012/03/game-logic.jpg" alt="" width="150" height="241" />
Beginning with Sencha Touch, I decided to create components that could be placed into a game board. The Chip class was constructed to be smart enough to know whether or not it was an edge piece or not and know of its nearest neighbor.</p>

<p><a title="Rvrs.it v0.1" href="http://moduscreate.com/rvrsit.old/" target="_blank"><img class="alignright size-medium wp-image-1562" style="float: right; margin: 10px;" title="rvrsit_prototype" src="http://moduscreate.com/wp-content/uploads/2012/03/rvrsit_prototype-300x230.jpg" alt="" width="300" height="230" /></a> With this logic configuration, Chip instances could literally talk to other Chip instances by means of a simple JavaScript reference. This allowed for rapid lookups throughout the game board for the game rules, which include whether or not the player made a valid move or not. The results of this game engine design can be seen in the <a title="Rvrsit prototype (Webkit only!)" href="http://moduscreate.com/rvrsit.old" target="_blank">Rvrsit prototype</a>.
<em>(This version of the game does not come with the necessary A.I. to allow the computer to compete against the player)</em></p>

<h1></h1>

<h1>Fast forward to 2012</h1>

<p>Soon after the turn of the new year, I was able to begin focusing on Rvrsit again! I began by converting the Sencha Touch 1.0 code to 2.0. I was left with the same quick response time but faced CSS3 animation issues. I couldn&#8217;t have the silky smooth 3d transition of a two-colored chip that I wanted. This led me down the path of HTML5 game engines.</p>

<p>In my research, I found a lot of JavaScript HTML5 game engines but only one really stood out. That framework is ImpactJS. Impact JS was the only framework that was mature enough for me to use to develop such a game with ease. After a few days of tinkering, I was able to come up with a prototype that uses the exact same Chip connection logic, but this time we got the silky smooth transitions we were looking for.</p>

<p><img class="alignright size-full wp-image-1603" style="float: right; margin: 10px;" title="takeshi_kenji_rvrsit_prototype" src="http://moduscreate.com/wp-content/uploads/2012/03/takeshi_kenji_rvrsit_prototype.jpg" alt="" width="150" height="213" />I gave the prototype to my two boys, Takeshi and Kenji and they were able to play against each other without any issues.</p>

<p>After the migration to ImpactJS, I was able to leverage the Chip connection design to create efficient A.I., allowing the computer to make decisions based on which chips were available to be flipped. In this decision loop, the computer first gathers a list of chips that are currently visible. It then loops through that small list and asks those chips whether or not its neighbors are valid playing options. After it determines all of the valid moves, it figures out which is the biggest gain for it. It then flips the chips that gain it the biggest score, allowing for the human player to make their move. The speed of the AI is evident when playing against the computer, even in the slowest mobile tablets, including the Motorola Xoom, Blackberry Playbook and Kindle Fire.</p>

<p>After this prototyping phase, it was time for design. This is where team member Dave Ackerman came into play. Dave was able to take the initial game prototypes and add much-needed polish. <img class="alignright size-medium wp-image-1505" style="float: right; margin: 10px;" title="Rvrsit" src="http://moduscreate.com/wp-content/uploads/2012/03/game-300x231.jpg" alt="" width="300" height="231" /> Some of our design inspiration came from our good friend <a href="http://meharrisllc.tumblr.com/">Michael Harris</a>, with his wildly successful HTML5 <a href="https://chrome.google.com/webstore/detail/ifaabgmcffhggbfgjknkgenljelbocin">Sudoku game</a>, which can be found in the Google chrome store today.</p>

<p>That leaves us where we&#8217;re at today. A well-designed app that leverages the best HTML5 UI framework with the best HTML5 game framework.</p>

<h1>Looking to the future</h1>

<p>The Rvrsit evolution is not done! Here&#8217;s a list of features that we already have in the works.</p>

<ul>
    <li>Use of HTML5 sound API for game sounds &amp; in-game music</li>
    <li>Two player game play via the cloud</li>
    <li>Full integration with Silk JS, an up and coming Server side framework</li>
    <li>Multi-device UI layout</li>
    <li>Multiple layouts</li>
</ul>

<p>In closing, as we progress, we&#8217;ll be providing in-depth blog posts. In these blog posts, we&#8217;ll be doing deep-dives into how we use each layer of the technology.</p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/the-evolution-of-rvrsit/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Where to Incorporate Your Startup</title>
		<link>http://moduscreate.com/where-to-incorporate-your-startup/</link>
		<comments>http://moduscreate.com/where-to-incorporate-your-startup/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 19:39:45 +0000</pubDate>
		<dc:creator>Josh Izenberg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cash Management]]></category>
		<category><![CDATA[Incorporation]]></category>
		<category><![CDATA[Lean Startup]]></category>
		<category><![CDATA[Venture Capital]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=1416</guid>
		<description><![CDATA[Delaware is kind of an odd place. Although it has less than a million people and its largest city’s principal claim to fame is being a suburb of Philadelphia, it is also home to the vast majority of the country’s...  <br /><a class="read-more" href="http://moduscreate.com/where-to-incorporate-your-startup/">Read More &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>Delaware is kind of an odd place.  Although it has less than a million people and its largest city’s principal claim to fame is being a suburb of Philadelphia, it is also home to the vast majority of the country’s largest companies.  Why?  Because of the strange history of corporate law, and an old rivalry with New Jersey.  But none of those historical details matter for the founder of a startup.  What matters are the practical reasons (i.e., money saving reasons!) why a founder should consider incorporating in Delaware instead of in their home state.</p>

<p>When you incorporate a business, you are generally required to have a person or organization resident in the state in which the business operates that can accept official correspondence on your behalf – also called, an agent for service of process.  I don’t know this for a fact, but it has been my experience that most states will let a person act as their own agent for service of process if they live in the state in which their business operates.</p>

<p>So let’s say you live in the Commonwealth of Virginia and you want to start a new venture.  By incorporating in Virginia, you will be able to save yourself a few hundred dollars a year in filing fees and agent fees by acting as your own agent.  If you were to incorporate in Delaware, then you would need to pay a third party to act as your agent in Delaware and you would need to file to do business as a “foreign” corporation in Virginia – more fees and more paperwork.  So then why should the average startup even consider incorporating in Delaware?</p>

<p>Well, for one, if you have thoughts of ever looking for funding, then being a Delaware company can have real advantages.  The fact is that people who invest in companies tend to prefer Delaware companies (or at least their lawyers tell them they should) because of the breadth and predictability of Delaware corporate law.  As a result, most VC deals are governed by Delaware law.  When you go out to seek funding, if you are already a Delaware company then you will avoid the likely costs of having to “move” states.  It’s also likely that you will incur less legal fees since the paperwork used for investments in Delaware companies is very standard and will take less time for a law firm to prepare and negotiate.</p>

<p><strong>Delaware.  It’s not just for the Fortune 500 anymore!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/where-to-incorporate-your-startup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sencha Touch 2 Bootcamp</title>
		<link>http://moduscreate.com/march-bootcamp/</link>
		<comments>http://moduscreate.com/march-bootcamp/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 20:20:10 +0000</pubDate>
		<dc:creator>Josh Izenberg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Sencha Touch]]></category>
		<category><![CDATA[Training]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=1214</guid>
		<description><![CDATA[Jay Garcia will be hosting a Sencha Touch 2 Bootcamp on Wednesday, March 28th through Friday, March 30th. Topics being covered include: Introduction to Sencha Touch Ext JS Component foundations Panels and Layouts TabPanels Sheets and Pickers Data Stores List...  <br /><a class="read-more" href="http://moduscreate.com/march-bootcamp/">Read More &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>Jay Garcia will be hosting a Sencha Touch 2 Bootcamp on Wednesday, March 28th through Friday, March 30th.</p>

<p>Topics being covered include:</p>

<ul>
    <li>Introduction to Sencha Touch</li>
    <li>Ext JS Component foundations</li>
    <li>Panels and Layouts</li>
    <li>TabPanels</li>
    <li>Sheets and Pickers</li>
    <li>Data Stores</li>
    <li>List and Nested List</li>
    <li>Form Panels</li>
    <li>Media and Carousels</li>
    <li>Application development</li>
    <li>Performance considrations</li>
</ul>

<p>Early bird pricing for the event ends on March 11th, so get your tickets now!</p>

<p><strong>Tickets can be <a title="Sencha Touch 2 Bootcamp " href="http://senchatouch2.eventbrite.co.uk/?ebtv=C">purchased from Eventbrite</a>.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/march-bootcamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sencha Touch 2 OmniGraffle Stencil</title>
		<link>http://moduscreate.com/sencha-touch-2-omnigraffle-stencil/</link>
		<comments>http://moduscreate.com/sencha-touch-2-omnigraffle-stencil/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 17:45:35 +0000</pubDate>
		<dc:creator>Dave Ackerman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Omnigraffle]]></category>
		<category><![CDATA[Sencha Touch]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=937</guid>
		<description><![CDATA[I have produced a set of Sencha Touch 2 OmniGraffle stencils based around the kitchen sink demo that Sencha has developed. Using this set of stencils, you should effectively be able to quickly wireframe and prototype a base theme Sencha Touch...  <br /><a class="read-more" href="http://moduscreate.com/sencha-touch-2-omnigraffle-stencil/">Read More &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-1203 alignnone" title="Sencha Touch 2 Omnigraffle Stencil" src="http://moduscreate.com/wp-content/uploads/2012/01/omnigraffle1.png" alt="Sencha Touch 2 Omnigraffle Stencil" width="685" height="150" /></p>

<p>I have produced a set of Sencha Touch 2 OmniGraffle stencils based around the <a title="Sencha Touch 2 Kitchen Sink" href="http://docs.sencha.com/touch/2-0/touch/examples/kitchensink/index.html">kitchen sink</a> demo that Sencha has developed. Using this set of stencils, you should effectively be able to quickly wireframe and prototype a base theme Sencha Touch application.</p>

<p>Included are the majority of the UI elements, and in the set you will find buttons, toolbars, form elements, modals, overlays, alerts, tab bars, and a date picker.</p>

<ul>
    <li><strong><a title="Sencha Touch 2 Omnigraffle Stencil" href="http://moduscreate.com/wp-content/uploads/2012/01/Sencha-Touch-2-All.zip">Download the OmniGraffle .gstencil here</a></strong></li>
</ul>

<p>The stencil will also be posted to <a title="Graffletopia" href="http://www.graffletopia.com">Graffletopia</a> shortly, so you can search for it inside of OmniGraffle and download it that way as well.</p>

<p><strong>Update</strong>: The stencil has been approved on Graffletopia. You can find it <a href="http://graffletopia.com/stencils/844">here</a>.</p>

<p>We&#8217;d love to hear your feedback!</p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/sencha-touch-2-omnigraffle-stencil/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>5 HTML5 Predictions for 2012</title>
		<link>http://moduscreate.com/5-html5-predictions-for-2012/</link>
		<comments>http://moduscreate.com/5-html5-predictions-for-2012/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 17:06:24 +0000</pubDate>
		<dc:creator>Pat Sheridan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Native Apps]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=999</guid>
		<description><![CDATA[2011 was a dynamic and exciting year for us at Modus Create.  As we start the new year and settle in to our new office,  I wanted to share some thoughts from our internal discussions on what to expect for...  <br /><a class="read-more" href="http://moduscreate.com/5-html5-predictions-for-2012/">Read More &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>2011 was a dynamic and exciting year for us at Modus Create.  As we start the new year and settle in to our new office,  I wanted to share some thoughts from our internal discussions on what to expect for HTML5 app development in the coming months.</p>

<h3>HTML5 Evolves from Buzzword to Core Technology Platform</h3>

<p>2012 is the year Mobile Web Apps will come online.  Most firms continue to struggle with mobile product development and the first generation of native mobile apps were held to a much lower standard for user experience.  As consumers expectations become more sophisticated, the ever increasing portfolio of novelty or ‘executive pet project’ mobile apps will have to be replace by a scalable, cost effective, HTML5 mobile web app model.</p>

<h3>The &#8216;Hybrid App&#8217; Development Becomes Migration Plan for Native Apps</h3>

<p>Many firms we speak to look at HTML5 as their ‘everything else’ strategy beyond iOS.   For firms that have focused on native iOS apps, HTML5 will be their platform of choice for covering Android, Windows, and Blackberry devices.   Of course there are specific hardware features available to native mobile apps that packaging tools such as PhoneGap make available to HTML5 developers:  camera, GPS, compass, accelerometer, and local storage to name a few.  Hybrid Apps, apps that deploy HTML5 content wrapped in a native wrapper of code, <a href="http://venturebeat.com/2011/07/08/hybrid-mobile-apps-take-off-as-html5-vs-native-debate-continues/">allow for a smooth transition point to more scalable solutions</a>.</p>

<h3>Facebook embraces HTML5</h3>

<p><a href="http://techcrunch.com/2011/06/15/facebook-project-spartan/">Facebook will release project Spartan</a> and most likely it’s own phone optimized to run HTML5 based games and apps as direct challenge to iOS.  Facebook <a href="http://blog.strobecorp.com/?p=304">acquired HTML5 platform company Strobe </a>towards the end of 2011 and <a href="http://www.readwriteweb.com/archives/sencha_loses_mobile_developer_guru_james_pearce_to.php">looks to be boosting it’s developer community relations</a>.  With the release of &#8216;Timeline&#8217; we believe Facebook is beginning to draw a line between the content and app experience on Facebook and HTML5 will be the technology that Facebook use to become an app distribution channel.</p>

<h3>Open Government = Mobile Web Apps</h3>

<p>Citizen engagement is predicated on citizen access.  Just as CMS platform like Drupal and WordPress revolutionized the way agencies standardize and manage web content, HTML5 based mobile friendly sites and apps that can easily pull content from existing CMS infratructure will revolutionize how agencies large and small achieve their mission.</p>

<h3>HTML5 Challenges the “Native App &amp; Store” Distribution (and Business) Model</h3>

<p>Scale is the primary driver for HTML5 growth.  As enterprises shift mobile from vanity projects to core technology, the 30% &#8216;Tax&#8217; levied to use native iTunes Store and Android Market will become increasingly seen as lost revenue.  Firms will increasingly look to hybrid apps and mobile web apps to grow their marketshare beyond iOS devices and leapfrog over the need to add native Android development to their operational stack.  As companies look to maximize mobile app revenues, they will be increasing motivated to recapture profit lost to pay for access to a delivery channel.</p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/5-html5-predictions-for-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TDG-i becomes Modus Create</title>
		<link>http://moduscreate.com/tdg-i-becomes-modus-create/</link>
		<comments>http://moduscreate.com/tdg-i-becomes-modus-create/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 15:21:27 +0000</pubDate>
		<dc:creator>Jay Garcia</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Modus News]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=584</guid>
		<description><![CDATA[Reston, Virginia, Tuesday, March 29 &#8220;DC tech industry veterans Patrick Sheridan and Jay Garcia are excited to announce their new venture Modus Create, Inc. Modus Create is a digital agency that helps companies excite their customers with platform independent web,...  <br /><a class="read-more" href="http://moduscreate.com/tdg-i-becomes-modus-create/">Read More &#8594;</a>]]></description>
			<content:encoded><![CDATA[<div class="opener">

Reston, Virginia, Tuesday, March 29 &#8220;DC tech industry veterans Patrick Sheridan and Jay Garcia are excited to announce their new venture Modus Create, Inc. Modus Create is a digital agency that helps companies excite their customers with platform independent web, mobile, and tablet applications.

</div>

<p>Sheridan had recently served as the Director of Product Strategy at Three Pillar Global after the 2009 acquisition of CloverLeaf Consulting, a user experience strategy firm he founded in 2005. Sheridan helped grow Three Pillar from 20 to 200 employees globally and deliver noted iPad, iPhone, and Android applications for PBS and Time, Inc.</p>

<p>The meteoric growth of Three Pillar is a testament to the talent of the executive team and dedicated staff and I will draw on that experience and friendships heavily moving forward with Modus Create,â€ said Sheridan. Sheridan has also been recently nominated to participate in the exclusive DC MindShare class of 2011.</p>

<p>Jay Garcia, who founded Frederick Maryland based TDG Innovations in 2006, will serve as the company&#8217;s CTO. A core part of our growth strategy is consulting services, training, and product development based on the Sencha Touch HTML5 framework,â€ said Garcia, who recently authored ExtJS, in Actionâ€ for Manning Press and is currently authoring Sencha Touch, In Action.â€ We are excited to be the premier provider of Sencha consulting on the east coast.</p>

<p>The start of Modus is a very exciting development within the rapidly expanding Sencha Touch ecosystem,â€ said Jeff Hartley, Vice President of Services at Sencha. Jay Garcia and Pat Sheridan are skilled technologists and highly-regarded Sencha community advocates. We believe Modus will show customers directly that HTML5 is the right approach for enterprise mobile applications.â€</p>

<p>Modus Create will focus primarily on mobile apps for media, publishing, and entertainment.</p>

<p>Founded in March 2011, Modus Create provide high end solution design for mobile, tablet, and rich web applications. Modus Labs offers training, workshops, and custom learning engagements to empower their clients. More information is available at www.moduscreate.com</p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/tdg-i-becomes-modus-create/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Animating DataView and GridView records</title>
		<link>http://moduscreate.com/animating-dataview-and-gridview-records/</link>
		<comments>http://moduscreate.com/animating-dataview-and-gridview-records/#comments</comments>
		<pubDate>Wed, 23 Feb 2011 16:08:40 +0000</pubDate>
		<dc:creator>Jay Garcia</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=566</guid>
		<description><![CDATA[Often time as Ext JS developers, we are asked to create GridPanels and DataViews. With those come the tasks of adding and removing records, which is relatively simple. In this article, I&#8217;m going to show you how you can add...  <br /><a class="read-more" href="http://moduscreate.com/animating-dataview-and-gridview-records/">Read More &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>Often time as Ext JS developers, we are asked to create GridPanels and DataViews. With those come the tasks of adding and removing records, which is relatively simple. In this article, I&#8217;m going to show you how you can add some spice to your applications by implementing animations to your GridPanels and DataViews.</p>

<p>Pretend for a moment you have been given an assignment. You are to allow records from a DataView to be moved to an adjacent GridPanel. The rules are as such:</p>

<ul>
    <li>Users must be allowed to migrate records form the left DataView to the right GridPanel</li>
    <li>After records have been moved to the GridPanel, they cannot be migrated back to the DataView. They can only be destroyed.</li>
</ul>

<p><img src="http://moduscreate.com/img/screencasts/2011-02-23_1444.png" alt="" width="528px" /></p>

<p>The question becomes, how can we do this? If we sit down and think about the first task, migrating records from left to right, we must consider the order of operation that must occur.</p>

<ul>
    <li>Get a collection of the selected nodes <em>and</em> records in the DataView</li>
    <li>Animate <strong>out</strong> the row representing the record in the DataView</li>
    <li>Remove the records from the DataView store, all the while capturing a reference to that very record.</li>
    <li>Add the records to the GridPanel store</li>
    <li>Locate the indexes of the newly inserted records in the GridPanel</li>
    <li>Somehow gain a reference to the HTML elements that represent the records in the GridPanel View</li>
    <li>Animate the elements in.</li>
</ul>

<p>Sound like a lot of work? With Ext JS It&#8217;s actually surprisingly easy. Here is the handler for the &#8220;add to grid&#8221; button.</p>

<pre class="prettyprint lang-javascript">&#47;&#47; This is the handler for the &#39;add to grid&#39; button
var addToGrid = function() {
    var selNodes  = dataView.getSelectedNodes(),
        selRecs   = dataView.getRecords(selNodes),
        dvStore   = dataView.store,
        gridStore = gridPanel.store,
        gridView  = gridPanel.view,
        gridRowIdx,
        gridRowEl;

    &#47;&#47; Loop through the selected nodes
    Ext.each(selNodes, function(selectedEl, idx) {
        &#47;&#47; Animate and remove from store after animation
        Ext.get(selectedEl).slideOut(&#39;t&#39;, {
            callback : function() {
                &#47;&#47; remove from DataView store
                var rec = selRecs&#91;idx&#93;;
                dvStore.remove(rec);

                &#47;&#47; Add to grid store
                gridStore.add(rec);
                gridRowIdx = gridStore.indexOf(rec);
                gridRowEl  = gridView.getRow(gridRowIdx);

                &#47;&#47; Animate the newly added row.
                Ext.get(gridRowEl).slideIn(&#39;t&#39;, {
                    callback : function(el) {
                        el.highlight();
                    }
                });
            }
        });
    });
};</pre>

<p>As you can see in the code above, the trick to getting things done immediately after an animation is making use of callbacks, which are methods that are executed <strong>after</strong> something of interest has occurred. In our case, the animations will execute our callback methods to ensure that everything happens in the proper order.</p>

<p>Here is a video of it working:
<video width="320" height="240" src="http://moduscreate.com/img/screencasts/2011-02-23_1456.mp4" controls="controls"><object width="320" height="240" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://moduscreate.com/wp-includes/js/tinymce/plugins/media/moxieplayer.swf" /><param name="flashvars" value="url=/img/screencasts/2011-02-23_1456.mp4&amp;poster=/wp-admin/" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="true" /><embed width="320" height="240" type="application/x-shockwave-flash" src="http://moduscreate.com/wp-includes/js/tinymce/plugins/media/moxieplayer.swf" flashvars="url=/img/screencasts/2011-02-23_1456.mp4&amp;poster=/wp-admin/" allowfullscreen="true" allowscriptaccess="true" /></object>Ouch! your browser does not support HTML5 video! <img src='http://moduscreate.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  you&#8217;ll have to click the <a href="http://moduscreate.com/img/screencasts/2011-02-23_1456.mp4'" name="code" class="sh_javascript" style="margin-bottom: 10px;" href="http://moduscreate.com/img/screencasts/2011-02-23_1504.mp4">this</a> link to view the video.
</video></p>

<p>There you have it. Adding simple animations implemented in DataViews and GridPanels can enhance the feel for our Ext JS applications, helping make a more pleasant experience for your users.</p>

<p>If you want to see the example visit <a href="http://moduscreate.com/examples/566">http://moduscreate.com/examples/566</a>. There you can add/remove records. You can view the page source to see how everything is setup.</p>

<h3>Read more.</h3>

<p>To understand how Animations, data Stores, GridPanels, DataViews, work, check out my book,<a href="http://manning.com/garcia">Ext JS in Action</a>. You can get <strong>40% off</strong> by using coupon code &#8220;extjs40&#8243; at checkout.</p>

<h3>Like what you&#8217;ve read today?</h3>

<p>Please register and leave a comment. The best fuel that drives us to write is involvement with our readers <img src='http://moduscreate.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/animating-dataview-and-gridview-records/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://moduscreate.com/img/screencasts/2011-02-23_1504.mp4" length="729461" type="video/mp4" />
<enclosure url="http://moduscreate.com/img/screencasts/2011-02-23_1456.mp4" length="637988" type="video/mp4" />
		</item>
		<item>
		<title>QuickTip: Prevent Ext JS Buttons from stealing focus</title>
		<link>http://moduscreate.com/quicktip-prevent-ext-js-buttons-from-stealing-focus/</link>
		<comments>http://moduscreate.com/quicktip-prevent-ext-js-buttons-from-stealing-focus/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 20:59:31 +0000</pubDate>
		<dc:creator>Jay Garcia</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=535</guid>
		<description><![CDATA[I&#8217;ve recently been tasked with creating a Touch Screen POS (Point of Sale) payment module, which requires users to enter values via button press. The workflow is simple. Focus a field, enter data. Perform that loop until you&#8217;re done, then...  <br /><a class="read-more" href="http://moduscreate.com/quicktip-prevent-ext-js-buttons-from-stealing-focus/">Read More &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently been tasked with creating a Touch Screen POS (Point of Sale) payment module, which requires users to enter values via button press.  The workflow is simple.  Focus a field, enter data.  Perform that loop until you&#8217;re done, then press the confirmation button.</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The rub with this requirement is that buttons automatically <strong>steal</strong> focus.  One approach is to manually try to manage what input field was last focused, and will have to create all types of spaghetti code just to overcome this focus issue.</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;A better approach is to prevent the problem from happening in the first place.  This means that we&#8217;ll have to somehow intercept the mousedown and mouseup events.  In order to do <em>that</em>, you will have to override two methods in the ExtJS Button class.</p>

<p>If you want to check this out on your own, I&#8217;ve attached code below. The easiest thing to do is to drop it in any Ext JS page via firebug.
<script src="https://gist.github.com/1528095.js?file=gistfile1.js"></script>
Here is quick video demonstrating the override in action.</p>

<p><video src="http://moduscreate.com/img/screencasts/2011-02-09_1513.mp4" controls='controls'  autoplay="false">Ouch! your browser does not support HTML5 video! <img src='http://moduscreate.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />   you&#8217;ll have to click the <a href='http://moduscreate.com/img/screencasts/2011-02-09_1513.mp4' >this</a> link to view the video.
</video></p>

<p>In that video, we can see that even when mashing on the keyboard and button with the overrides, the focus is retained in the text area.  But, you&#8217;re probably interested in seeing a real-world use-case.</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;Below is a video that demonstrates a very early working copy of module I&#8217;m developing, that utilizes the overrides.</p>

<p><video src="http://moduscreate.com/img/screencasts/2011-02-09_1521.mp4" controls='controls' utoplay="false">Ouch! your browser does not support HTML5 video! <img src='http://moduscreate.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />   you&#8217;ll have to click the <a href='http://moduscreate.com/img/screencasts/2011-02-09_1513.mp4' >this</a> link to view the video.
</video></p>

<p>In the video above, I am pressing number keys along with clicking on instances of Ext.Button to demonstrate the consistent focus of the input fields on the screen.</p>

<p><br /></p>

<h2  style="font-size: 1.25em; margin-top: 5px;">The big picture</h2>

<p>To solve this application wide, you <em>could</em> create a plugin or a mixin, but I think the best approach is to create an override that injects a new behavior for all Button instances, allowing you to simply set a flag to turn on the behavior with a simple config property.</p>

<p>Below is the code that you can use in your application today to include this behavior.</p>

<script src="https://gist.github.com/1528101.js?file=gistfile1.js"></script>

<h1 style="font-size: 1.25em; margin-top: 5px;">Read more.</h1>

<p>To understand how inline extensions work, check out our article titled &#8220;<a href="http://moduscreate.com/202/how-to-extend-and-override-without-creating-an-extension-or-override">how to extend and override with out creating an extension or override</a>&#8220;.</p>

<h1 style="font-size: 1.25em; margin-top: 5px;">Like what you&#8217;ve read today?</h1>

<p>Please register and leave a comment.  The best fuel that drives us to write is  involvement with our readers <img src='http://moduscreate.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<h1 style="font-size: 1.25em; margin-top: 5px;">Looking for Ext JS or Sencha Touch professional services?</h1>

<p>TDG-i specializes in high-end software development with Ext JS and Sencha Touch.  To learn more about who we are and what we do, check out our <a href="/pro-services">professional services</a> and <a href="/about">about-us</a> pages.</p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/quicktip-prevent-ext-js-buttons-from-stealing-focus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://moduscreate.com/img/screencasts/2011-02-09_1513.mp4" length="296854" type="video/mp4" />
<enclosure url="http://moduscreate.com/img/screencasts/2011-02-09_1521.mp4" length="427411" type="video/mp4" />
		</item>
		<item>
		<title>Abstract class pattern extended by Saki</title>
		<link>http://moduscreate.com/abstract-class-pattern-extended-by-saki/</link>
		<comments>http://moduscreate.com/abstract-class-pattern-extended-by-saki/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 15:24:47 +0000</pubDate>
		<dc:creator>Jay Garcia</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=465</guid>
		<description><![CDATA[Jozef (Saki) Sakalos, an avid Ext JS supporter and good friend of Jay Garcia has posted an excellent article on how to extend the Abstract Class pattern that has been published via our &#8220;Abstract class pattern&#8221; screencast and Jay&#8217;s book,...  <br /><a class="read-more" href="http://moduscreate.com/abstract-class-pattern-extended-by-saki/">Read More &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sencha.com/forum/member.php?2178-jsakalos">Jozef (Saki) Sakalos</a>, an avid <a href="http://sencha.com/products/extjs" target="_blank">Ext JS</a> supporter and good friend of Jay Garcia has posted an excellent article on how to extend the Abstract Class pattern that has been published via our <a href="http://moduscreate.com/364/abstract-classes-with-ext-js">&#8220;Abstract class pattern&#8221; screencast</a> and Jay&#8217;s book, <a href="http://manning.com/extjsinaction">Ext JS in action</a>.</p>

<p>In his <a href="http://blog.extjs.eu/" target="_blank">blog</a>, Saki has extended upon this pattern, adding variations to your factory methods, affording you greater flexibility when creating your abstract classes.</p>

<p>Below is an excerpt of code that demonstrates a variant to our Abstract pattern as been detailed in his <a href="http://www.sencha.com/forum/member.php?2178-jsakalos" target="_blank">blog post</a>.
<a href="http://blog.extjs.eu/know-how/factory-functions-in-ext-extensions/"><img style="border: 1px solid #EFEFEF;" src="http://moduscreate.com/img/screencasts/2010-11-29_1020.png" /></a></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>To read the article, click : <a href="http://blog.extjs.eu/know-how/factory-functions-in-ext-extensions/" target="_blank">http://blog.extjs.eu/know-how/factory-functions-in-ext-extensions</a>&#8220;</p>

<p>&nbsp;</p>

<h3>
Thank you Saki for all of the work that you do, further educating the Ext JS community!
</h3>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/abstract-class-pattern-extended-by-saki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing TDGi.WindowBlind extension</title>
		<link>http://moduscreate.com/introducing-tdgi-windowblind-extension/</link>
		<comments>http://moduscreate.com/introducing-tdgi-windowblind-extension/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 20:26:33 +0000</pubDate>
		<dc:creator>Jay Garcia</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=443</guid>
		<description><![CDATA[In 2008, Sean McDaniel created a Blind solution for Ext JS 2.x and released it for the public to use. Springboarding off of his idea, we figured why not port over the blind to the framework for Ext JS 3.x....  <br /><a class="read-more" href="http://moduscreate.com/introducing-tdgi-windowblind-extension/">Read More &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>In 2008, <a href="http://mcdconsultingllc.com/blinds">Sean McDaniel</a> created a Blind solution for Ext JS 2.x and released it for the public to use.  Springboarding off of his idea, we figured why not port over the blind to the framework for <a href="http://sencha.com/products/extjs">Ext JS 3.x</a>.  Being that <a href="http://www.linkedin.com/in/tdginnovations">Jay Garcia</a> will be demonstrating this at <a href="http://sencha.com/conference">SenchaCon 2010</a>, we figured why not release it beforehand.</p>

<h3> Abstract </h3>

<p>The OS X window blind is a very well known user interface (see below).  Being that OS X is a &#8220;Window management system&#8221;, everything you interact with is contained by some window.  When the application requires input in a modal fashion, designers are faced with two paradigms: Modal popup dialogue (typically found on MS Windows), or a blind.
<br /><br /></p>

<p>Below is an example of a Blind used in the via the save menu of Safari:
<img src="http://moduscreate.com/img/screencasts/2010-11-11_1431.png" style="border: 1px solid #AEAEAE; margin: 10px; padding: 10px;"/></p>

<p>Firefox displays typical alert/prompt dialogues using the blinds.
<img src="http://moduscreate.com/img/screencasts/2010-11-11_1456.png" style="border: 1px solid #AEAEAE; margin: 10px; padding: 10px;" /></p>

<h3>Enter WindowBlinds for Ext JS 3.x </h3>

<p><a href="http://sencha.com/products/extjs">Ext JS 3.x</a>, being a powerful UI framework for the web, mimics a lot of Windows Vista and Windows 7.  That said, we think that there is a lot of room for this type of UI widget inside of our Ext JS applications.</p>

<p>Here&#8217;s a screenshot:
<img src="http://moduscreate.com/img/screencasts/2010-11-11_1519.png" style="border: 1px solid #AEAEAE; margin: 10px; padding: 10px;" /></p>

<h3>Download information</h3>

<p>Github: <a href="https://github.com/tdgi/Ext.ux.TDGi.WindowBlind">here</a> | Online example: <a href="http://moduscreate.com/js/examples/ext3/extensions/windowblind/">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/introducing-tdgi-windowblind-extension/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 21/24 queries in 0.020 seconds using disk: basic

Served from: www.tdg-i.com @ 2012-05-18 00:12:19 -->
