<?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</title>
	<atom:link href="http://moduscreate.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://moduscreate.com</link>
	<description>HTML5 Application Development &#38; Training</description>
	<lastBuildDate>Mon, 20 May 2013 03:07:55 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Get Up And Running With Grunt.js</title>
		<link>http://moduscreate.com/get-up-and-running-with-grunt-js/</link>
		<comments>http://moduscreate.com/get-up-and-running-with-grunt-js/#comments</comments>
		<pubDate>Fri, 17 May 2013 18:40:55 +0000</pubDate>
		<dc:creator>Modus Create</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=5033</guid>
		<description><![CDATA[If you&#8217;re anything like myself, you&#8217;ve probably had interest in trying to utilize Grunt.js in your projects. Maybe you&#8217;ve at least heard of it, or have heard of people using it in their workflows. Unfortunately, the barrier for entry seemed a little bit high for me. Not necessarily technically, but I was confused on how [...]]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;re anything like myself, you&#8217;ve probably had interest in trying to utilize <a href="http://gruntjs.com/" rel="nofollow" >Grunt.js</a> in your projects. Maybe you&#8217;ve at least heard of it, or have heard of people using it in their workflows. Unfortunately, the barrier for entry seemed a little bit high for me. Not necessarily technically, but I was confused on how it would actually benefit my workflow.</p>
<p>I&#8217;ve been using tools like SASS and Compass for a while now, and recently started to dive into <a href="https://github.com/bower/bower" rel="nofollow" >bower</a> for doing front-end package management. Let&#8217;s take a look at how to integrate Grunt in a very simple workflow.</p>
<p><em>Be forwarned, I&#8217;m quite new to Grunt in general. Some of the things that are done below can and probably should be optimized. I&#8217;d love to hear your feedback!</em></p>
<h1>Why Grunt?</h1>
<p>Honest answer? Because it seems like everyone under the sun is using it for doing anything from simple workflow enhancements, to complete production build systems. There&#8217;s an extremely active plugin development community, and people involved in the project seem more than willing to help out in answering your questions. There may be other Javascript task runner solutions, but I don&#8217;t know of any at the moment that are worth taking a look at.</p>
<h1>Our goal</h1>
<p>Let&#8217;s setup grunt to do the following:</p>
<ul>
<li>monitor our project for changes to SASS files, and use Compass to compile them into CSS.</li>
<li>monitor our project for changes to HTML and JS files, and use LiveReload to refresh our page.</li>
<li>look into how we can use Grunt to minify and concatenate our Javascript using uglify JS.</li>
</ul>
<h1>The basic grunt setup</h1>
<p>Grunt has some basic documentation on their website about setting up your project. First and foremost, Grunt uses Node.js and is installed via npm &#8211; node&#8217;s package manager. Once you&#8217;ve got those installed, you&#8217;re ready to install the Grunt CLI globally.</p>
<p><code>npm install -g grunt-cli</code></p>
<p>If we were to run a <code>grunt</code> in our project directory, we&#8217;d get a message something like this:</p>
<p><em>A valid Gruntfile could not be found. Please see the getting started guide for more information on how to configure grunt: http://gruntjs.com/getting-started Fatal error: Unable to find Gruntfile.</em></p>
<p>We expected that. Let&#8217;s create a <code>package.json</code> and a <code>Gruntfile.js</code> in the root of our project.</p>
<p><code>touch package.json Gruntfile.js</code></p>
<h1>package.json</h1>
<p>Here are the contents of my very basic package.json file:</p>
<pre class="prettyprint">{
  "name": "my-project",
  "version": "1.0.0",
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-compass": "~0.2.0",
    "grunt-contrib-watch": "~0.4.3",
    "grunt-contrib-uglify": "~0.2.0",
    "matchdep": "~0.1.2"
  }
}
</pre>
<p>So what exactly does this file do? This tells NPM which dependencies we want to install for our project. The advantages of this are fairly simple. Anyone who collaborates on our project can always be up to date on dependencies and keep our environments in sync. I won&#8217;t go into too much detail on these right now. There are plenty of other properties you can place in this file. You can also run <code>npm init</code> to create a boilerplate package file.</p>
<p>Run <code>npm install</code>, and NPM will go fetch these for us and place them in a <code>node_modules</code> folder.</p>
<ul>
<li><a href="https://github.com/gruntjs/grunt-contrib-compass" rel="nofollow" >grunt-contrib-compass</a></li>
<li><a href="https://github.com/gruntjs/grunt-contrib-watch" rel="nofollow" >grunt-contrib-watch</a></li>
<li><a href="https://npmjs.org/package/grunt-contrib-uglify" rel="nofollow" >grunt-contrib-uglify</a></li>
</ul>
<p>Fantastic! We&#8217;ve got packages! Unfortunately they don&#8217;t do anything yet, because we haven&#8217;t told Grunt what to do with them.</p>
<h1>Gruntfile.js</h1>
<p>This is where the magic begins to happen. We&#8217;ll open up by declaring the &#8220;wrapper&#8221; function. All Grunt related tasks happen inside of this function.</p>
<pre class="prettyprint">module.exports = function(grunt) {
  // Do grunt-related things in here
};
</pre>
<p>Let&#8217;s get started by have the Compass plugin start watching for changes to our SASS files.</p>
<pre class="prettyprint">module.exports = function(grunt) {

  // load all grunt tasks
  require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

  grunt.initConfig({

    compass: {
      dev: {
        options: {
          config: 'config.rb',
          force: true
        }
      }
    }

  });
}
</pre>
<p>First, we&#8217;re loading all of our NPM tasks that we specified in our <code>package.json</code>. We&#8217;re using the <code>matchdep</code> package to help us do this by iterating over the <em>devDepencies</em> in our json file.</p>
<p>We begin configuring your tasks inside the <code>grunt.initConfig({})</code> block. You&#8217;ll see that we define a compass task, and we&#8217;re telling Grunt to just load the settings from our compass configuration file &#8211; <code>config.rb</code>.</p>
<p>You can specify multiple ways to run compass by adding another object. For example, you could have a &#8220;production&#8221; object in which you would output compressed CSS, or output the CSS to a different folder, etc.</p>
<p>Let&#8217;see what happens when we run <code>grunt</code>!</p>
<pre><code>Warning: Task "default" not found. Use --force to continue.
Aborted due to warnings.
</code></pre>
<p>Grunt looks for a default task called &#8220;default&#8221;, which we haven&#8217;t specified. Let&#8217;s go ahead and do that now using the <code>grunt.registerTask()</code> function.</p>
<p>This function takes the name of the task you&#8217;d like to register, along with an array (or single string) of tasks you want run. Let&#8217;s register the default task to run compass and compile our SASS. Add the following after the grunt.initConfig block.</p>
<pre class="prettyprint">grunt.registerTask('default', 'compass');
</pre>
<p>When we run <code>grunt</code> again, you&#8217;ll see our SASS is compiling!</p>
<pre class="prettyprint">Running "compass:dev" (compass) task
unchanged sass/app.scss
unchanged sass/normalize.scss
</pre>
<p>Sweet deal! However, this isn&#8217;t really all that useful. We could have gotten the same results by just running a simple <code>compass compile</code>. Let&#8217;s keep pushing forward and add a <code>watch</code> task that will monitor changes very similarly to <code>compass watch</code>, but that we can extend to a variety of different plugins.</p>
<p>Go ahead and add a new object that defines our <code>watch</code> task:</p>
<pre class="prettyprint">module.exports = function(grunt) {

  // load all grunt tasks
  require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

  grunt.initConfig({

    compass: {
      dev: {
        options: {
          config: 'config.rb',
          force: true
        }
      }
    },

    watch: {
      sass: {
        files: ['assets/sass/**/*.scss'],
        tasks: ['compass:dev']
      },
      /* watch and see if our javascript files change, or new packages are installed */
      js: {
        files: ['assets/js/main.js', 'components/**/*.js'],
        tasks: ['uglify']
      },
      /* watch our files for change, reload */
      livereload: {
        files: ['*.html', 'assets/css/*.css', 'assets/images/*', 'assets/js/{main.min.js, plugins.min.js}'],
        options: {
          livereload: true
        }
      },
    }

  });

  grunt.registerTask('default', 'watch');

}
</pre>
<p>You&#8217;ll see that we&#8217;ve added a list of files types for Grunt to look for. We&#8217;ve also defined the tasks to run &#8211; one for now, but this can be an array of many tasks &#8211; when a file has been changed. We&#8217;ve modified the default task to run <code>watch</code> instead of <code>compass</code>. Additionally, we&#8217;ve added LiveReload functionality with a single line of code.</p>
<p><strong>Note</strong>: You will need to install the LiveReload extension for this to easily work without having to include another file in your project. <a href="https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei?hl=en" rel="nofollow" >Find the extension for Chrome here.</a></p>
<p>Let&#8217;s re-run <code>grunt</code> and see what we have now.</p>
<pre class="prettyprint">Running "watch" task
Waiting...
</pre>
<p>Grunt waits patiently for us to change a file, and when we do, we get successful compilation and a browser reload! Pretty cool.</p>
<h1>Only the surface</h1>
<p>I&#8217;ve only scratched the very surface of what&#8217;s possible with Grunt. Check out the <a href="http://gruntjs.com/plugins" rel="nofollow" >vast array of Grunt plguins</a> and start doing everything from compressing javascript to running Jasmine unit tests through Phantom JS.</p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/get-up-and-running-with-grunt-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wuberizer &#8211; A Web Audio API Experiment</title>
		<link>http://moduscreate.com/wuberizer-a-web-audio-api-experiment/</link>
		<comments>http://moduscreate.com/wuberizer-a-web-audio-api-experiment/#comments</comments>
		<pubDate>Thu, 16 May 2013 02:36:45 +0000</pubDate>
		<dc:creator>Stan Bershadskiy</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Sencha Touch]]></category>
		<category><![CDATA[web-audio]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=4989</guid>
		<description><![CDATA[We at Modus Create are always experimenting with emerging HTML5 Technologies. Recently we began an internal effort to split in groups and research technologies, frameworks or methodologies that we found interesting and present them to the company. The first group effort completed by Stan Bershadskiy, Tyler Knappe and Alex Lazar resulted in an app called [...]]]></description>
				<content:encoded><![CDATA[<p>We at Modus Create are always experimenting with emerging HTML5 Technologies. Recently we began an internal effort to split in groups and research technologies, frameworks or methodologies that we found interesting and present them to the company. The first group effort completed by Stan Bershadskiy, Tyler Knappe and Alex Lazar resulted in an app called Wuberizer.</p>
<h1>Overview</h1>
<p>Wuberizer is an audio synthesizer and step sequencer in one. It works off a 16 x 16 cell grid. Each cell results in a different tone at time. You can modify the frequency, adjust the filters, and change the oscillator waveform in real time, as well as set the speed of the sequencer in BPM (beats per minute). Wuberizer also allows you to export your creations into an audio file (WAV).</p>
<h1>Background</h1>
<p>The app was inspired by a musical instrument released by Yamaha in 2005 called the <a href="http://tenori-onusa.com/" rel="nofollow" >Tenori-on</a>.</p>
<p><iframe width="480" height="360" src="http://www.youtube.com/embed/pU_rG0w0bsA?rel=0" frameborder="0" allowfullscreen></iframe></p>
<h1>Technology</h1>
<p><strong>Web Audio API</strong></p>
<p>The Web Audio API allows you to generate and manipulate sounds in a variety of manners. This includes the creation of sound via oscillators which are manipulated via changes in frequency, applying new filters and changing the waveform, among many others. While Wuberizer focuses on mainly the generation of sounds, the Web Audio API also allows you to manipulate existing, prebuilt sound streams to do a variety of things like build audio players, or play sounds in games.</p>
<p><strong>Canvas</strong></p>
<p>To render the 16&#215;16 grid we leveraged the HTML5 Canvas element. The canvas element is used to render shapes, images, graphs, or text dynamically. The element exposes a JavaScript API that allows for drawing paths, basic shapes, images and text. We leveraged the canvas with the help of <a href="http://createjs.com/#!/EaselJS" rel="nofollow" >EaselJS</a>. EaselJS is a fantastic abstraction layer over the Canvas element. It provides helper classes for drawing, buffered rendering, user interaction support and many more.</p>
<p><strong>Sencha Touch 2.2</strong></p>
<p>The application itself, as well as the surrounding UI is written in <a href="http://sencha.com/products/touch/" rel="nofollow" >Sencha Touch 2.2</a>. We followed the MVC paradigm and leveraged the new Pictos icon font.</p>
<h1>More Info</h1>
<p>Here you can see our presentation deck:</p>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/21226416" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen> </iframe></p>
<p>You can also check out the code itself here: <a href="https://github.com/ModusCreateOrg/web-audio-api" rel="nofollow" >GitHub Repo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/wuberizer-a-web-audio-api-experiment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook Mobile DevCon 2013</title>
		<link>http://moduscreate.com/facebook-mobile-devcon-2013/</link>
		<comments>http://moduscreate.com/facebook-mobile-devcon-2013/#comments</comments>
		<pubDate>Fri, 19 Apr 2013 19:36:53 +0000</pubDate>
		<dc:creator>Stan Bershadskiy</dc:creator>
				<category><![CDATA[Industry]]></category>
		<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mobile Apps]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=4903</guid>
		<description><![CDATA[Yesterday, I had the pleasure of attending the Facebook Mobile DevCon in New York City. This event promoted Facebook&#8217;s recent Native App SDK releases for native devices. The overall themes were to promote discovery and increase user engagement of your app. Here are some takeaways: Facebook wants to be the one and only social platform [...]]]></description>
				<content:encoded><![CDATA[<p>Yesterday, I had the pleasure of attending the Facebook Mobile DevCon in New York City. This event promoted Facebook&#8217;s recent Native App SDK releases for native devices. The overall themes were to promote discovery and increase user engagement of your app.</p>
<p><a href="http://moduscreate.com/wp-content/uploads/2013/04/facebook-devcon-badge.jpg"><img src="http://moduscreate.com/wp-content/uploads/2013/04/facebook-devcon-badge-199x300.jpg" alt="facebook-devcon-badge" width="199" height="300" class="aligncenter size-medium wp-image-4907" /></a></p>
<p>Here are some takeaways:</p>
<h1>Facebook wants to be the one and only social platform</h1>
<p>There are over one billion Facebook users and Facebook&#8217;s goal is to help you reach all of them. Facebook launched 3 new tools to support this, currently inside the new iOS SDK (v3.5):</p>
<p><strong>Open Graph Mobile API</strong></p>
<p>Facebook is allowing developers to leverage their cloud to create and host Open Graph Objects. Previously this required web servers to host the tags. This allows for richer and structured content in the news feed.</p>
<p><strong>Native Login Dialog</strong></p>
<p>This serves to be a replacement for the Native iOS Login dialog by leveraging the installed Facebook App. This allows for developers to display a customized and more performant Facebook login screen. The developer can now customize the text displayed on the login, as well as have more control over permission and privacy requests.</p>
<p><strong>Native Share Dialog</strong></p>
<p>Facebook is getting users to move away from the simple text-based sharing to rich context aware meaningful news feed items.</p>
<p>The ultimate goal with these new features is to promote app discovery and increase user engagement with the given app. Often during the talks the use case of a cross platform game (Candy Crush) was used. In this scenario, an iPhone user can acquire some achievement, share it on his news feed. Then his Facebook friend, on an Android will tap the news feed item and it will open the game (or the Google Play store if the app is not installed).</p>
<h1>Notable Sessions</h1>
<p><strong>Facebook iOS SDK</strong></p>
<p>This talk covered the new SDK release that includes the Native Login, Share Dialog (iOS only for now), Friend and Places Tagging, App Graph. The result is to create more engaging stories with much less effort (read: less code).</p>
<blockquote>
<p>Beautiful Stories > Better Engagement > Discovery</p>
</blockquote>
<p><strong>Integrating Games with Facebook</strong></p>
<p>This talk discussed how to leverage all the things you can do with the new SDK to promote your game. Some interesting facts from the talk:</p>
<ul>
<li>32% of time spent on Mobile Devices is playing Games</li>
<li>18% of time is spent on Facebook</li>
<li>72% of the Top 400 Grossing iOS Apps are Games</li>
<li>78% of the Top 400 Grossing Android Apps are Games</li>
<li>~150 New Games are released on the App Store Monthly</li>
</ul>
<p>Facebook is looking to solve the issue of promoting the game with things like Game Requests, Sharing, Scores &amp; Achievements (Scores API) and Custom Open Graph Actions. In my opinion, Facebook wants to be the Mobile Xbox Live.</p>
<p><strong>Building Facebook for iOS</strong></p>
<p>This talk focused on Facebook&#8217;s development processes in their Native iOS app. It opened with the reasons for moving to native from HTML5 including: performance problems, lack of multithreading, memory management issues, lack of debugging tools. A large part of the reason for this, admittedly, was that they began the app early; before better practices were defined and frameworks like Sencha Touch existed.</p>
<p>For the Native App Facebook adopted Mozilla&#8217;s release model for Firefox with their own twist. They try to ship an update every X weeks and include a stabilization period as well as a &#8220;soak&#8221; period. Furthermore, all features are built with the ability to be disabled (either compile-time or runtime). They use a continuous delivery process with code reviews, automated unit tests, code validation, and various other tools to assure a high level code quality.</p>
<h1>Some Pictures from the Event</h1>
<p><a href="http://moduscreate.com/wp-content/uploads/2013/04/IMG_0584.jpg"><img src="http://moduscreate.com/wp-content/uploads/2013/04/IMG_0584-262x350.jpg" alt="IMG_0584" width="262" height="350" class="aligncenter size-large wp-image-4919" /></a></p>
<p><a href="http://moduscreate.com/wp-content/uploads/2013/04/IMG_0588.jpg"><img src="http://moduscreate.com/wp-content/uploads/2013/04/IMG_0588-225x300.jpg" alt="IMG_0588" width="225" height="300" class="aligncenter size-medium wp-image-4921" /></a></p>
<p><a href="http://moduscreate.com/wp-content/uploads/2013/04/IMG_0596.jpg"><img src="http://moduscreate.com/wp-content/uploads/2013/04/IMG_0596-300x225.jpg" alt="IMG_0596" width="300" height="225" class="aligncenter size-medium wp-image-4922" /></a></p>
<p><a href="http://moduscreate.com/wp-content/uploads/2013/04/IMG_0598.jpg"><img src="http://moduscreate.com/wp-content/uploads/2013/04/IMG_0598-225x300.jpg" alt="IMG_0598" width="225" height="300" class="aligncenter size-medium wp-image-4923" /></a></p>
<p><a href="http://moduscreate.com/wp-content/uploads/2013/04/IMG_0601.jpg"><img src="http://moduscreate.com/wp-content/uploads/2013/04/IMG_0601-225x300.jpg" alt="IMG_0601" width="225" height="300" class="aligncenter size-medium wp-image-4924" /></a></p>
<p><a href="http://moduscreate.com/wp-content/uploads/2013/04/IMG_0602.jpg"><img src="http://moduscreate.com/wp-content/uploads/2013/04/IMG_0602-225x300.jpg" alt="IMG_0602" width="225" height="300" class="aligncenter size-medium wp-image-4925" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/facebook-mobile-devcon-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bootstrapping and Theming Your App with Sencha Touch 2.2.0</title>
		<link>http://moduscreate.com/bootstrapping-and-theming-your-app-with-sencha-touch-2-2-0/</link>
		<comments>http://moduscreate.com/bootstrapping-and-theming-your-app-with-sencha-touch-2-2-0/#comments</comments>
		<pubDate>Tue, 16 Apr 2013 19:15:43 +0000</pubDate>
		<dc:creator>Dave Ackerman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=4806</guid>
		<description><![CDATA[Sencha has just released the much anticipated Sencha Touch 2.2.0. Alongside a number of significant underlying framework changes, there are also significant changes in the way that you bootstrap new applications using Sencha Cmd v3.1.1.270 (the latest as of this writing). Sencha has also modified the way that you modify and include SASS files to [...]]]></description>
				<content:encoded><![CDATA[<p>Sencha has just released the much anticipated <a href="http://www.sencha.com/blog/hello-sencha-touch-2-2/" rel="nofollow" >Sencha Touch 2.2.0</a>. Alongside a number of significant underlying framework changes, there are also significant changes in the way that you bootstrap new applications using Sencha Cmd <code>v3.1.1.270</code> (the latest as of this writing). Sencha has also modified the way that you modify and include SASS files to be in line with the new ExtJS 4.2 release &#8211; with some varying pieces.</p>
<p>I&#8217;m going to be going through some of the basic steps, including the new theming system. The following was done on a Mac using OSX 10.8 &#8211; your mileage may vary!</p>
<p>Sencha has released a fairly comprehensive guide for setting up an ExtJS project that you can <a href="http://docs.sencha.com/extjs/4.2.0/#!/guide/theming" rel="nofollow" >find here</a>. There is also a new barebones &#8220;bootstrapping&#8221; guide for Sencha Touch 2.2 you can <a href="http://docs.sencha.com/touch/2.2.0/#!/guide/getting_started" rel="nofollow" >find here</a>. We&#8217;re going to be following both of these with some slight tweaks along the way.</p>
<h4>Download the SDK and Sencha Cmd</h4>
<p>Follow <a href="http://www.sencha.com/forum/announcement.php?f=91&amp;a=36" rel="nofollow" >this link</a> and download the Sencha Touch SDK, and the newest version of Sencha Cmd. Once installed, you&#8217;ll know you have a proper installation if you can type the <code>sencha</code> command into your shell and return something like this:</p>
<p>Unzip the framework into any directory you&#8217;d like. We&#8217;ll be referencing the path later on.</p>
<p><img src="http://dl.dropbox.com/u/68704/Screenshots/0e~c.png" alt="Sencha Cmd installation" /></p>
<p>Most OS X users use BASH (the default) shell, but I use ZSH. Sencha Cmd currently only updates your BASH resource file <code>~/.bashrc</code>, but being that I use ZSH, i had to manually update my shell&#8217;s resource file manually <code>~/.zshrc</code>. In any case, it&#8217;s always best to ensure that your <code>$PATH</code> variable is set up properly after installing Sencha Cmd. Here&#8217;s what my <code>$PATH</code> variable looks like.</p>
<p><code>export PATH=$PATH:/Users/dave/bin/Sencha/Cmd/3.1.1.270: ...</code></p>
<h4>Generate your workspace</h4>
<p>Sencha Cmd has a new concept of workspaces. A workspace is simply a place where multiple Sencha Touch or ExtJS apps can live, with their appropriate source folders being there as well.</p>
<p>I&#8217;m going to create a Touch specific workspace. Generate your workspace using the following.</p>
<pre class="prettyprint">sencha -sdk ./touch-2.2.0 generate workspace ./touch-workspace</pre>
<p>This will create a <code>touch-workspace</code> folder, and copy the Sencha Touch SDK into that folder. You should have a file structure similar to this at this point:</p>
<p><img src="http://dl.dropbox.com/u/68704/Screenshots/rc1c.png" alt="touch workspace" /></p>
<h4>Generate your app</h4>
<p>This step hasn&#8217;t changed significantly from previous version of Sencha Touch/Cmd. Run the following to bootstrap your app inside your workspace.</p>
<pre class="prettyprint">sencha -sdk touch-2.2.0 generate app MyNewApp ./my-app
</pre>
<p><code>-sdk</code> is referring to the path to your Touch 2 SDK folder. The last parameter is the path for your generated app. If you don&#8217;t have this folder already created, Cmd will create it for you.</p>
<h4>Perform an initial build</h4>
<p>In your shell, change your current working directory to your <code>my-app</code> directory and create a build via the following command:</p>
<pre class="prettyprint">sencha app build
</pre>
<p>This will generate a <code>build</code> folder in your workspace. Inside it you should see a folder with the name of your app. Inside that there should be a production folder which contains production versions of your code, minified JS, and minified CSS.</p>
<p><img src="http://dl.dropbox.com/u/68704/Screenshots/~k~c.png" alt="build folder structure" /></p>
<h3>Generate your custom theme</h3>
<p>Sencha Touch 2.2 ships with an all new base-theme. This base-theme is designed as the absolute bare minimum to get your app up and running, and contains no styling beyond what is required for making the framework operate. If any of you out there have previous experience theming Sencha Touch apps, this should come as a huge step in right direction. No longer will we have to override existing styles with <code>!important</code>. Generating your SASS for your apps should be more trivial.</p>
<p>To use the new base theme with your application, open the <code>my-app/resources/sass/app.scss</code> file. This should have been auto generated for you with Sencha Cmd.</p>
<p>Replace the existing imports:</p>
<pre class="prettyprint">@import 'sencha-touch/default';
@import 'sencha-touch/default/all';
</pre>
<p>with:</p>
<pre class="prettyprint">@import 'sencha-touch/base';
@import 'sencha-touch/base/all';
</pre>
<p>Change to your sass directory and start watching for changes.</p>
<pre class="prettyprint">$ cd my-app/resources/sass
$ compass watch
</pre>
<p>Compass should compile. If you are having issues, make sure you&#8217;re running the <code>compass watch</code> command from the directory that contains the <code>config.rb</code> (the Compass configuration file). <img src="http://moduscreate.com/wp-content/uploads/2013/04/base-theme.png" alt="touch base theme" width="742" height="716" class="size-full wp-image-4842" /> The Sencha Base theme on the left, versus the standard theme on the right.</p>
<h4>Start customizing</h4>
<p>As before, all of the SASS variables exposed by the Touch Framework are still available, but many of them may not act as expected due to the way that the base theme is implemented. The base-theme is fantastic for experienced developers who are familiar with the Sencha Touch DOM structure, but is also a step in the right direction for newcomers that were once scared away by the amount of DOM output that the Touch framework generates.</p>
<p>For most of my projects, I like to start off with individual SASS files for each component. Take buttons for example &#8211; I&#8217;d create an <code>include</code> directory under the <code>sass</code> directory, and then create a <code>_buttons.scss</code> file that would be importeted into the root <code>app.scss</code> file.</p>
<p>Here&#8217;s an example of my <code>app.scss</code>:</p>
<pre class="prettyprint">/* you would set your SASS variables here. many will have no effect on the base theme */
// $button-height: 40px;

/* import the sencha defaults */
@import 'sencha-touch/base';
@import 'sencha-touch/base/all';

/* our custom imports */
@import 'include/buttons';

/* examples of other, structured styling */
// @import 'include/tab';
// @import 'include/form';
// @import 'include/panel';
// @import 'include/panel';

/* other custom css */
</pre>
<h4>Styling a component</h4>
<p>As mentioned in the Theming article at the top of this post, all Sencha Touch components always have a baseCls that matches the name of the component. Let&#8217;s style a button.</p>
<p>I&#8217;ve added a couple of buttons to the sample application that is generated by Cmd by modifying the <code>items[]</code> array to the following:</p>
<pre class="prettyprint">items : [
    {
        docked : 'top',
        xtype  : 'titlebar',
        title  : 'Welcome to Sencha Touch 2',
    },
    {
        xtype : 'button',
        cls   : 'modus-button default',
        text  : 'Default Button'
    },
    {
        xtype : 'button',
        cls   : 'modus-button primary',
        text  : 'Success Button'
    },
    {
        xtype : 'button',
        cls   : 'modus-button info',
        text  : 'Info Button'
    },
    {
        xtype : 'button',
        cls   : 'modus-button danger',
        text  : 'Danger Button'
    }
]
</pre>
<p>You can see that I&#8217;ve chosen to go with the <code>cls</code> definition versus defining a new <code>ui</code> using the <a href="http://docs-devel.sencha.com/touch/2.2.0/#!/api/Ext.Button-css_mixin-sencha-button-ui" rel="nofollow" >sencha-button-ui</a> mixin. I&#8217;ve found that this will give us greater flexibility using our own classes that we create. Compilation seems speedier as well when you avoid using heavy mixins. We&#8217;ll create lightweight classes that reduce code redundancy.</p>
<p>Here&#8217;s what I&#8217;ve got for the <code>_buttons.scss</code> file:</p>
<pre class="prettyprint">@mixin modus-button($color) {
  @include transition(all .25s ease);
  @include border-radius(6px);
  margin-bottom: 15px;
  font-size: 15px;
  background: $color;
  border: none;
  color: white;
  text-decoration: none;
  .x-button-label {
    padding: 10px 0;
  }
  &#038;.x-button-pressing {
    background: darken($color, 10);
  }
}

.default {
  @include modus-button($baseColor);
}

.primary {
  @include modus-button($primaryColor);
}

.info {
  @include modus-button(#2c97de);
}

.danger {
  @include modus-button(#e94b35);
}
</pre>
<p>Simple, right? The output is fairly dramatic based on the amount of code we had to write.</p>
<p><img src="http://dl.dropbox.com/u/68704/Screenshots/_1ls.png" alt="st buttons" /></p>
<p>Buttons are pretty simple. What if we wanted to do something like the tabbed control at the bottom, or the titlebar on the top? Let&#8217;s start by creating a <code>_tabs.scss</code> and <code>_titlebar.scss</code> files and go from there.</p>
<p>Here&#8217;s <code>_tabs.scss</code>.</p>
<pre class="prettyprint">.x-toolbar {
  border: none;
  background: $baseColor;
  .x-innerhtml {
    color: white;
    font-size: 16px;
  }
}
</pre>
<p>Here&#8217;s the contents for <code>_titlebar.scss</code>.</p>
<pre class="prettyprint">.x-tabbar {
  border: none;
  background: $baseColor;
  .x-tab {
    background: none;
    border: none;
    .x-button-label {
      color: white;
      padding: 10px 15px;
      text-align: center;
      font-size: 13px
    }
    &#038;.x-tab-active {
      .x-button-label {
        color: #02b99a;
      }
    }
  }
}
</pre>
<p><img src="http://dl.dropbox.com/u/68704/Screenshots/1c0y.png" alt="final customized theme" /></p>
<h4>Wrapping up</h4>
<p>There is so much more to theming Sencha Touch than what was described above. My upcoming posts will detail how to integrate custom icon fonts, write and style custom components (a big part of what we do here at Modus), and how to use the new config driven system in ST 2.2 to deploy custom CSS for multiple platforms.</p>
<p>Make sure to follow me on twitter <a href="http://www.twitter.com/dmackerman" rel="nofollow" >@dmackerman</a> for future blog posts!</p>
<p><strong>Sencha Touch 2.2 has been officially released. <a href="http://www.sencha.com/blog/hello-sencha-touch-2-2/" rel="nofollow" >Read the blog post here</a>.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/bootstrapping-and-theming-your-app-with-sencha-touch-2-2-0/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Announcing the DZone Sencha Touch Refcard</title>
		<link>http://moduscreate.com/announcing-the-dzone-sencha-touch-refcard/</link>
		<comments>http://moduscreate.com/announcing-the-dzone-sencha-touch-refcard/#comments</comments>
		<pubDate>Fri, 05 Apr 2013 14:39:37 +0000</pubDate>
		<dc:creator>Stan Bershadskiy</dc:creator>
				<category><![CDATA[Industry]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Sencha Touch]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=4721</guid>
		<description><![CDATA[Modus Create is pleased to announce the release of the DZone Refcard: Sencha Touch The Sencha Touch Refcard introduces the Sencha Touch 2 framework and its core concepts. For each concept there are source code snippets showing it in action. It is targeted for Sencha Touch developers of all experiences, it can serve as a [...]]]></description>
				<content:encoded><![CDATA[<p>Modus Create is pleased to announce the release of the <a href="http://refcardz.dzone.com/refcardz/sencha-touch" rel="nofollow" >DZone Refcard: Sencha Touch</a></p>
<p>The Sencha Touch Refcard introduces the Sencha Touch 2 framework and its core concepts. For each concept there are source code snippets showing it in action. It is targeted for Sencha Touch developers of all experiences, it can serve as a starting point as well a quick reference for the experienced developer.</p>
<p>The Reference Card covers the following:</p>
<ul>
<li>Introduction to Sencha Touch 2</li>
<li>Class System </li>
<li>Component System </li>
<li>Event System </li>
<li>Selectors </li>
<li>Data Package</li>
<li>XTemplate </li>
<li>MVC </li>
<li>Application Theming </li>
<li>Packaging and Deploying </li>
<li>Common Pitfalls</li>
</ul>
<h1>Preview</h1>
<p><a href="http://moduscreate.com/wp-content/uploads/2013/04/rc179-010d-Sencha-Touch-1-3.jpg"><img src="http://moduscreate.com/wp-content/uploads/2013/04/rc179-010d-Sencha-Touch-1-3.jpg" alt="Sencha Touch Refcard - Component System" width="512" class="size-full wp-image-4764" /></a></p>
<p><a href="http://moduscreate.com/wp-content/uploads/2013/04/rc179-010d-Sencha-Touch-1-6.jpg"><img src="http://moduscreate.com/wp-content/uploads/2013/04/rc179-010d-Sencha-Touch-1-6.jpg" alt="Sencha Touch Refcard: MVC and Theming" width="512" class="size-full wp-image-4765" /></a></p>
<h1>About</h1>
<p>The Refcard was written for DZone by Stan Bershadskiy (<a href="http://www.twitter.com/stan229" rel="nofollow" >@stan229</a>) and edited by Grgur Grisogono (<a href="http://www.twitter.com/ggrgur" rel="nofollow" >@ggrgur</a>) and Jay Garcia (<a href="http://www.twitter.com/modusjesus" rel="nofollow" >@modusjesus</a>). Stan has been working with Sencha frameworks for the greater part of the last five years, particularly with Sencha Touch. You can see some of his Sencha Touch work here: <a href="http://moduscreate.com/work/sports-illustrated/">Time Inc. Digital Storefront</a> and <a href="http://moduscreate.com/work/diablo-3-mobile-companion-ios/">Diablo 3 Mobile Companion</a></p>
<p>We hope you enjoy it and don&#8217;t forget to share it with your friends and colleagues!</p>
<p>Get the Sencha Touch Refcard <a href="http://refcardz.dzone.com/refcardz/sencha-touch" rel="nofollow" >here</a>: <a href="http://refcardz.dzone.com/refcardz/sencha-touch" rel="nofollow" ><img src="http://moduscreate.com/wp-content/uploads/2013/04/refcard-cover.png" alt="refcard cover" width="200" height="259" class="aligncenter size-full wp-image-4742" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/announcing-the-dzone-sencha-touch-refcard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geoff Bishop joins Modus Create as VP, Product Development</title>
		<link>http://moduscreate.com/geoff-bishop-joins-modus-create-as-vp-product-development/</link>
		<comments>http://moduscreate.com/geoff-bishop-joins-modus-create-as-vp-product-development/#comments</comments>
		<pubDate>Wed, 27 Mar 2013 17:43:28 +0000</pubDate>
		<dc:creator>Sam Bruck</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=4597</guid>
		<description><![CDATA[Please join us in welcoming Geoff Bishop as the new VP, Product Development, overseeing Modus’ rapidly growing lean product development consulting practice. Geoff previously served as Director, Audience Products at Public Broadcasting Service, where he was responsible for General Audience digital products, a portfolio that included pbs.org, video.pbs.org, and the award winning (and 5-star rated) [...]]]></description>
				<content:encoded><![CDATA[<p>Please join us in welcoming Geoff Bishop as the new VP, Product Development, overseeing Modus’ rapidly growing <a href="http://moduscreate.com/services/custom-development/">lean product development</a> consulting practice.</p>
<p>Geoff previously served as Director, Audience Products at Public Broadcasting Service, where he was responsible for General Audience digital products, a portfolio that included pbs.org, video.pbs.org, and the award winning (and 5-star rated) PBS Video Apps. At PBS Geoff focused on emerging distribution channels of Responsive Web, Hybrid Apps, and Over-The-Top Television offerings.</p>
<p>Geoff will be responsible for leading the product development of Modus’ white-label HTML5 publishing platform. Modus Create has deep experience building HTML5 iPad apps for clients such as Fortune Magazine, The Atlantic Wire and their own Discover Music digital magazine for Amazon’s Kindle Store.</p>
<p>To learn more about this, click <a href="http://www.prweb.com/releases/Modus-Create/Geoff-Bishop/prweb10570463.htm" rel="nofollow" >here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/geoff-bishop-joins-modus-create-as-vp-product-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prov.JS Meetup Recap &#8211; JavaScript Patterns in Objective C</title>
		<link>http://moduscreate.com/prov-js-meetup-recap-javascript-patterns-in-objective-c/</link>
		<comments>http://moduscreate.com/prov-js-meetup-recap-javascript-patterns-in-objective-c/#comments</comments>
		<pubDate>Tue, 26 Mar 2013 20:32:25 +0000</pubDate>
		<dc:creator>Tim Eagan</dc:creator>
				<category><![CDATA[Meetups]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=4616</guid>
		<description><![CDATA[Last Thursday night, Andrew Goodale gave an excellent presentation at ProvJS that highlighted some of the similarities between JavaScript and Objective-C. It turns out there are quite a few things we use in JavaScript that can be applied here, especially when it comes to basics of getting things done. For example: Delegates, Events JSON Function [...]]]></description>
				<content:encoded><![CDATA[<p>Last Thursday night, Andrew Goodale gave an excellent presentation at <a href="http://www.meetup.com/Prov-JS" rel="nofollow" >ProvJS</a> that highlighted some of the similarities between JavaScript and Objective-C. It turns out there are quite a few things we use in JavaScript that can be applied here, especially when it comes to basics of getting things done.</p>
<p>For example:</p>
<blockquote>
<ul>
<li>Delegates, Events </li>
<li>JSON </li>
<li>Function Patterns </li>
<li>Closures </li>
<li>Loose Typing </li>
<li>Dynamic invocation &#8211; obj_msgSend() vs. Function.apply() </li>
<li>Objects &#8211; Key/Value coding vs. Hash table</li>
</ul>
</blockquote>
<p>These can all be taken advantage of in Objective-C. There are certainly some nuances here but it&#8217;s nice to see some familiar techniques when diving into a new language. There were some negatives mentioned such as memory management, &#8220;wordy&#8221; method/property names and funky syntax. Avoiding memory leaks was possibly the only serious fault I heard. I think the wordiness and funky syntax would be pretty easy to get used to. In fact, take a look at this:</p>
<pre class="prettyprint">(void)staticMethod:(int)foo

    { NSFileManager *mgr = [NSFileManager defaultManager]; NSError *myError;
    
    BOOL ok = [mgr createDirectoryAtURL : myURL withIntermediateDirectories : YES attributes : nil error : &#038;myError]; }

</pre>
<p>Sure, its a bit wordy but as Andrew said, it&#8217;s not that far from this:</p>
<pre class="prettyprint">
    JSFile.getDefaultManager().createDirectory({
        url: myURL,
        withIntermediateDirectories: true,
            attributes: null
    }); 
</pre>
<p>The Objective-C editor will even line up your colons (if you&#8217;re into that sort of thing).</p>
<p>So, if you like to code in JavaScript and were thinking about trying Objective-C, give it a shot. You may just find it a little bit familiar. Also, if you&#8217;re in the Providence area, stop by <a href="http://www.meetup.com/Prov-JS/" rel="nofollow" >ProvJS</a> and join us for a meetup!</p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/prov-js-meetup-recap-javascript-patterns-in-objective-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 Startup Lessons Learned from Call of Duty</title>
		<link>http://moduscreate.com/5-startup-lessons-learned-from-call-of-duty/</link>
		<comments>http://moduscreate.com/5-startup-lessons-learned-from-call-of-duty/#comments</comments>
		<pubDate>Tue, 05 Mar 2013 18:34:29 +0000</pubDate>
		<dc:creator>Patrick Sheridan</dc:creator>
				<category><![CDATA[Industry]]></category>
		<category><![CDATA[Lean Startup]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=4447</guid>
		<description><![CDATA[Playing XBox Live allows our distributed team to connect on a personal level and decompress. As our COD gameplay has improved, we&#8217;ve noticed that breakaway players have developed &#8216;cash management&#8217; and &#8216;juggernaut&#8217; strategies that allow for survival in to upper waves. From here, clear parallels into our own strategic planning conversations evolved. 1 &#8211; Know [...]]]></description>
				<content:encoded><![CDATA[<p>Playing XBox Live allows our distributed team to connect on a personal level and decompress. As our COD gameplay has improved, we&#8217;ve noticed that breakaway players have developed &#8216;cash management&#8217; and &#8216;juggernaut&#8217; strategies that allow for survival in to upper waves. From here, clear parallels into our own strategic planning conversations evolved.</p>
<h1>1 &#8211; Know Your Map</h1>
<p><img src="http://moduscreate.com/wp-content/uploads/2013/03/mw3-map-funnels.png" alt="mw3-map-funnels" width="457" height="480" class="alignnone size-full wp-image-4464" /></p>
<p>Identifying and building your funnel can mean life and death. Every map has a choke point or &#8216;funnel&#8217; that give the maximum advantage to the defender (you). Positioning sentries and selecting the right cover leads to massive kill streaks and cash bonuses. Picking a defense position equidistant from the Ammo, Air Support, and Explosives stores enables efficient resupply of resources.</p>
<p><strong><em>Startup Lesson</em></strong><br />Identifying advantageous market conditions matters as much, and sometimes more, than business model. Modus was founded two years before we expected HTML5 to be ready. This affected how we positioned the company AND the offers we rolled out as market conditions matured and <a href="http://moduscreate.com/capabilities/mobile-apps/">HTML5 apps</a> became a more viable <a href="http://moduscreate.com/capabilities/enterprise-apps/">solutions for enterprises</A>.</p>
<h1>2 &#8211; Conserve Cash and Ammo</h1>
<p><img src="http://moduscreate.com/wp-content/uploads/2013/03/Airsupport-armory-443x371.jpg" alt="Air support armory" width="443" height="371" class="alignnone size-full wp-image-4466" /></p>
<p><em>Exploit the Funnel</em><br />Once your funnel is setup, the choke point on attackers leads to massive kill streaks and rampage cash bonuses.</p>
<p><em>Conserve Ammo</em><br />Saving the $750 on ammo refills is a huge advantage. Scavenging and exhausting all free attacker dropped ammo is a clear sign of a pro. Clearing as many waves as possible with dropped weapons positions you to have massive reserves when you need them against the real heavy competition.</p>
<p><em>Build a Juggernaut Warchest</em><br />Predator missiles cost $2,500 and do the job for sure, but why waste the dough when two flashbangs and $750 in ammo will also do the job? Saving money and heavy weapons for later rounds is key when attack choppers and juggernauts make expensive predator missiles a must have.</p>
<p><strong><em>Startup Lesson</em></strong> <br />Revenue is water but cash is air. You can survive without revenue but will die quickly without operating cash. You don&#8217;t need the best office chairs or expensive PR firm to succeed. Spend your money on the things that matter. As a bootstrapped, &#8220;customer financed&#8221; business, Modus has been able to self fund growth by continually reinvesting in our business and building a war chest of cash reserves.</p>
<h1>3 &#8211; Over Communicate</h1>
<p><img src="http://moduscreate.com/wp-content/uploads/2013/03/mw3-revive-620x325.png" alt="mw3-revive" width="620" height="325" class="alignnone size-large wp-image-4467" /></p>
<p><em>Unrecoverable distance</em><br />In the midst of battle the last thing you want to hear is, &#8220;Help me out, I&#8217;m down over here!&#8221; Allowing an unrecoverable amount of distance between yourself and a teammate has ended many a good run. The more waves you survive, the less time you have to reach and revive a downed teammate.</p>
<p><em>Playing without a headset</em><br />Playing on XBox Live without a headset can be like flying blind when the going gets tough. Knowing <em>where</em> someone is on the map is not as valuable as knowing <em>what help they need.</em></p>
<p><strong><em>Startup Lesson</em></strong><br />Your team cannot read your mind. Add distance with a distributed team, add communication overhead or suffer the consequences. Lack of &#8220;shared understanding&#8221; is the biggest reason why software projects fail.</p>
<h1>4 &#8211; Pick Perks Wisely</h1>
<p><img src="http://moduscreate.com/wp-content/uploads/2013/03/mw3-perks.jpg" alt="mw3-perks" width="638" height="350" class="alignnone size-full wp-image-4471" /></p>
<p><em>Match Perks to Maps</em><br />&#8220;Sleight of hand&#8221; or &#8220;Steady Aim&#8221; can make all the difference based on the map and the wave. They are expensive and offer significant advantages, but incorrectly chosen perks are a huge waste of money and offer little return.</p>
<p><strong><em>Startup Lesson</em></strong><br />Useless optimization kills products and businesses. Build feedback loops with your customers and practice a &#8220;near real-time&#8221; LeanUX approach to validate features and &#8220;delighters&#8221; on your product roadmap match to actual user needs.</p>
<h1>5 &#8211; Triple Juggernaut Strategy</h1>
<p><img src="http://moduscreate.com/wp-content/uploads/2013/03/mw3-juggernaut.jpg" alt="mw3-juggernaut" width="622" height="400" class="alignnone size-full wp-image-4473" /></p>
<p><em>Single, Double, and Triple Juggernauts</em><br />By the time you are facing triple Juggernauts with riot shields, you realize you thinking has to change to survive. You can no longer use a &#8216;hold your ground&#8217; approach and must find creative ways to lure Juggernauts into positions that give you the kill advantages. Multiple Juggernauts will actively move to kill your defenses before coming for you. Knowing this is not good enough, you have to act on it to survive.</p>
<p><strong><em>Startup Lesson</em></strong><br />&#8220;Pre-Success&#8221; and &#8220;Post-Success&#8221; strategies differ. Once you are taken seriously as a competitive threat, your should expect to face offensive and defensive moves by the incumbents you are attempting to disrupt.</p>
<p><small>Image credits:<br /> http://images.wikia.com/callofduty/images/8/89/Map_Underground_MW3.png http://www.imodernwarfare3.com/wp-content/uploads/2011/08/Airsupport-armory-443&#215;371.jpg http://images.wikia.com/callofduty/images/3/38/Reviving_downed_Osprey_survivor_Special_Delivery_MW3.png http://gametechx.com/wp-content/uploads/2012/05/modernwarfare3perksscre-300&#215;164.jpg http://images4.wikia.nocookie.net/__cb20111021012661/callofduty/images/7/73/Juggernaut_MW3.jpg</small></p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/5-startup-lessons-learned-from-call-of-duty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modus Create turns 2!</title>
		<link>http://moduscreate.com/modus-create-turns-2/</link>
		<comments>http://moduscreate.com/modus-create-turns-2/#comments</comments>
		<pubDate>Mon, 04 Mar 2013 22:17:32 +0000</pubDate>
		<dc:creator>Patrick Sheridan</dc:creator>
				<category><![CDATA[Industry]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=4449</guid>
		<description><![CDATA[2012 was a great year for the team at Modus! We&#8217;ve put together an infographic to represent our journey to date. Thanks to our new and existing clients and talented team members who&#8217;ve joined us over the past twelve months. Here&#8217;s to amazing things in 2013!]]></description>
				<content:encoded><![CDATA[<p>2012 was a great year for the team at Modus! We&#8217;ve put together an infographic to represent our journey to date.</p>
<p>Thanks to our new and existing clients and talented team members who&#8217;ve joined us over the past twelve months.</p>
<p>Here&#8217;s to amazing things in 2013!<br />
<img src="http://moduscreate.com/wp-content/uploads/2013/03/Modus-Turns-2fix-blog.png" alt="Modus Turns 2" width="800" height="4558" class="alignnone size-full wp-image-4544" /></p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/modus-create-turns-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>UXCamp Redux: Business of UX Preso</title>
		<link>http://moduscreate.com/uxcamp-redux-business-of-ux-preso/</link>
		<comments>http://moduscreate.com/uxcamp-redux-business-of-ux-preso/#comments</comments>
		<pubDate>Mon, 04 Mar 2013 20:10:01 +0000</pubDate>
		<dc:creator>Patrick Sheridan</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Industry]]></category>
		<category><![CDATA[Lean Startup]]></category>

		<guid isPermaLink="false">http://moduscreate.com/?p=4420</guid>
		<description><![CDATA[I had the pleasure of doing a &#8216;lightning round&#8217; version of my Business of UX presentation from UXCamp 2012 last week at the very cool nClud in DC. Checkout the presentation, and watch the video:]]></description>
				<content:encoded><![CDATA[<p>I had the pleasure of doing a &#8216;lightning round&#8217; version of my Business of UX presentation from <a href="http://mobileuxcamp.com/2012/10/note-from-the-business-of-ux" rel="nofollow" >UXCamp 2012</a> last week at the very cool nClud in DC.</p>
<p><a href="http://www.rvl.io/sheridap/business-of-ux" rel="nofollow" >Checkout the presentation</a>, and watch the video:</p>
<p><iframe src="http://player.vimeo.com/video/52495420" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://moduscreate.com/uxcamp-redux-business-of-ux-preso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
