<?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>Adobe Evangelists Super Blog</title>
	<atom:link href="http://adobeevangelists.com/superblog/feed/" rel="self" type="application/rss+xml" />
	<link>http://adobeevangelists.com/superblog</link>
	<description>Adobe Evangelists Super Blog</description>
	<lastBuildDate>Wed, 22 Feb 2012 22:19:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>ColdFusion Job Opening &#8211;  Air Methods Corporation, Englewood CO</title>
		<link>http://www.raymondcamden.com/index.cfm/2012/2/22/ColdFusion-Job-Opening---Air-Methods-Corporation-Englewood-CO?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=coldfusion-job-opening-air-methods-corporation-englewood-co</link>
		<comments>http://www.raymondcamden.com/index.cfm/2012/2/22/ColdFusion-Job-Opening---Air-Methods-Corporation-Englewood-CO#comments</comments>
		<pubDate>Wed, 22 Feb 2012 22:19:00 +0000</pubDate>
		<dc:creator>Raymond Camden's Blog</dc:creator>
				<category><![CDATA[ColdFusion]]></category>

		<guid isPermaLink="false">http://www.raymondcamden.com/index.cfm/2012/2/22/ColdFusion-Job-Opening---Air-Methods-Corporation-Englewood-CO</guid>
		<description><![CDATA[
				
				
				Passing along another job offering...

Software Developer – ColdFusion, Air Methods Corporation, Englewood CO

We are seeking a Full time Software Developer –ColdFusion  to provide experienced, leadership for the design, development,...]]></description>
			<content:encoded><![CDATA[
				
				
				Passing along another job offering...

Software Developer – ColdFusion, Air Methods Corporation, Englewood CO

We are seeking a Full time Software Developer –ColdFusion  to provide experienced, leadership for the design, development, coding, test...
				
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/coldfusion-job-opening-air-methods-corporation-englewood-co/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>aTabSplitter – the web standards edition</title>
		<link>http://feedproxy.google.com/~r/corlan/~3/8aR6oug1QmA/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=atabsplitter-%25e2%2580%2593-the-web-standards-edition</link>
		<comments>http://feedproxy.google.com/~r/corlan/~3/8aR6oug1QmA/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 20:44:45 +0000</pubDate>
		<dc:creator>Mihai Corlan</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://corlan.org/?p=3417</guid>
		<description><![CDATA[I thought that it would be helpful to document the experience I have while building a web application using jQuery Mobile. And this is what this article is all about. But before going into details let me set the context.
I started building mobile applications a while ago using Adobe AIR and the Flex framework. My [...]]]></description>
			<content:encoded><![CDATA[<div class="none" style="float: right; margin-left: 10px;"><g:plusone href="http://corlan.org/2012/02/22/atabsplitter-the-web-standards-edition/" size="tall" count="true"></g:plusone></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http://corlan.org/2012/02/22/atabsplitter-the-web-standards-edition/"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http://corlan.org/2012/02/22/atabsplitter-the-web-standards-edition/&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I thought that it would be helpful to document the experience I have while building a web application using jQuery Mobile. And this is what this article is all about. But before going into details let me set the context.</p>
<p>I started building mobile applications a while ago using Adobe AIR and the Flex framework. My first &#8220;production ready&#8221; application is called <a href="https://market.android.com/details?id=air.org.corlan.aTabSplitter2">aTabSplitter</a> and it is available for download in Android and BlackBerry markets. It was a fun and eye opening experience. I mean it is one thing &#8220;to play&#8221; with technology and an entire different thing to build something that will be actually useful and people will love to use it.</p>
<p>Recently, as I was playing with jQuery mobile I had an idea: what if I&#8217;d try to rebuild the application using HTML, CSS, and JavaScript? To make the things more complicated I wanted to retain the same UI and user experience. In other words I treated the mobile application as the design and user workflows diagrams you&#8217;d get from a UX.</p>
<p>If you haven&#8217;t tried the application yet let me briefly describe it: it allows you to split a restaurant bill. The important workflows are the first screen, where you add new persons, delete them, move them around the table, or adjust the tip and the calculator screen where you add the items for a single person. Actually, I am pretty proud because I think I found a good/intuitive user interface.</p>
<p>And by the way, <a href="http://corlan.org/atabsplitter/">here</a> is the link for this web app.</p>
<p>Here are screenshots with the application running on desktop and mobile devices.</p>
<p><a href="http://corlan.org/wp-content/uploads/2012/02/atab-1.png"><img class="alignnone size-medium wp-image-3424" title="atab-1" src="http://corlan.org/wp-content/uploads/2012/02/atab-1-170x300.png" alt="" width="170" height="300" /></a> <a href="http://corlan.org/wp-content/uploads/2012/02/atab-2.png"><img class="alignnone size-medium wp-image-3425" title="atab-2" src="http://corlan.org/wp-content/uploads/2012/02/atab-2-170x300.png" alt="" width="170" height="300" /></a></p>
<p>Android 4 Phone:</p>
<p><a href="http://corlan.org/wp-content/uploads/2012/02/atab-3.png"><img class="alignnone size-medium wp-image-3426" title="atab-3" src="http://corlan.org/wp-content/uploads/2012/02/atab-3-168x300.png" alt="" width="168" height="300" /></a> <a href="http://corlan.org/wp-content/uploads/2012/02/atab-4.png"><img class="alignnone size-medium wp-image-3427" title="atab-4" src="http://corlan.org/wp-content/uploads/2012/02/atab-4-167x300.png" alt="" width="167" height="300" /></a></p>
<p>On iPad:</p>
<p><a href="http://corlan.org/wp-content/uploads/2012/02/atab-5.png"><img class="alignnone size-medium wp-image-3428" title="atab-5" src="http://corlan.org/wp-content/uploads/2012/02/atab-5-225x300.png" alt="" width="225" height="300" /></a> <a href="http://corlan.org/wp-content/uploads/2012/02/atab-6.png"><img class="alignnone size-medium wp-image-3429" title="atab-6" src="http://corlan.org/wp-content/uploads/2012/02/atab-6-225x300.png" alt="" width="225" height="300" /></a></p>
<p><a href="http://corlan.org/wp-content/uploads/2012/02/atab-6.png"><span id="more-3417"></span></a></p>
<h2>The Plan</h2>
<p>Here is what I was set to achieve: a web application that will work on mobile devices and desktop. Although I could have gone the PhoneGap route and pack the whole thing into a native app, I wanted to have a single base code for the first pass that will work in browsers on all these different devices. As a framework I decided to go with jQuery Mobile. This, at least in theory, was a perfect match for my application given the fact that all I needed was a nice way to keep the two screen separated from a functional point of view.</p>
<p>I didn&#8217;t see any need for other frameworks. So for the rest of functionality I wrote JavaScript and used HTML/CSS and images to create all the UI I needed. Because I went for a web application I chose to implement only the main features of the original AIR app. Nevertheless, I wanted to use all the new features available in modern browsers that made sense for my app so I can make a responsive and usable web app. For the rest of the article, I will highlight some of the things that were either trickier or unexpected and the general approach. I hope you will find it useful.</p>
<h2>jQuery Mobile and architectural considerations</h2>
<p><a href="http://jquerymobile.com/">jQuery mobile</a> was a pretty obvious choice because of the features it offers. The way it lets you organize your application using &#8220;pages&#8221; and keep them in the same HTML is perfect for what I needed. Remember that I wanted to build a small application which has only two &#8220;screens&#8221;.  Also I like the fact that I can define most of the UI using pure HTML without the need of writing JavaScript.</p>
<p>Once I had the UI in place, I started to write the JavaScript code that powers the user interface. Normally, I would wrap the different functionalities in a number of objects. However for this project I decided to go against the best practices and write mainly functions. The only way I organized them was by splitting them in three different files: <em>home.js</em>, <em>calculator.js</em>, and <em>utils.js</em>. The first two files hold the functions used for the home screen and calculator screen and the third one utilities functions. Why did I choose to go against best practices? One main reason: the application is too small to worth spending time on architecting the code.</p>
<p>Although conceptually there are two pages in my application as far as the browser is concerned there is only one page. This means that the JavaScript code has visibility over the whole application DOM.</p>
<p>In the index.html there is a little bit of JavaScript code used for boot strapping the application. It is the usual jQuery business, executing the bootstrap code on the jQuery <em>ready</em> event. This is where I attached various event listeners on UI components and I set the height for main UI components.</p>
<p>The part with setting up the height manually was a bit of surprised. I was expecting that jQuery Mobile will take care of this for me and when the content in the page doesn&#8217;t overflow it will set the size of the div to be equal to the viewport minus the header and footer. It&#8217;s not the case.</p>
<p>Other interesting things in the index.html is the array that holds references to all the plates on the screen, a reference to the trash bin image &#8211; so I can quickly check if the user wants to delete a plate (if you drag a plate on top of the trash bin it will be deleted).</p>
<p>One of the issues I had was how can I make sure that the user doesn&#8217;t land directly on the second page. It doesn&#8217;t make sense to support this and if it happens it is confusing for the user. After I spent some time reading the documentation and talking to my fellow evangelist <a href="http://www.raymondcamden.com/index.cfm">Ray Camden</a> I decided to go for an extreme solution. Inside the function executed for jQuery <em>ready</em> event I checked the current page value. If it is <em>calculator</em> (the second page) then I reload the page:</p>
<pre class="brush: plain; title: ; notranslate">

//forcing the app to load the first screen if the user lands directly on the second page
if ($.mobile.activePage[0].id === 'calculator') {
   l = window.location;
   l.hash = '';
   window.location = l;
}
</pre>
<p>Finally, I tried to keep the dependencies on jQuery at minimum. Why? Because I plan to re-write the application using other frameworks and if I decide to go without jQuery then I don&#8217;t want to have lots of code to clean up.</p>
<h2>Custom Data Attributes</h2>
<p>Obviously this application must have a data model, right? There are different approaches I could have used to store the data model. The one that made most sense to me is using <a href="http://dev.w3.org/html5/spec/global-attributes.html#embedding-custom-non-visible-data-with-the-data-attributes">custom data- attributes</a>.</p>
<p>Each plate that you add, has the data stored in two attributes:</p>
<ul>
<li><em>data-i</em> : stores the items you add. For example, if you added 5 + 12, then <em>data-i = [5, 12]</em></li>
<li><em>data-t</em>: stores the total. Using the example above, <em>data-t = 17</em></li>
</ul>
<div>This is convenient because, if I want to delete a plate I just remove that element from the DOM and both the visual part and the data model go away.</div>
<h2>Touchstart event vs mouse click event</h2>
<p>If you worked with mobile web apps then chances are that you already know this. If not then you should pay attention. If you use <em>click</em> events for your UI components (buttons for example) when you run the application on a mobile device (including most powerful tablets) you will notice a huge lag between the time you touched a button and the execution of the <em>click</em> event listener. It is so big that it renders the app almost not usable. The solution is pretty simple: use <em>touchstart</em> events instead of <em>click</em>events. On touch devices whenever you touch the screen you get events in the following order:</p>
<ol>
<li><em>touchstart</em></li>
<li><em>touchmove</em></li>
<li><em>touchend</em></li>
</ol>
<div>A <em>click</em> event is basically an event that triggers once you closed the whole loop &#8211; actually if you&#8217;d listen for <em>touchend</em> you should get this event long before the <em>click</em> one. So this is the reason for getting improved speed when using <em>touchstart</em> instead of <em>click</em> &#8211; you use the very first event triggered.</div>
<h2>Dealing with multiple touch events</h2>
<p>When you use <em>touchstart </em>and <em>click</em> events in your application a lot, you will end up in a situation where you need to add logic to handle some use cases. The first screen of my application is pretty heavy on touch events usage: you can touch the screen to add a new plate, you touch a plate to go the second screen and edit, you can move around a plate, or you can touch the slider to adjust the tip. I have all my events registered for the bubbling phase (if you need a refresh on the event phases check <a href="http://www.quirksmode.org/js/events_order.html">this resource)</a>.</p>
<p>Much to my surprise, I couldn&#8217;t use the slider on mobile devices. Every time I touched the slider a new plate was added to the screen. My solution to this issue was a quick hack to check for the target object in the event listener that adds a new plate &#8211; if the target is part of the slider then I don&#8217;t add a new plate.</p>
<p>Another area where I had to pay attention was the plate itself. You can touch/click a plate to move around or to edit. I decided that if you move a plate around it doesn&#8217;t necessary mean you want to edit. I change the app to edit plate screen if the plate moved more than 10 pixels on any direction.</p>
<h2>Custom components</h2>
<p>Most of the UI components I needed for my app were covered by the browser or jQuery Mobile. However there was one I needed to create &#8211; the component that represents one person on the first screen.</p>
<p><img class="alignnone size-full wp-image-3447" title="atab-9" src="http://corlan.org/wp-content/uploads/2012/02/atab-9.png" alt="" width="121" height="117" /></p>
<p>It is pretty simple component: an image that represents a plate and a label that displays the total. Or it is until you try to make it work. Because I wanted the text to be centered both vertically and horizontally. Also, if the text grows bigger than the image, I wanted to be centered (see the picture below).</p>
<p><img class="alignnone size-full wp-image-3449" title="atab-10" src="http://corlan.org/wp-content/uploads/2012/02/atab-10.png" alt="" width="159" height="127" /></p>
<p>After some try and errors I manage to come with the following code for this:</p>
<pre class="brush: plain; title: ; notranslate">
&lt;div class=&quot;plate&quot;&gt;
    &lt;img src=&quot;assets/images/plate-big.png&quot; alt=&quot;&quot; /&gt;
    &lt;div&gt;0&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>Here is the CSS for this component:</p>
<pre class="brush: plain; title: ; notranslate">

.plate {
      position: absolute;
      color: #000000;
      font-size: 20px;
      overflow: visible;
      text-align: center;
      -moz-user-select: -moz-none;
      -khtml-user-select: none;
      -webkit-user-select: none;
      user-select: none;
}
.plate &gt; div {
      text-align: center;
      margin-top: -65px;
      width: 100%;
}
</pre>
<p>The second custom component was the keyboard I use on the second screen. All I needed was a basic <em>calculator</em> keyboard actually even simpler as I didn&#8217;t need all the operations. Why did I go for a custom keyboard? Because it makes my app more usable by giving the user only the keys he need.</p>
<p><img class="alignnone size-full wp-image-3452" title="atab-11" src="http://corlan.org/wp-content/uploads/2012/02/atab-111.png" alt="" width="350" height="292" /></p>
<p>I used the old school tables approach. And it worked beautifully on the desktop but not so good on the mobile phones &#8211; the keyboard was falling out the screen. After some debugging using <em>weinre</em>I realized what was happening. jQuery Mobile augments your code. Typically, for any button you have in your app it will generate a number of <em>divs</em>/<em>span</em>s that are positioned on top of the button and these elements actually provides the visual appearance of the button.</p>
<p>Because it does a generous use of padding and margins there was no way I will manage to fit 5 buttons on the same row on an iPhone or Android phone. How did I fix this? Well my solution is certainly not the most elegant but it works. I used Media Queries, CSS selectors, and the infamous <em>!important</em> to overwrite the jQuery styles for my keyboard when the app is running on mobile phones. If anyone knows a better solution please tell me!</p>
<h2>Saving application state &#8211; Web Storage</h2>
<p>Suppose you add some items and persons to the app and you accidentally hit the back button. Of course, that the whole state of the application will be lost. And this is something I didn&#8217;t want to happen.</p>
<p>I save the application state using the <a href="http://dev.w3.org/html5/webstorage/">Web Storage localStorage</a> feature. This feature is supported by all modern browsers and it offers a simple API to store key/value pairs (think of a hash map or associative array in PHP). The only catch is that the value is saved as a string. The application state is saved in the form of an array of objects where each object maps one of the plates: it holds the top and left position, the total, and the items. These information are enough for restoring the application state. The relevant code is in the <em>scripts/home.js</em>file. Here is the code for saving and reading:</p>
<pre class="brush: plain; title: ; notranslate">

//
function persistApplicationState(arr) {
    var i, l, toSave, el;
    toSave = [];
    for (i = 0, l = arr.length; i 0 &amp;&amp; localStorage) {
       localStorage.setItem('plates', JSON.stringify(toSave));
   }
}

function getPersistedPlates() {
    var ret;
    if (!localStorage)
       return false;
    ret = JSON.parse(localStorage.getItem('plates'));
    if (!ret || ret.length === 0)
       return false;
    return ret;
}
</pre>
<p>Note that I am using <em>JSON.stringify()</em> and <em>JSON.parse()</em>. This is related to the fact that Web Storage saves only strings. In terms of size, most browsers offer by default 5MB (FireFox warns the users and asks for permission).</p>
<h2>Reduce Loading Time &#8211; Application Cache</h2>
<p>You might think of <a href="http://www.html5rocks.com/en/tutorials/appcache/beginner/">Application Cache</a> like browser caching on steroids. By using Application Cache you can dramatically improve the loading speed of your application and the app can be used while users are offline.</p>
<p>This feature is pretty simple to use: you create a manifest file (which is simple text file with <em>appcache</em> extension and the first line must have this text CACHE MANIFEST). In this file you add entries for all the things you want to cache &#8211; could be CSS files, JS files, images, HTML. Then you enable the Application cache by setting the <em>manifest </em>attribute on the <em>&lt;html&gt;</em> tag:</p>
<pre class="brush: plain; title: ; notranslate">
&lt;html manifest=&quot;app.appcache&quot;&gt;
</pre>
<p>Now, every time you want to invalidate the cache and make the browser to reload the resources you change something in the application cache file. Most people add a commented line with a timestamp and version number and they just change this. Here is my cache file:</p>
<pre class="brush: plain; title: ; notranslate">

CACHE MANIFEST
# 2012-02-21:v9.5

CACHE:
index.html
styles/styles.css
styles/jquery.mobile-1.0.1.min.css
scripts/jquery-1.6.4.min.js
scripts/jquery.mobile-1.0.1.min.js
scripts/utils.js
scripts/home.js
scripts/calculator.js
assets/images/plate-big.png
assets/images/table_01.jpg
assets/images/bill.jpg
assets/images/trash.png
assets/favicon.ico
styles/images/ajax-loader.png
styles/images/icons-18-black.png
styles/images/icons-18-white.png
styles/images/icons-36-black.png
styles/images/icons-36-white.png
</pre>
<p>Once the application was loaded for the first time, you will notice that the second time loads extremely fast. This is happening because all the resources used in the app are cached locally. And remember that each time you change something in your application you have to invalidate the cache.</p>
<h2>iOS Offline Web Application</h2>
<p>iOS lets you save a web site/application to the home screen. This is the closest you ca get to a native app with HTML without using something like PhoneGap. Also this feature plays nicely with Application Cache.</p>
<p>You have control over a number of things: icon to be used for your application, an image to be used during the loading time (startup image), and if you want to hide the Safari Mobile chrome or not. All these are set or controlled by using <em>&lt;meta&gt;</em> or <em>&lt;link&gt;</em> tags added to the <em>&lt;head&gt;</em> section of your webpage.</p>
<p>In the index.html you will find these tags:</p>
<pre class="brush: plain; title: ; notranslate">
&lt;!-- Hiding the browser chrome --&gt;
&lt;meta name=&quot;apple-mobile-web-app-capable&quot; content=&quot;yes&quot; /&gt;
&lt;!-- Setting a startup image for the app --&gt;
&lt;link rel=&quot;apple-touch-startup-image&quot; href=&quot;assets/images/table_01.jpg&quot;&gt;
&lt;!-- Providing Icons for iOS and iPAd --&gt;
&lt;link rel=&quot;apple-touch-icon&quot; href=&quot;apple-touch-icon-57x57-precomposed.png&quot; /&gt;
&lt;link rel=&quot;apple-touch-icon&quot; sizes=&quot;72x72&quot; href=&quot;apple-touch-icon-72x72-precomposed.png&quot; /&gt;
&lt;link rel=&quot;apple-touch-icon&quot; sizes=&quot;114x114&quot; href=&quot;apple-touch-icon-114x114-precomposed.png&quot; /&gt;
</pre>
<p>Here are screenshots with the app saved to the home screen and running without the browser chrome.</p>
<p><a href="http://corlan.org/wp-content/uploads/2012/02/atab-7.png"><img class="alignnone size-medium wp-image-3455" title="atab-7" src="http://corlan.org/wp-content/uploads/2012/02/atab-7-225x300.png" alt="" width="225" height="300" /></a> <a href="http://corlan.org/wp-content/uploads/2012/02/atab-81.png"><img class="alignnone size-medium wp-image-3457" title="atab-8" src="http://corlan.org/wp-content/uploads/2012/02/atab-81-225x300.png" alt="" width="225" height="300" /></a></p>
<p>You can read more about this topic <a href="https://developer.apple.com/library/ios/#DOCUMENTATION/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html">here</a>.</p>
<h2>Preparing the app for mobile browsers</h2>
<p>By default on most mobile platforms you can scroll the page in the browsers few pixels up and down even when the page content fits to the screen. Man I so much hated this feature. Why? Because the main paradigm for using the first screen is by touch and dragging. Now every time you tried to move up or down a plate, the whole page was moving in the same direction. It was disturbing and annoying at the same time. In order to fix this I added a listener on the body for the <em>touchmove </em>event to prevent the default behavior:</p>
<pre class="brush: plain; title: ; notranslate">

// fix for canceling the scrolling of the body on mobile devices
 document.body.addEventListener('touchmove', function(event) {
           event.preventDefault();
      }, false);
</pre>
<p>The second thing I had to do was to set the layout viewport width to the device width and make sure scaling is disable &#8211; I didn&#8217;t feel that the user could benefit in any way by zooming in or out the app. So I placed the following <em>meta</em> tag in the <em>head </em>section:</p>
<pre class="brush: plain; title: ; notranslate">
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=no&quot;&gt;
</pre>
<p><a href="http://www.quirksmode.org/mobile/viewports2.html">This</a> is a good read on understanding the mobile layouts viewports and screen sizes and the difference between screen resolution and CSS pixels.</p>
<h2>Handling different screen sizes/devices &#8211; Media Queries</h2>
<p>The <a href="http://www.adobe.com/devnet/dreamweaver/articles/introducing-media-queries.html">Media Queries</a> feature was quite handy especially for getting the second screen of the application right. Because on that screen there is a keyboard I had to make sure that the keyboard size is big enough to be usable on the phones and, at the same time it stays within the screen width.</p>
<p>Due to how layout viewport works on mobiles and jQuery Mobile styles buttons, the code that was working perfectly on desktop even when minimizing the browser window was entirely unusable on iPhone or Android phones. The keyboard (on the second screen) didn&#8217;t fit so almost half of it was invisible. By setting up two additional sections for devices with maximum width 720px (Samsung Nexus) and 640px (most Android phones and iPhone/iPod Touches) I managed to fix the problems.</p>
<pre class="brush: plain; title: ; notranslate">

//styles/styles.css

@media only screen and (max-device-width: 720px) {

...

}

@media only screen and (max-device-width: 640px) {

...

}
</pre>
<h2>Debugging the code</h2>
<p>Nothing new here. For desktop I used <em>Web Inspector</em> and for mobile <em>weinre</em>. In case you have never used <em>weinre</em> then you read my post on this topic <a href="http://corlan.org/2012/01/10/debugging-web-pages-and-phonegap-apps-on-mobile-devices/">here</a>. I was so happy for having <em>weinre</em>because it helped me to understand and fix the issues I had with the layout on the calculator screen.</p>
<p>Google released this month a special build of Chrome for Android that enables remote debugging. Basically you get the web inspector on your desktop hooked up to the app running on your mobile device. Unfortunately, the application is not available in all the countries. I don&#8217;t exactly understand why and I don&#8217;t know when it will be available world wide.</p>
<h2>The Code</h2>
<p>You can download the source code from <a href="https://github.com/mcorlan/atabsplitter">GitHub</a> or you can play with <a href="http://corlan.org/atabsplitter/">the application</a>. I testet it on desktop (FireFox, Chrome, and Safari) and on Android Phones/iPad/iPhone4.</p>
<h2>Conclusions</h2>
<p>As I said at the beginning, I had lots of fun while building this. The fact that I was able to test some of the frameworks and HTML features I&#8217;ve been playing with in a real app was a bonus.</p>
<p>In terms of development effort, I spent most of the time on making the application look the same (or as close as possible) on different browsers/devices. I used Chrome during my development. And once everything was in place I was so sure that I&#8217;m done. Poor me, because I kid you not the app looked differently in FireFox, Safari, and Chrome &#8211; I mean each browser rendered something different than the other two :D</p>
<p>In terms of performances and quality there is a big difference between how the app performs on desktop and how it works on mobile. On mobile there are some screen flickering, the transitions are not always smooth, and the UI is not always perfectly aligned. You might argue that it is jQuery Mobile fault or my fault. My opinion is this: it is what it is. I mean mobile browsers have came a long way in recent years but there is still a gap between desktop and mobile. This is what is possible today. Tomorrow it will be better, no doubts.</p>
<p>Now, that I have the V.1 I am ready to experiment with different approaches. First on my list is to use PhoneGap to package my web application as a native application. This will give me a chance to add another feature from the original app: taking a photo with the device camera and replace the picture from the first screen. Second, I will try other frameworks than jQuery Mobile.</p>
<img src="http://feeds.feedburner.com/~r/corlan/~4/8aR6oug1QmA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://corlan.org/2012/02/22/atabsplitter-the-web-standards-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Roadmap for Flash Runtimes</title>
		<link>http://www.tricedesigns.com/2012/02/22/adobe-roadmap-for-flash-runtimes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adobe-roadmap-for-flash-runtimes</link>
		<comments>http://www.tricedesigns.com/2012/02/22/adobe-roadmap-for-flash-runtimes/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 19:39:22 +0000</pubDate>
		<dc:creator>Andrew Trice</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.tricedesigns.com/?p=1658</guid>
		<description><![CDATA[To complement the white paper released last week covering the future of Flex and the transition to Apache, Adobe has released a white paper covering the the roadmap for the Flash and AIR runtimes. Flash is very much alive and well, and is continuing to innovate to be able to bring uncompromising rich experiences to [...]]]></description>
			<content:encoded><![CDATA[<p>To complement the white paper released last week covering <a href="http://www.tricedesigns.com/2012/02/15/adobes-view-of-flex-future-commitment/" >the future of Flex and the transition to Apache</a>, Adobe has released a white paper covering the the roadmap for the Flash and AIR runtimes. Flash is very much alive and well, and is continuing to innovate to be able to bring uncompromising rich experiences to the web, desktop, and mobile devices. You can read the white paper online at:</p>
<ul>
<li><a href="http://www.adobe.com/devnet/flashplatform/whitepapers/roadmap.html" >http://www.adobe.com/devnet/flashplatform/whitepapers/roadmap.html</a></li>
</ul>
<p>Or download a <a href="http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/flashplatform/whitepapers/flash-runtimes-roadmap.pdf" >PDF version</a> to read later.</p>
<p>Here is an excerpt, be sure to read the entire white paper for a clear outline of the future of Flash runtimes.   The future is going to be awesome.</p>
<blockquote>
<h3><span style="color: #000000;">Summary</span></h3>
<p><span style="color: #000000;">For the past decade, Flash Player and, more recently, Adobe AIR have played a vital role on the web by providing consistent platforms for deploying rich, expressive content across browsers, desktops, and devices. Beginning as a platform for enabling animation, the Flash runtimes have evolved into a complete multimedia platform, enabling experiences that were otherwise not possible or feasible on the web.</span></p>
<p><span style="color: #000000;">Looking forward, Adobe believes that Flash is particularly suited for addressing the gaming and premium video markets, and will focus its development efforts in those areas. At the same time, Adobe will make architectural and language changes to the runtimes in order to ensure that the Flash runtimes are well placed to enable the richest experiences on the web and across mobile devices for another decade.</span></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.tricedesigns.com/2012/02/22/adobe-roadmap-for-flash-runtimes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Mobile Cookbook call for authors</title>
		<link>http://www.raymondcamden.com/index.cfm/2012/2/22/jQuery-Mobile-Cookbook-call-for-authors?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=jquery-mobile-cookbook-call-for-authors</link>
		<comments>http://www.raymondcamden.com/index.cfm/2012/2/22/jQuery-Mobile-Cookbook-call-for-authors#comments</comments>
		<pubDate>Wed, 22 Feb 2012 17:56:00 +0000</pubDate>
		<dc:creator>Raymond Camden's Blog</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.raymondcamden.com/index.cfm/2012/2/22/jQuery-Mobile-Cookbook-call-for-authors</guid>
		<description><![CDATA[
				
				
				Love jQuery Mobile? Want to be part of a new book? Then please consider helping out the new jQuery Mobile Cookbook. There's lots of cool people involved (including myself ;) as well as a big group of volunteers ready to write entries. Jo...]]></description>
			<content:encoded><![CDATA[
				
				
				Love jQuery Mobile? Want to be part of a new book? Then please consider helping out the new jQuery Mobile Cookbook. There's lots of cool people involved (including myself ;) as well as a big group of volunteers ready to write entries. Join the fun! B...
				
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/jquery-mobile-cookbook-call-for-authors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Using MouseLock, Right Click, Middle Click features in Flash Player 11.2</title>
		<link>http://www.flashrealtime.com/mouselock-right-click-middle-click-in-flash-player-11-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=using-mouselock-right-click-middle-click-features-in-flash-player-11-2</link>
		<comments>http://www.flashrealtime.com/mouselock-right-click-middle-click-in-flash-player-11-2/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 12:52:40 +0000</pubDate>
		<dc:creator>Tom Krcha</dc:creator>
				<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.flashrealtime.com/?p=2621</guid>
		<description><![CDATA[Flash Player 11.2 introduces new mouse features designed for game developers in mind, but many other developers can find them useful as well. Demo Try this technical demo using the new features, you need Flash Player 11.2 installed (download here). http://flashrealtime.com/demos/newmousefeatures/ * Double click for fullscreen to enable mouseLock. Try also right click, middle click, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http://www.flashrealtime.com/mouselock-right-click-middle-click-in-flash-player-11-2/"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http://www.flashrealtime.com/mouselock-right-click-middle-click-in-flash-player-11-2/&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://labs.adobe.com/downloads/flashplayer11-2.html">Flash Player 11.2</a> introduces new mouse features designed for game developers in mind, but many other developers can find them useful as well.</p>
<h3>Demo</h3>
<p>Try this technical demo using the new features, you need <a href="http://labs.adobe.com/downloads/flashplayer11-2.html">Flash Player 11.2</a> installed (<a href="http://labs.adobe.com/downloads/flashplayer11-2.html">download here</a>).</p>
<p><a href="http://flashrealtime.com/demos/newmousefeatures/">http://flashrealtime.com/demos/newmousefeatures/</a><br />
<img src="http://www.flashrealtime.com/wp-content/uploads/2012/02/Screen-Shot-2012-02-22-at-1.49.07-PM.png" alt="" title="Screen Shot 2012-02-22 at 1.49.07 PM" width="435" height="202" class="alignnone size-full wp-image-2628" /><br />
* Double click for fullscreen to enable mouseLock. Try also right click, middle click, click and mouse wheel.</p>
<p>The demo source code is available here: <a href="http://flashrealtime.com/demos/newmousefeatures/NewMouseFeatures.as">http://flashrealtime.com/demos/newmousefeatures/NewMouseFeatures.as</a></p>
<h3>Mouse Lock</h3>
<p>Locks the mouse in the center of the screen, gives you a relative position of the mouse (movementX, movementY), FULLSCREEN mode only. Mouse Lock is very powerful feature especially in first-person-shooter or third-person-shooter games as it allows you to move freely without reaching the screen boundaries.</p>
<p><strong>New API:</strong><br />
- stage.mouseLock<br />
- mouseEvent.movementX<br />
- mouseEvent.movementY</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> startMouseLock<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">// go fullscreen</span>
	<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">displayState</span> = StageDisplayState.<span style="color: #006600;">FULL_SCREEN</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">// activate mouseLock</span>
	<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">mouseLock</span> = <span style="color: #000000; font-weight: bold;">true</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">// register event listener</span>
	<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MOUSE_MOVE</span>, <span style="color: #0066CC;">onMouseMove</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
protected <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onMouseMove</span><span style="color: #66cc66;">&#40;</span>event:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">displayState</span> == StageDisplayState.<span style="color: #006600;">FULL_SCREEN</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">// movementX and movementY contain mouseLock delta positions</span>
		<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;movementX: &quot;</span>+event.<span style="color: #006600;">movementX</span> + <span style="color: #ff0000;">&quot; - movementY: &quot;</span> + event.<span style="color: #006600;">movementY</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<h3>Right Click</h3>
<p>Right click allows you to display your own context menu or in terms of first-person-shooter use another weapon or action, like throw a flare. The nice side-effect is that by registering right click on stage, you can get rid of the default &#8220;About Flash Player&#8221; context menu.</p>
<p>The usage is simple, like with standard CLICK:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">// register right click listener</span>
<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">RIGHT_CLICK</span>, onRightClickNow<span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">// ...</span>
<span style="color: #808080; font-style: italic;">// the event listener itself</span>
protected <span style="color: #000000; font-weight: bold;">function</span> onRightClickNow<span style="color: #66cc66;">&#40;</span>event:MouseEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;right click&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<h3>Middle Click</h3>
<p>Same approach as Right Click, just register MouseEvent.MIDDLE_CLICK event.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">MIDDLE_CLICK</span>, onMiddleClick<span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<h3>Setting up the Flash Builder</h3>
<p>To access the new features you need to link new <a href="http://labs.adobe.com/downloads/flashplayer11-2.html"><strong>playerglobal.swc</strong> (download here)</a> in you Flash Builder project. See screenshot:<br />
<a href="http://www.flashrealtime.com/wp-content/uploads/2012/02/Screen-Shot-2012-02-22-at-1.42.15-PM.png"><img src="http://www.flashrealtime.com/wp-content/uploads/2012/02/Screen-Shot-2012-02-22-at-1.42.15-PM.png" alt="" title="Screen Shot 2012-02-22 at 1.42.15 PM" width="480" class="alignnone size-full wp-image-2624" /></a> </p>
<p>You also need to set <strong>-swf-version=15</strong> in ActionScript compiler settings. See screenshot:<br />
<a href="http://www.flashrealtime.com/wp-content/uploads/2012/02/Screen-Shot-2012-02-22-at-1.44.33-PM.png"><img src="http://www.flashrealtime.com/wp-content/uploads/2012/02/Screen-Shot-2012-02-22-at-1.44.33-PM.png" alt="" title="Screen Shot 2012-02-22 at 1.44.33 PM" width="480" class="alignnone size-full wp-image-2625" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashrealtime.com/mouselock-right-click-middle-click-in-flash-player-11-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More On The Flash Roadmap</title>
		<link>http://forta.com/blog/index.cfm/2012/2/22/More-On-The-Flash-Roadmap?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=more-on-the-flash-roadmap</link>
		<comments>http://forta.com/blog/index.cfm/2012/2/22/More-On-The-Flash-Roadmap#comments</comments>
		<pubDate>Wed, 22 Feb 2012 12:18:00 +0000</pubDate>
		<dc:creator>Ben Forta</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://forta.com/blog/index.cfm/2012/2/22/More-On-The-Flash-Roadmap</guid>
		<description><![CDATA[
				
				We've published the Adobe roadmap for the Flash runtimes to provide clarity about the future of Flash. Also, see this brief post on Adobe and Google Partnering for Flash Player on Linux. 
				]]></description>
			<content:encoded><![CDATA[
				
				We've published the <a href="http://www.adobe.com/devnet/flashplatform/whitepapers/roadmap.html">Adobe roadmap for the Flash runtimes</a> to provide clarity about the future of Flash. Also, see this brief post on <a href="http://blogs.adobe.com/flashplayer/2012/02/adobe-and-google-partnering-for-flash-player-on-linux.html">Adobe and Google Partnering for Flash Player on Linux</a>. 
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/more-on-the-flash-roadmap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Determining the HTTP request method in ColdFusion</title>
		<link>http://www.raymondcamden.com/index.cfm/2012/2/22/Determining-the-HTTP-request-method-in-ColdFusion?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=determining-the-http-request-method-in-coldfusion</link>
		<comments>http://www.raymondcamden.com/index.cfm/2012/2/22/Determining-the-HTTP-request-method-in-ColdFusion#comments</comments>
		<pubDate>Wed, 22 Feb 2012 11:53:00 +0000</pubDate>
		<dc:creator>Raymond Camden's Blog</dc:creator>
				<category><![CDATA[ColdFusion]]></category>

		<guid isPermaLink="false">http://www.raymondcamden.com/index.cfm/2012/2/22/Determining-the-HTTP-request-method-in-ColdFusion</guid>
		<description><![CDATA[
				
				
				I was talking to someone recently about REST and ColdFusion 10 (something I'd like to demo here soon) and the question of HTTP methods came up. One of the interesting things ColdFusion 10's REST support allows for is CFC methods locked d...]]></description>
			<content:encoded><![CDATA[
				
				
				I was talking to someone recently about REST and ColdFusion 10 (something I'd like to demo here soon) and the question of HTTP methods came up. One of the interesting things ColdFusion 10's REST support allows for is CFC methods locked down to a part...
				
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/determining-the-http-request-method-in-coldfusion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Blogging the Mobile Learning Revolution as it Happens [#mLearning]</title>
		<link>http://rjacquez.com/blogging-the-mobile-learning-revolution-as-it-happens-mlearning/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=blogging-the-mobile-learning-revolution-as-it-happens-mlearning&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=blogging-the-mobile-learning-revolution-as-it-happens-mlearning</link>
		<comments>http://rjacquez.com/blogging-the-mobile-learning-revolution-as-it-happens-mlearning/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=blogging-the-mobile-learning-revolution-as-it-happens-mlearning#comments</comments>
		<pubDate>Tue, 21 Feb 2012 14:10:17 +0000</pubDate>
		<dc:creator>RJ Jacquez</dc:creator>
				<category><![CDATA[eLearning]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://rjacquez.com/?p=1346</guid>
		<description><![CDATA[<div><a href="http://twitter.com/share?url=http://rjacquez.com/blogging-the-mobile-learning-revolution-as-it-happens-mlearning/&#38;text=Blogging%20the%20Mobile%20Learning%20Revolution%20as%20it%20Happens%20%5B#mLearning%5D&#38;via=rjacquez&#38;related="><img align="left" src="http://rjacquez.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none" alt="" /></a></div>
It has been roughly two months since I left Adobe and I could not be happier with every aspect of my life. People ask me all the time what I’m going to do next and for the most part I say I still don’t know exactly, and then in a more serious note, I say [...]]]></description>
			<content:encoded><![CDATA[
<div class="twitterbutton" style="display: block; text-align: left;"><a href="http://twitter.com/share?url=http://rjacquez.com/blogging-the-mobile-learning-revolution-as-it-happens-mlearning/&amp;text=Blogging%20the%20Mobile%20Learning%20Revolution%20as%20it%20Happens%20%5B#mLearning%5D&amp;via=rjacquez&amp;related="><img align="left" src="http://rjacquez.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>
<p><a href="http://rjacquez.com/wp-content/uploads/2012/02/mLearning-Revolutionjpg.jpg"><img class="size-medium wp-image-1351 aligncenter" title="mLearning Revolutionjpg" src="http://rjacquez.com/wp-content/uploads/2012/02/mLearning-Revolutionjpg-285x300.jpg" alt="" width="285" height="300" /></a><br />
It has been roughly <a href="http://rjacquez.com/the-end-of-the-road-for-me-at-adobe-2012-and-beyond/">two months since I left Adobe</a> and I could not be happier with every aspect of my life. People ask me all the time what I’m going to do next and for the most part I say I still don’t know exactly, and then in a more serious note, I say that things are becoming more clear every day. I am going through this great exploratory phase where I embrace every opportunity that comes my way. I’m learning a great deal of new things and meeting great, supportive people along the way.</p>
<p>From everything I’m doing and Blogging about, there are certain topics that I’m clearly more passionate about. One of those topics is this mobile thing we are witnessing.</p>
<p>There’s no denying that we are in the midst of a mobile revolution that requires new ways of thinking about developing content and about meeting the ever-growing expectations we have as mobile users. This revolution needs new leaders and innovators, as well as new tools (or at least highly customized versions of existing ones). Mobile in general also requires new user experiences that in my opinion are very different from their desktop counterparts.</p>
<p>This mobile revolution is drastically changing everything we do today, from the way we shop and find the best deals; to how we consume the news and the way we communicate with people around the world. And yes, mobile is also changing the way we are thinking about Learning and developing the next generation of courses, most of us are calling this mobile learning or mLearning.</p>
<p>Just today a new statistic came out stating that <a href="http://searchengineland.com/less-than-10-of-the-web-in-2012-is-mobile-ready-112101">less that 10% of the web today is mobile-ready</a> and I would imagine that number drops dramatically when it comes to learning content being mobile-ready.</p>
<p>I don’t know about you, but I want to be an integral part of this revolution as it happens, and so today, I would like to share some new things I am doing as I ‘<strong>Blog the Mobile Learning Revolution</strong>’ in real time.</p>
<p>1) I’m officially changing the title of this Blog from Trends in eLearning and mLearning to <strong>The Mobile Learning Revolution Blog</strong>. It’s a subtle change but an important one nevertheless. The more I blog about different things, the more I realize that every time I talk about mobile, be it through statistics or Trends to watch, or educational apps I try, or even Interviews I do, I always get passionate about the topic. Furthermore, if I analyze what most of my Readers respond to and ReTweet the most, data shows that it’s these mobile topics that are at the top, so I think this new focus will resonate well with you, too.</p>
<p>2) I’m also launching a new Facebook page for my blog <a href="http://www.facebook.com/pages/The-Mobile-Learning-Revolution-Blog/345204552186721">HERE</a>. Over the weekend, I read this great article entitled <a href="http://mashable.com/2012/02/17/social-media-bloggers-tips/">10 Social Media Tips for Bloggers</a> and tip #2, specifically got me excited about launching a Facebook page for my Blog. I’ve been thinking about how to best use Facebook and then I read this article and thought what a great idea. My plan isn’t however to just broadcast my blog posts on Facebook, but rather to use the threaded conversations feature, to share and test thoughts and ideas that are trending for me. This is something I do on Twitter and when I see that something picks up steam because it’s compelling, I then head over to my blog for a more thorough post. What can you do now? <a href="http://www.facebook.com/pages/The-Mobile-Learning-Revolution-Blog/345204552186721">You can navigate to this page and ‘Like’</a> it and let’s start collaborating on different ideas around mobile learning.</p>
<p>3) Finally, I’m also launching a new Blog, specifically for sharing my experience as an Evangelist. One thing I have learned as I slowly write my eBook on what I learned at Adobe and why companies need passionate Evangelists in the new Social Web, is that the best way to stay on track and motivated about writing a book is through a dedicated Blog. Having said that, I started a new Blog here: <a href="http://www.techevangelistblog.com/">http://www.techevangelistblog.com/</a> At the time of this writing, I’m still working on the first post, but if you are interested in what I have to say about being an Evangelist, Social Media and Blogging, you can subscribe now.</p>
<p>So there you have it, from now on when someone asks me what I am doing, I will answer with “I’m Blogging the Mobile Learning Revolution as it happens.”</p>
<p>I hope you join me.</p>
<p><iframe style="border: none; overflow: hidden; width: 292px; height: 590px;" src="http://www.facebook.com/plugins/likebox.php?href=http://www.facebook.com/pages/The-Mobile-Learning-Revolution-Blog/345204552186721&amp;width=292&amp;height=590&amp;colorscheme=light&amp;show_faces=true&amp;border_color&amp;stream=true&amp;header=true" frameborder="0" scrolling="no" width="320" height="240"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://rjacquez.com/blogging-the-mobile-learning-revolution-as-it-happens-mlearning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eLearning Suite Specialist Certification Announced!</title>
		<link>http://blogs.adobe.com/captivate/2012/02/elearning-suite-specialist-certification-announced.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=elearning-suite-specialist-certification-announced</link>
		<comments>http://blogs.adobe.com/captivate/2012/02/elearning-suite-specialist-certification-announced.html#comments</comments>
		<pubDate>Tue, 21 Feb 2012 12:24:27 +0000</pubDate>
		<dc:creator>Pooja Jaisingh</dc:creator>
				<category><![CDATA[ACE]]></category>
		<category><![CDATA[ACS]]></category>
		<category><![CDATA[Adobe Captivate 5.5]]></category>
		<category><![CDATA[adobe certified expert]]></category>
		<category><![CDATA[Adobe Certified Specialist]]></category>
		<category><![CDATA[Adobe eLearning Suite 2.5]]></category>
		<category><![CDATA[eLearning Suite]]></category>
		<category><![CDATA[Rapid Authoring]]></category>
		<category><![CDATA[rapid elearning]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/captivate/?p=4011</guid>
		<description><![CDATA[We are proud to let you know that we have introduced a new specialist certification program for Adobe eLearning Suite. To become an eLearning Suite Specialist, you need to pass two required ACE exams and one elective ACE exam. Here are the details: Req...]]></description>
			<content:encoded><![CDATA[We are proud to let you know that we have introduced a new specialist certification program for Adobe eLearning Suite. To become an eLearning Suite Specialist, you need to pass two required ACE exams and one elective ACE exam. Here are the details: Required ACE exams for eLearning Suite Specialist: Adobe Captivate Adobe Captivate with [...]]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/captivate/2012/02/elearning-suite-specialist-certification-announced.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Andy Trice Explains PhoneGap</title>
		<link>http://forta.com/blog/index.cfm/2012/2/20/Andy-Trice-Explains-PhoneGap?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=andy-trice-explains-phonegap</link>
		<comments>http://forta.com/blog/index.cfm/2012/2/20/Andy-Trice-Explains-PhoneGap#comments</comments>
		<pubDate>Tue, 21 Feb 2012 04:04:00 +0000</pubDate>
		<dc:creator>Ben Forta</dc:creator>
				<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://forta.com/blog/index.cfm/2012/2/20/Andy-Trice-Explains-PhoneGap</guid>
		<description><![CDATA[
				
				Fellow Adobe evangelist Andy Trice has written a very useful post entitled What is PhoneGap? &#38; Other Common Questions. 
				]]></description>
			<content:encoded><![CDATA[
				
				Fellow Adobe evangelist Andy Trice has written a very useful post entitled <a href="http://www.tricedesigns.com/2012/02/14/what-is-phonegap-other-common-questions/">What is PhoneGap? & Other Common Questions</a>. 
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/andy-trice-explains-phonegap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>PhoneGap on Windows Phone via OSX</title>
		<link>http://www.tricedesigns.com/2012/02/20/phonegap-on-windows-phone-via-osx/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=phonegap-on-windows-phone-via-osx</link>
		<comments>http://www.tricedesigns.com/2012/02/20/phonegap-on-windows-phone-via-osx/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 17:24:09 +0000</pubDate>
		<dc:creator>Andrew Trice</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[phonegap]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.tricedesigns.com/?p=1622</guid>
		<description><![CDATA[I am embarking on a new PhoneGap project that will have to run on many platforms&#8230; iOS, Android, BlackBerry, and Windows Phone.  This will actually be my first foray into modern Window Phone development. (I did some experimental work with the Windows Mobile platform many years ago, but a lot has changed since then.) One of [...]]]></description>
			<content:encoded><![CDATA[<p>I am embarking on a new <a href="http://www.phonegap.com" >PhoneGap</a> project that will have to run on many platforms&#8230; iOS, Android, BlackBerry, and Windows Phone.  This will actually be my first foray into modern Window Phone development. (<em>I did some experimental work with the Windows Mobile platform many years ago, but a lot has changed since then.)</em></p>
<p>One of the caveats with Windows Phone development is that it has to be done from Windows, just like iOS development has to be done from OS X <em>(normally, although some cross platform technologies enable development via other OS/platforms)</em>.</p>
<p>Of course, I did not want to give up OS X, so here&#8217;s how I have my environment setup&#8230;  I have a virtual machine running Windows 7, in which I can run the Visual Studio development tools.   I am able to deploy to a physical Windows Phone device using the USB connection.</p>
<div id="attachment_1623" class="wp-caption aligncenter" style="width: 535px"><img class="size-full wp-image-1623" title="winphone setup" src="http://www.tricedesigns.com/wp-content/uploads/2012/02/winphone-setup.png" alt="" width="525" height="331" /><p class="wp-caption-text">Windows Phone Development with PhoneGap, on OS X</p></div>
<p>However, with this configuration <span style="color: #ff0000;">you will <strong>NOT</strong> be able to use the Window Phone emulator,</span> which is a part of the Windows Phone development SDK.   The Windows Phone emulator is not supported inside of a VMWare virtual machine because the emulated operating system environment does not meet the <a href="http://msdn.microsoft.com/en-us/library/ff626524(v=vs.92).aspx" >minimum requirements</a> (specifically the graphics drivers are not WDDM 1.1 compliant).   If you try to use the phone emulator inside the virtual machine, you will just get a blank screen.   I spent a few hours trying to find a workaround, to no avail.   You can use the Windows Phone emulator if you boot your Mac into Windows using <a href="http://www.apple.com/support/bootcamp/" >Bootcamp</a>, but I wanted to keep OS X as my primary operating system.</p>
<p>Being able to deploy directly to a device works for me, and is (in my opinion) better than being able to deploy to an emulator, thus I am happy with this workflow.   I have heard that other people have had trouble deploying to Windows Phone devices through a VMWare emulator, so here are the details on how I have my environment setup and a few &#8220;getting started&#8221; links for PhoneGap development on Windows Phone:</p>
<p><em>Note: All of the project setup work will be done through the Windows virtual machine instance.</em></p>
<p>There is a detailed &#8220;Getting Started&#8221; guide for PhoneGap and Windows Phone available at <a href="http://phonegap.com/start#wp" >http://phonegap.com/start#wp</a>.  This will provide you with all the information that you need to get started with PhoneGap applications for Windows Phone.</p>
<p>As a part of the setup process, you will need to download and install the Windows Phone SDK from <a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=27570" >http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=27570</a>.   This will include a copy of Visual Studio Express 2010 for Windows Phone, as well as additional tools for Windows Phone development.</p>
<p>To be able to deploy an application to a physical Windows Phone device, you will need to register as a Windows Phone developer on MSDN App Hub at <a href="http://create.msdn.com/en-US/home/membership" >http://create.msdn.com/en-US/home/membership</a>.   This is a very similar model to Apple&#8217;s iOS developer program.  There is a $99 annual fee, and once you are registered, you will be able to debug on devices and distribute applications via the <a href="http://www.windowsphone.com/en-US/marketplace?wa=wsignin1.0" >Windows Phone Marketplace</a>.   However, debug provisioning is much easier.   Instead of signing each application with a debug certificate, you just have to register your device as a development device.   Once the device is registered, you will be able to deploy to it without any other special steps; this is very similar to the <a href="http://www.tricedesigns.com/2011/09/15/flexair-on-devices-from-flash-builder-to-the-nook-store/" >provisioning model for Nook devices</a>.</p>
<p>When linking my AppHub account to my Windows Live account (a required step), I ran into a vague error message &#8220;<span style="color: #800000;">There&#8217;s a temporary problem with the service.  Please try again.  If you continue to get this error message, try again later.</span>&#8221;   After scouring the web for this error message, I found a few threads that mentioned this error is likely the result of an incomplete profile for your Windows Live account. Sure enough, I went into <a href="http://www.live.com" >live.com</a> and filled out my profile (including contact information), and this error went away.</p>
<h3>My Setup</h3>
<p>Below are the specifics for my setup; I did not have any issues connecting a Windows Phone device with this configuration.</p>
<ul>
<li><a href="http://www.apple.com/macbookpro/" >MacBook Pro</a></li>
<li><a href="http://www.vmware.com/products/fusion/overview.html" >VMWare Fusion 4</a></li>
<li><a href="http://www.microsoft.com/en-us/windows/enterprise/products-and-technologies/windows-7/default.aspx" >Windows 7 Enterprise</a> (Virtual Machine)</li>
<li><a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions/windows-phone-developer-tools" >Visual Studio Express 2010 for Windows Phone</a> (part of Win Phone SDK)</li>
<li><a href="http://www.nokia.com/us-en/products/phone/lumia710/" >Nokia Lumia 710</a></li>
</ul>
<p style="padding-left: 60px;"><img src="http://i.nokia.com/image/view/-/689740/highRes/1/-/nokia-lumia-710-reviews-png-png.png" alt="" /></p>
<h3>Device Registration</h3>
<p>To deploy an application to a Windows Phone device, you just have to use the <a href="http://msdn.microsoft.com/en-us/library/ff769508(v=vs.92).aspx" >Windows Phone Developer Registration Tool</a>, and walk through a few simple steps to associate your phone with your developer account.  This tool is installed when you install the Windows Phone SDK.   You can read full details about debugging Windows Phone applications on <a href="http://msdn.microsoft.com/en-us/library/gg588378(v=VS.92).aspx" >MSDN</a>.</p>
<p>As I mentioned above, I have heard that others have encountered problems when trying to deploy applications to Windows Phone devices via a virtual machine on OSX, but I have not had any problems with this configuration.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tricedesigns.com/2012/02/20/phonegap-on-windows-phone-via-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Content Curation and the end of Intellectual Property</title>
		<link>http://blogs.adobe.com/captivate/2012/02/content-curation-and-the-end-of-intellectual-property.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=content-curation-and-the-end-of-intellectual-property</link>
		<comments>http://blogs.adobe.com/captivate/2012/02/content-curation-and-the-end-of-intellectual-property.html#comments</comments>
		<pubDate>Mon, 20 Feb 2012 15:58:02 +0000</pubDate>
		<dc:creator>Allen Partridge</dc:creator>
				<category><![CDATA["Elearning authoring tools"]]></category>
		<category><![CDATA[Adobe Captivate 5.5]]></category>
		<category><![CDATA[Conferences and events]]></category>
		<category><![CDATA[eLearning this week]]></category>
		<category><![CDATA[Partridge]]></category>
		<category><![CDATA[Rapid Authoring]]></category>
		<category><![CDATA[rapid elearning]]></category>
		<category><![CDATA[Whats new]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/captivate/?p=3992</guid>
		<description><![CDATA[The past couple of years I&#8217;ve been blessed to get to go to Brussels for Thanksgiving and honored to meet with some of the world’s foremost leaders, thinkers, and even trouble-makers in the area of education. The European Union sponsors a wonder...]]></description>
			<content:encoded><![CDATA[The past couple of years I&#8217;ve been blessed to get to go to Brussels for Thanksgiving and honored to meet with some of the world’s foremost leaders, thinkers, and even trouble-makers in the area of education. The European Union sponsors a wonderful conference on Media and Learning &#8211; which is genuinely filled with amazing attendees [...]]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/captivate/2012/02/content-curation-and-the-end-of-intellectual-property.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ColdFusion 10 Web Socket Demos</title>
		<link>http://www.raymondcamden.com/index.cfm/2012/2/20/ColdFusion-10-Web-Socket-Demos?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=coldfusion-10-web-socket-demos</link>
		<comments>http://www.raymondcamden.com/index.cfm/2012/2/20/ColdFusion-10-Web-Socket-Demos#comments</comments>
		<pubDate>Mon, 20 Feb 2012 13:08:00 +0000</pubDate>
		<dc:creator>Raymond Camden's Blog</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.raymondcamden.com/index.cfm/2012/2/20/ColdFusion-10-Web-Socket-Demos</guid>
		<description><![CDATA[
				
				
				One of my favorite new features in ColdFusion 10 is the powerful web socket support. If you've never looked at web sockets before, you can check out the Wikipedia entry. Simply put, it is  a simple way to create a two way connection betw...]]></description>
			<content:encoded><![CDATA[
				
				
				One of my favorite new features in ColdFusion 10 is the powerful web socket support. If you've never looked at web sockets before, you can check out the Wikipedia entry. Simply put, it is  a simple way to create a two way connection between multiple ...
				
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/coldfusion-10-web-socket-demos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Quiz Reports in Course Companion for Adobe Captivate</title>
		<link>http://blogs.adobe.com/captivate/2012/02/adobe-captivate-course-companion-quiz-reports.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quiz-reports-in-course-companion-for-adobe-captivate</link>
		<comments>http://blogs.adobe.com/captivate/2012/02/adobe-captivate-course-companion-quiz-reports.html#comments</comments>
		<pubDate>Mon, 20 Feb 2012 05:44:48 +0000</pubDate>
		<dc:creator>Subrahmanya Kumar Giliyaru</dc:creator>
				<category><![CDATA[Learner Analytics]]></category>
		<category><![CDATA[Learner Engagement]]></category>
		<category><![CDATA[Whats new]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/captivate/?p=3964</guid>
		<description><![CDATA[I hope many of you have already tried the course companion by now and have taken a look at the Dashboard. In my previous blog, I explained the concept of Progress Index. In this blog, I will explain the Quiz reports that you can access by clicking the ...]]></description>
			<content:encoded><![CDATA[I hope many of you have already tried the course companion by now and have taken a look at the Dashboard. In my previous blog, I explained the concept of Progress Index. In this blog, I will explain the Quiz reports that you can access by clicking the Quiz tab on the Dashboard. Quiz reports provide [...]]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/captivate/2012/02/adobe-captivate-course-companion-quiz-reports.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connect, Inspire, and ENGAGE your Learners</title>
		<link>http://blogs.adobe.com/captivate/2012/02/connect-inspire-and-engage-your-learners.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=connect-inspire-and-engage-your-learners</link>
		<comments>http://blogs.adobe.com/captivate/2012/02/connect-inspire-and-engage-your-learners.html#comments</comments>
		<pubDate>Sun, 19 Feb 2012 17:07:28 +0000</pubDate>
		<dc:creator>Pooja Jaisingh</dc:creator>
				<category><![CDATA[Conferences and events]]></category>
		<category><![CDATA[Effective eLearning]]></category>
		<category><![CDATA[ENGAGE Model]]></category>
		<category><![CDATA[Engaging eLearning]]></category>
		<category><![CDATA[Inspiring eLearning]]></category>
		<category><![CDATA[Rapid Authoring]]></category>
		<category><![CDATA[rapid elearning]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/captivate/?p=3956</guid>
		<description><![CDATA[This week at Training2012 conference, one of the best sessions I attended was ‘Creating Learning Experiences that Connect, Inspire, and ENGAGE’. The session was conducted by Dr. Vicki Halsey who is absolutely inspiring and full of positive energy. ...]]></description>
			<content:encoded><![CDATA[This week at Training2012 conference, one of the best sessions I attended was ‘Creating Learning Experiences that Connect, Inspire, and ENGAGE’. The session was conducted by Dr. Vicki Halsey who is absolutely inspiring and full of positive energy. The way she engaged the attendees in the session proved that her formula of engaging the students [...]]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/captivate/2012/02/connect-inspire-and-engage-your-learners.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speech Recognition ANE – Source</title>
		<link>http://blog.immanuelnoel.com/2012/02/19/speech-recognition-ane-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=speech-recognition-ane-%25e2%2580%2593-source</link>
		<comments>http://blog.immanuelnoel.com/2012/02/19/speech-recognition-ane-source/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 10:31:18 +0000</pubDate>
		<dc:creator>Immanuel Noel</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Actionscript Native Extensions]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[ane]]></category>
		<category><![CDATA[Flash Builder 4.6]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Native Componets]]></category>
		<category><![CDATA[Native Extensions]]></category>
		<category><![CDATA[Native UI]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[Speech]]></category>
		<category><![CDATA[Speech Recognition]]></category>

		<guid isPermaLink="false">http://blog.immanuelnoel.com/?p=1079</guid>
		<description><![CDATA[As a follow on for the Speech Recognition ANE I put up for download a while back, here is the a post to give out the source files. The source can be downloaded here. If you are looking for the compiled ANE instead, click here The contents of the zip archive are, Android Native Project [...]]]></description>
			<content:encoded><![CDATA[<p>As a follow on for the <a title="New ActionScript Native Extension – Speech Recognition" href="http://blog.immanuelnoel.com/2011/12/07/new-actionscript-native-extension-speech-recognition/" >Speech Recognition ANE</a> I put up for download a while back, here is the a post to give out the source files.</p>
<p>The source can be downloaded <a title="Speech ANE Source" href="http://inoel.in/speech-s-android" >here</a>.</p>
<blockquote><p>If you are looking for the compiled ANE instead, click <a title="New ActionScript Native Extension – Speech Recognition" href="http://blog.immanuelnoel.com/2011/12/07/new-actionscript-native-extension-speech-recognition/" >here</a></p></blockquote>
<p>The contents of the zip archive are,</p>
<ul>
<li>Android Native Project</li>
<li>Actionscript Library Project</li>
<li>Files required for compilation</li>
</ul>
<p><span id="more-1079"></span><br />
The Library is responsible for creating a bridge between Actionscript and Native code. The code written here is also the entry point for APIs exposed by the ANE. Library and Native Projects are fairly descriptive and appropriately commented. I will just go through things that need to be in place to get this compiled.</p>
<blockquote><p>If you just want to go ahead and try compilation, skip to the 5th step</p></blockquote>
<ul>
<li>Import project listed under <span style="color: #ff9900;">Android Native Project</span> into a preferred IDE and export a JAR</li>
<li>Import project listed under <span style="color: #ff9900;">Actionscript Library Project</span> into Flash Builder and export a SWC</li>
<li>Notice the organization of files in the <span style="color: #ff9900;">Files required for compilation</span> directory. Replace JAR, SWC and extension.xml files in the appropriate directories with the one&#8217;s you just exported</li>
<li>Without disturbing what you have already done, rename SpeechLibrary.swc</code> to SpeechLibrary.zip</code> and extract the library.swf file. Replace the one in <span style="color: #ff9900;">Files required for compilation/NativeAndroid</span>, with this.</li>
<li>Open <span style="color: #ff9900;">Files required for compilation/compile.bat</span> in your favorite text editor. Going forward, I will be referring only to the Windows platform. For MAC, please read <a href="http://www.adobe.com/devnet/air/articles/developing-native-extensions-air.html" title="Adobe - Developing Native Extensions for Air" >this</a> document</li>
<li>Customize attributes for 'root_directory' and 'signing_options' (Namely, CERTIFICATE_PATH - a P12 file and CERTIFICATE_PASSWORD)</li>
<li>Exit editor, and run the compile.bat file to generate an ANE file !</li>
</ul>
<p>That is as easy as it gets to generate an ANE file !</p>
<p>Feel free to make changes to the source and experiment. If you do extend the source, say make it iOS compatible, I'd be happy to link up here! </p>
<p>Here is another great resource you must have a look at before building native extensions, http://www.adobe.com/devnet/air/articles/developing-native-extensions-air.html</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.immanuelnoel.com/2012/02/19/speech-recognition-ane-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ColdFusion 10 Demo Dump</title>
		<link>http://www.raymondcamden.com/index.cfm/2012/2/18/ColdFusion-10-Demo-Dump?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=coldfusion-10-demo-dump</link>
		<comments>http://www.raymondcamden.com/index.cfm/2012/2/18/ColdFusion-10-Demo-Dump#comments</comments>
		<pubDate>Sat, 18 Feb 2012 15:37:00 +0000</pubDate>
		<dc:creator>Raymond Camden's Blog</dc:creator>
				<category><![CDATA[ColdFusion]]></category>

		<guid isPermaLink="false">http://www.raymondcamden.com/index.cfm/2012/2/18/ColdFusion-10-Demo-Dump</guid>
		<description><![CDATA[
				
				
				With the public release of ColdFusion 10, I'll be ramping up my demo posts now that we can all play with the code. I'll also be updating my own server to ColdFusion 10 so folks can see them running in a live environment. However - it's a...]]></description>
			<content:encoded><![CDATA[
				
				
				With the public release of ColdFusion 10, I'll be ramping up my demo posts now that we can all play with the code. I'll also be updating my own server to ColdFusion 10 so folks can see them running in a live environment. However - it's also Mardi Gra...
				
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/coldfusion-10-demo-dump/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.raymondcamden.com/enclosures/forzeus.zip" length="1759234" type="application/x-zip-compressed" />
		</item>
		<item>
		<title>The HTML5 contest has closed- 5 more days to put in your votes!</title>
		<link>http://blogs.adobe.com/captivate/2012/02/the-html5-contest-has-closed-5-more-days-to-put-in-your-votes.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-html5-contest-has-closed-5-more-days-to-put-in-your-votes</link>
		<comments>http://blogs.adobe.com/captivate/2012/02/the-html5-contest-has-closed-5-more-days-to-put-in-your-votes.html#comments</comments>
		<pubDate>Sat, 18 Feb 2012 08:33:58 +0000</pubDate>
		<dc:creator>Shameer Ayyappan</dc:creator>
				<category><![CDATA[Adobe Captivate]]></category>
		<category><![CDATA[eLearning this week]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[html5 eLearning]]></category>
		<category><![CDATA[rapid elearning]]></category>
		<category><![CDATA[rapid elearning authoring tools]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/captivate/?p=3950</guid>
		<description><![CDATA[The Captivate HTML5 contest has closed for entries. The viewing gallery is still open to give you an opportunity to cast your vote. Thank you for participating in this contest. The general interest can be gauged from the fact that many of the top entri...]]></description>
			<content:encoded><![CDATA[The Captivate HTML5 contest has closed for entries. The viewing gallery is still open to give you an opportunity to cast your vote. Thank you for participating in this contest. The general interest can be gauged from the fact that many of the top entries have close to 10,000 views and 1,500 FB ‘Likes’ each. [...]]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/captivate/2012/02/the-html5-contest-has-closed-5-more-days-to-put-in-your-votes.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Repurposing PhoneGap Apps as Desktop Apps</title>
		<link>http://www.tricedesigns.com/2012/02/17/repurposing-phonegap-apps-as-desktop-apps/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=repurposing-phonegap-apps-as-desktop-apps</link>
		<comments>http://www.tricedesigns.com/2012/02/17/repurposing-phonegap-apps-as-desktop-apps/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 21:52:50 +0000</pubDate>
		<dc:creator>Andrew Trice</dc:creator>
				<category><![CDATA[desktop]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[phonegap]]></category>

		<guid isPermaLink="false">http://www.tricedesigns.com/?p=1605</guid>
		<description><![CDATA[I was inspired to write this post by several recent conversations.  I was in a debate about whether with the Flex/Flash platform you could easily repurpose content to the desktop using Adobe AIR (and vice-versa), but that you couldn&#8217;t easily do that with PhoneGap applications. (My stance was that yes, you could repurpose content.) I [...]]]></description>
			<content:encoded><![CDATA[<p>I was inspired to write this post by several recent conversations.  I was in a debate about whether with the Flex/Flash platform you could easily repurpose content to the desktop using Adobe AIR (and vice-versa), but that you couldn&#8217;t easily do that with <a href="http://www.phonegap.com" >PhoneGap</a> applications. <em>(My stance was that yes, you could repurpose content.)</em></p>
<p>I wanted to make sure that people were aware that you <em><strong>can</strong></em> repurpose your content, and here&#8217;s an example of how.</p>
<p>A while back, I wrote a sample PhoneGap application that allows you to <a href="http://www.tricedesigns.com/2011/12/05/introducing-the-us-census-browser-application/" >browse information from the 2010 US Census</a>.  You can read more about this application and download the source code <a href="http://www.tricedesigns.com/2011/12/05/introducing-the-us-census-browser-application/" >here</a>. This application supports lots of platforms&#8230; iOS, Android, BlackBerry, and web <em>(everything except IE because I was targetting WebKit browsers)</em>.</p>
<p>While this application is a mobile app wrapped in the PhoneGap container, I actually didn&#8217;t use any PhoneGap-specific libraries, so it was very easy to repurpose as a desktop application.   I created an AIR version of this application, which you can download at:</p>
<ul>
<li><a href="http://tricedesigns.com/census/USCensusBrowser.air" >tricedesigns.com/census/USCensusBrowser.air</a></li>
</ul>
<div id="attachment_1608" class="wp-caption aligncenter" style="width: 560px"><a href="http://www.tricedesigns.com/census/USCensusBrowser.air"><img class="size-full wp-image-1608" title="census-desktop" src="http://www.tricedesigns.com/wp-content/uploads/2012/02/census-desktop.png" alt="" width="550" height="413" /></a><p class="wp-caption-text">US Census Browser in OSX</p></div>
<p>You can build complete AIR applications using HTML and JavaScript, even with full access to AIR APIs (network, file access, etc.).   You can read more about building AIR apps with HTML and JavaScript at: <a href="http://help.adobe.com/en_US/air/build/WS5b3ccc516d4fbf351e63e3d118666ade46-7ecc.html" >http://help.adobe.com/en_US/air/build/WS5b3ccc516d4fbf351e63e3d118666ade46-7ecc.html</a></p>
<p>I had to use my <a href="https://github.com/triceam/US-Census-Browser/tree/android2.x" >Android 2.x branch of the US Census Browser code</a> because the WebKit instance inside of AIR doesn&#8217;t support SVG.  I also changed the container scrolling to use normal CSS &#8220;overflow: auto&#8221; instead of using iScroll for touch-based scrolling. There were a few other one-off CSS changes to tweak the layout in the AIR web container, but otherwise the code is identical.</p>
<p>You just need to create an AIR application XML file and point it to your HTML content, and then package it using ADT.</p>
<p>Here&#8217;s my AIR application XML:</p>
<pre class="brush: xml; title: ; notranslate">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;application xmlns=&quot;http://ns.adobe.com/air/application/3.1&quot;&gt;
    &lt;id&gt;com.tricedesigns.USCensusBrowser&lt;/id&gt;
    &lt;versionNumber&gt;1.0&lt;/versionNumber&gt;
    &lt;filename&gt;USCensusBrowser&lt;/filename&gt;
    &lt;name&gt;US Census Browser&lt;/name&gt;
    &lt;initialWindow&gt;
        &lt;content&gt;www/index.html&lt;/content&gt;
        &lt;visible&gt;true&lt;/visible&gt;
        &lt;width&gt;1024&lt;/width&gt;
        &lt;height&gt;768&lt;/height&gt;
        &lt;minSize&gt;800 600&lt;/minSize&gt;
    &lt;/initialWindow&gt;
    &lt;icon&gt;
		&lt;image16x16&gt;icons/icon16.png&lt;/image16x16&gt;
		&lt;image32x32&gt;icons/icon32.png&lt;/image32x32&gt;
		&lt;image48x48&gt;icons/icon48.png&lt;/image48x48&gt;
		&lt;image128x128&gt;icons/icon128.png&lt;/image128x128&gt;
	&lt;/icon&gt;
&lt;/application&gt;
</pre>
<p>Notice that the &#8220;content&#8221; node just points to my &#8220;index.html&#8221; file.</p>
<p>Here&#8217;s the command to package it:</p>
<pre class="brush: bash; title: ; notranslate">adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air HelloWorld-app.xml *</pre>
<p>You can read more about this process in the <a href="http://help.adobe.com/en_US/air/build/WS5b3ccc516d4fbf351e63e3d118666ade46-7ecc.html" >Adobe AIR documentation</a>.</p>
<p>If you were using PhoneGap APIs, you would have to migrate your code to take advantage of AIR APIs, but all other HTML/CSS/JS could be reused with minimal changes.</p>
<p>Even though I used AIR for this example, AIR isn&#8217;t the only game in town for HTML-based desktop applications&#8230;   There&#8217;s an open source project called <a href="https://github.com/maccman/macgap" >MacGap</a>, you can use <a href="http://en.wikipedia.org/wiki/HTML_Application" >HTA</a> for Windows, and it&#8217;s not hard to write a HTML/Web View wrapper for any platform. It&#8217;s even been reported that you are going to be able to<a href="http://thenextweb.com/dd/2011/06/02/windows-8-apps-to-be-built-in-html-javascript/" > write apps for Windows 8 purely using HTML &amp; JS</a>, and you would be able to repurpose your code for this as well.</p>
<p>You can check out the AIR version of the US Census Browser at:</p>
<ul>
<li><a href="http://tricedesigns.com/census/USCensusBrowser.air" >tricedesigns.com/census/USCensusBrowser.air</a></li>
</ul>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tricedesigns.com/2012/02/17/repurposing-phonegap-apps-as-desktop-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ColdFusion 10 Beta Released</title>
		<link>http://forta.com/blog/index.cfm/2012/2/17/ColdFusion-10-Beta-Released?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=coldfusion-10-beta-released</link>
		<comments>http://forta.com/blog/index.cfm/2012/2/17/ColdFusion-10-Beta-Released#comments</comments>
		<pubDate>Fri, 17 Feb 2012 21:10:00 +0000</pubDate>
		<dc:creator>Ben Forta</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://forta.com/blog/index.cfm/2012/2/17/ColdFusion-10-Beta-Released</guid>
		<description><![CDATA[
				
				We just released the beta release of ColdFusion 10. This release focuses on three main themes: unrivaled developer productivity, deep enterprise integration and simple work flow with Axis2 and Microsoft Exchange server 2010, and unique built-...]]></description>
			<content:encoded><![CDATA[
				
				We just released the beta release of ColdFusion 10. This release focuses on three main themes: unrivaled developer productivity, deep enterprise integration and simple work flow with Axis2 and Microsoft Exchange server 2010, and unique built-in suppo...
				
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/coldfusion-10-beta-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>ColdFusion 10 and ColdFusion Builder 2.0.1 Public Betas</title>
		<link>http://www.raymondcamden.com/index.cfm/2012/2/17/ColdFusion-10-and-ColdFusion-Builder-201-Public-Betas?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=coldfusion-10-and-coldfusion-builder-2-0-1-public-betas</link>
		<comments>http://www.raymondcamden.com/index.cfm/2012/2/17/ColdFusion-10-and-ColdFusion-Builder-201-Public-Betas#comments</comments>
		<pubDate>Fri, 17 Feb 2012 19:27:00 +0000</pubDate>
		<dc:creator>Raymond Camden's Blog</dc:creator>
				<category><![CDATA[ColdFusion]]></category>

		<guid isPermaLink="false">http://www.raymondcamden.com/index.cfm/2012/2/17/ColdFusion-10-and-ColdFusion-Builder-201-Public-Betas</guid>
		<description><![CDATA[
				
				
				The title says it all, the public betas of ColdFusion 10 (AKA Zeus) and ColdFusion Builder 2.0.1 are now available: http://labs.adobe.com/technologies/coldfusion10/. Hopefully by now you have a good idea what we've been adding to the pro...]]></description>
			<content:encoded><![CDATA[
				
				
				The title says it all, the public betas of ColdFusion 10 (AKA Zeus) and ColdFusion Builder 2.0.1 are now available: http://labs.adobe.com/technologies/coldfusion10/. Hopefully by now you have a good idea what we've been adding to the product, but now...
				
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/coldfusion-10-and-coldfusion-builder-2-0-1-public-betas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>ColdFusion Position In UK</title>
		<link>http://forta.com/blog/index.cfm/2012/2/17/ColdFusion-Position-In-UK?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=coldfusion-position-in-uk</link>
		<comments>http://forta.com/blog/index.cfm/2012/2/17/ColdFusion-Position-In-UK#comments</comments>
		<pubDate>Fri, 17 Feb 2012 11:21:00 +0000</pubDate>
		<dc:creator>Ben Forta</dc:creator>
				<category><![CDATA[jobs]]></category>

		<guid isPermaLink="false">http://forta.com/blog/index.cfm/2012/2/17/ColdFusion-Position-In-UK</guid>
		<description><![CDATA[
				
				Just one this week:

iprogress (Liverpool, UK) is looking for looking for a ColdFusion developer with experience in jQuery, CSS and MySQL. This is a 3 month contract that is expected to be extended to full time. Fill out this form.
 
				]]></description>
			<content:encoded><![CDATA[
				
				Just one this week:
<ul>
<li><a href="http://www.iprogress.co.uk/">iprogress</a> (Liverpool, UK) is looking for looking for a ColdFusion developer with experience in jQuery, CSS and MySQL. This is a 3 month contract that is expected to be extended to full time. <a href="http://www.iprogress.co.uk/vacancies">Fill out this form</a>.</li>
</ul> 
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/coldfusion-position-in-uk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>HOWTO: Transfer Custom Object – C Native Extensions in AIR</title>
		<link>http://www.flashrealtime.com/howto-transfer-custom-object-c-native-extensions-in-air/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=howto-transfer-custom-object-%25e2%2580%2593-c-native-extensions-in-air</link>
		<comments>http://www.flashrealtime.com/howto-transfer-custom-object-c-native-extensions-in-air/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 17:25:26 +0000</pubDate>
		<dc:creator>Tom Krcha</dc:creator>
		
		<guid isPermaLink="false">http://www.flashrealtime.com/?p=2612</guid>
		<description><![CDATA[Sometimes you want to transfer custom objects instead of predefined ones (or basic types). This is very useful, for example, when you want to construct for instance an array of positions. Position is in this case defined by an object with x, y, z properties. Let&#8217;s initiate an Array instance. I wrote a tutorial about [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http://www.flashrealtime.com/howto-transfer-custom-object-c-native-extensions-in-air/"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http://www.flashrealtime.com/howto-transfer-custom-object-c-native-extensions-in-air/&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Sometimes you want to transfer custom objects instead of predefined ones (or basic types). This is very useful, for example, when you want to construct for instance an array of positions. Position is in this case defined by an object with x, y, z properties.</p>
<p>Let&#8217;s initiate an Array instance. I wrote a tutorial about that here <a href="http://www.flashrealtime.com/transfer-cast-array-and-vector-from-as3-to-c/">HOWTO: Transfer Array and Vector from AS3 to C with AIR Native Extensions for iOS</a>:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">uint32_t arr_len <span style="color: #339933;">=</span> <span style="color: #0000dd;">10</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// count of positions</span>
FREObject objectsPosition <span style="color: #339933;">=</span> NULL<span style="color: #339933;">;</span>
FRENewObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">const</span> uint8_t<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #ff0000;">&quot;Array&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> NULL<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>objectsPosition<span style="color: #339933;">,</span> NULL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
FRESetArrayLength<span style="color: #009900;">&#40;</span>objectsPosition<span style="color: #339933;">,</span> arr_len<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Next we will define a custom Object, basically the same way as we did with the Array</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// loop through array length and fill it with data</span>
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span>uint32_t i<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span>arr_len<span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
FREObject position<span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// create an instance of Object and save it to FREObject position</span>
FRENewObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">const</span> uint8<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #ff0000;">&quot;Object&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> NULL<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>position<span style="color: #339933;">,</span>NULL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// populate temporary vars x, y, z</span>
FREObject xPos<span style="color: #339933;">;</span>
FREObject yPos<span style="color: #339933;">;</span>
FREObject zPos<span style="color: #339933;">;</span>
FRENewObjectFromInt32<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">10</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>xPos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
FRENewObjectFromInt32<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">20</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>yPos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
FRENewObjectFromDouble<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">30</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>zPos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// fill properties of FREObject position</span>
FRESetObjectProperty<span style="color: #009900;">&#40;</span>position<span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">const</span> uint8<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #ff0000;">&quot;x&quot;</span><span style="color: #339933;">,</span> zPos<span style="color: #339933;">,</span> NULL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
FRESetObjectProperty<span style="color: #009900;">&#40;</span>position<span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">const</span> uint8<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #ff0000;">&quot;y&quot;</span><span style="color: #339933;">,</span> yPos<span style="color: #339933;">,</span> NULL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
FRESetObjectProperty<span style="color: #009900;">&#40;</span>position<span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">const</span> uint8<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #ff0000;">&quot;z&quot;</span><span style="color: #339933;">,</span> zPos<span style="color: #339933;">,</span> NULL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// add position to the array</span>
FRESetArrayElementAt<span style="color: #009900;">&#40;</span>objectsPosition<span style="color: #339933;">,</span> i<span style="color: #339933;">,</span> position<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Done. Have fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashrealtime.com/howto-transfer-custom-object-c-native-extensions-in-air/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick demo of accessing XML data with jQuery</title>
		<link>http://www.raymondcamden.com/index.cfm/2012/2/16/Quick-demo-of-accessing-XML-data-with-jQuery?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quick-demo-of-accessing-xml-data-with-jquery</link>
		<comments>http://www.raymondcamden.com/index.cfm/2012/2/16/Quick-demo-of-accessing-XML-data-with-jQuery#comments</comments>
		<pubDate>Thu, 16 Feb 2012 15:19:00 +0000</pubDate>
		<dc:creator>Raymond Camden's Blog</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.raymondcamden.com/index.cfm/2012/2/16/Quick-demo-of-accessing-XML-data-with-jQuery</guid>
		<description><![CDATA[
				
				
				This blog post is mainly for my own memory - but a user asked about access CDATA values stored in an XML field via JavaScript. I'm using jQuery to work with XML and wrote up a very quick demo. For the most part, it seems like it "just wo...]]></description>
			<content:encoded><![CDATA[
				
				
				This blog post is mainly for my own memory - but a user asked about access CDATA values stored in an XML field via JavaScript. I'm using jQuery to work with XML and wrote up a very quick demo. For the most part, it seems like it "just works", but I a...
				
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/quick-demo-of-accessing-xml-data-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Linked Source Files Across PhoneGap Projects on OSX</title>
		<link>http://www.tricedesigns.com/2012/02/16/linked-source-files-across-phonegap-projects-on-osx/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=linked-source-files-across-phonegap-projects-on-osx</link>
		<comments>http://www.tricedesigns.com/2012/02/16/linked-source-files-across-phonegap-projects-on-osx/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 14:49:20 +0000</pubDate>
		<dc:creator>Andrew Trice</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[phonegap]]></category>

		<guid isPermaLink="false">http://www.tricedesigns.com/?p=1550</guid>
		<description><![CDATA[If you are manually building PhoneGap projects across multiple platforms, managing source files can sometimes become a little bit tricky. If you are building for Android, you need a project within Eclipse. If you are building for iOS, you need a project within Xcode. If you are building for both, you need to make sure [...]]]></description>
			<content:encoded><![CDATA[<p>If you are manually building <a href="http://www.phonegap.com" >PhoneGap</a> projects across multiple platforms, managing source files can sometimes become a little bit tricky. If you are building for Android, you need a project within Eclipse. If you are building for iOS, you need a project within Xcode. If you are building for both, you need to make sure that the code in the Eclipse project is in synch with the code in the Xcode project so that the platform-specific apps are in parity with each other.</p>
<p>Keeping the project source code in synch can be achieved using manual copy/paste between projects, but this is messy and error prone. The synchronization can also be scripted using ANT or other scripting language, but this requires an additional script and/or step in your build process. Although scripting is a reliable process, sometimes you just don&#8217;t need the script.</p>
<p>If you don&#8217;t want to manually synch things, and you don&#8217;t want a script, you can use a symlink to link directory paths. Basically, create a &#8220;src&#8221; folder outside of each project, and create a symlink reference to the src folder inside of the &#8220;www&#8221; folder for each project.   <a href="http://en.wikipedia.org/wiki/Symbolic_link" >Symlinks</a> allow a logical directory mapping, which actually points to another location on the hard disk.</p>
<p>From the command line, you just use the following command:</p>
<blockquote>
<pre>ln -s source target</pre>
</blockquote>
<p>To setup your project, first create your directory structure.  I created a parent folder for the project. Inside of that folder, I created a &#8220;project-ios&#8221; folder, &#8220;project-android&#8221; folder, and &#8220;src&#8221; folder.   The &#8220;src&#8221; folder will contain the shared HTML/JavaScript for the application.   The &#8220;project-ios&#8221; folder will contain the Xcode project, and the &#8220;project-android&#8221; folder will contain the Eclipse project.</p>
<div id="attachment_1552" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-1552" title="project structure" src="http://www.tricedesigns.com/wp-content/uploads/2012/02/project-structure1.png" alt="" width="550" height="378" /><p class="wp-caption-text">Project Structure</p></div>
<p>Next, create the actual iOS and Android projects inside of these folders, following the normal setup instructions:</p>
<ul>
<li>iOS:   <a href="http://phonegap.com/start#ios-x4" >http://phonegap.com/start#ios-x4</a></li>
<li>Android:   <a href="http://phonegap.com/start#android" >http://phonegap.com/start#android</a></li>
</ul>
<p>Once you have set up both projects, you&#8217;ll need to configure the symlinks.   Put a copy of the &#8220;index.html&#8221; file into your &#8220;src&#8221; directory.  Next, go to the &#8220;www&#8221; directory for each project and delete the &#8220;index.html&#8221; file to remove any ambiguity or chance for error.</p>
<p><strong><span style="color: #ff0000;">However, DO NOT DELETE THE PHONEGAP.js files!</span></strong></p>
<p>The phonegap.1.4.1.js files are platform specific.  The Android version will not work with iOS, and the iOS version will not work with Android.</p>
<p>Next, navigate to your root folder that contains the &#8220;src&#8221;, &#8220;project-iOS&#8221;, and &#8220;project-Android&#8221; folders. Here you will create the actual symlink references.   When doing so, be sure to use the full path to the source and target destinations.  You will need to create a symlink reference from the &#8220;src&#8221; directory to &#8220;project-ios/www/src&#8221;, and a symlink reference from the &#8220;src&#8221; directory to &#8220;project-android/assets/www/src&#8221;.</p>
<p>If you try to use a relative path from your current location, it will give you errors and a massive headache.     You can use &#8220;pwd&#8221; to get a reference to the full path of your current directory.</p>
<p>Here are the commands that I used on my system, where the root directory is &#8220;/Users/triceam/Documents/dev/phonegap-sharedsource&#8221;:</p>
<pre class="brush: bash; title: ; notranslate">ln -s /Users/triceam/Documents/dev/phonegap-sharedsource/src/ /Users/triceam/Documents/dev/phonegap-sharedsource/project-ios/www/src
ln -s /Users/triceam/Documents/dev/phonegap-sharedsource/src/ /Users/triceam/Documents/dev/phonegap-sharedsource/project-android/assets/www/src</pre>
<p>You can see this in my console in the image below:</p>
<div id="attachment_1554" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-1554" title="create symlinks" src="http://www.tricedesigns.com/wp-content/uploads/2012/02/create-symlinks1.png" alt="" width="550" height="235" /><p class="wp-caption-text">Create Symlinks</p></div>
<p>This will create logical links to the root &#8220;src&#8221; folder, which can be treated like any other directory structure.</p>
<div id="attachment_1555" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-1555" title="symlinks" src="http://www.tricedesigns.com/wp-content/uploads/2012/02/symlinks.png" alt="" width="550" height="378" /><p class="wp-caption-text">Symlink References</p></div>
<p>In both Eclipse and Xcode, this will show up as a normal folder.  Any edits in one IDE will show up in the other IDE since they are pointing to the same physical directory on the hard disk.</p>
<div id="attachment_1567" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-1567" title="ides" src="http://www.tricedesigns.com/wp-content/uploads/2012/02/ides1.png" alt="" width="550" height="224" /><p class="wp-caption-text">Content in Eclipse &amp; Xcode</p></div>
<p>Next, you&#8217;ll need to update the PhoneGap projects to point to the shared index.html file.</p>
<p>In the Eclipse project, open your main Android activity and change the call to super.loadUrl to refer to the index.html file inside of the linked &#8220;src&#8221; directory in the onCreate method.</p>
<pre class="brush: java; title: ; notranslate">public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.loadUrl(&quot;file:///android_asset/www/src/index.html&quot;);
}</pre>
<p>In the iOS project, open AppDelegate.m. You&#8217;ll also need to update it to reference the index.html file inside of &#8220;src&#8221;. You&#8217;ll just need to edit the start page to &#8220;src/index.html&#8221; inside of the function: (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions</p>
<pre class="brush: objc; title: ; notranslate">self.viewController.wwwFolderName = @&quot;www&quot;;
self.viewController.startPage = @&quot;src/index.html&quot;;</pre>
<p>Also, be sure to update the link inside of &#8220;src/index.html&#8221; to point to the project-specific PhoneGap JavaScript files in the parent directory &#8220;../phonegap-1.4.1.js&#8221;<br />
(they are not inside of the linked folder):</p>
<pre class="brush: xml; title: ; notranslate">&lt;script charset=&quot;utf-8&quot; type=&quot;text/javascript&quot; src=&quot;../phonegap-1.4.1.js&quot;&gt;&lt;/script&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tricedesigns.com/2012/02/16/linked-source-files-across-phonegap-projects-on-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Whitepaper Explains Adobe&#8217;s View On Future Of Flex</title>
		<link>http://forta.com/blog/index.cfm/2012/2/15/Whitepaper-Explains-Adobes-View-On-Future-Of-Flex?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=whitepaper-explains-adobes-view-on-future-of-flex</link>
		<comments>http://forta.com/blog/index.cfm/2012/2/15/Whitepaper-Explains-Adobes-View-On-Future-Of-Flex#comments</comments>
		<pubDate>Thu, 16 Feb 2012 02:47:00 +0000</pubDate>
		<dc:creator>Ben Forta</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://forta.com/blog/index.cfm/2012/2/15/Whitepaper-Explains-Adobes-View-On-Future-Of-Flex</guid>
		<description><![CDATA[
				
				We've just published a whitepaper explaining Adobe's view of Flex and its commitments to Flex in the future. 
				]]></description>
			<content:encoded><![CDATA[
				
				We've just published a whitepaper explaining <a href="http://www.adobe.com/go/flex_whitepaper">Adobe's view of Flex and its commitments to Flex in the future</a>. 
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/whitepaper-explains-adobes-view-on-future-of-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Adobe’s View of Flex &amp; Future Commitment</title>
		<link>http://www.tricedesigns.com/2012/02/15/adobes-view-of-flex-future-commitment/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adobe%25e2%2580%2599s-view-of-flex-future-commitment</link>
		<comments>http://www.tricedesigns.com/2012/02/15/adobes-view-of-flex-future-commitment/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 02:20:45 +0000</pubDate>
		<dc:creator>Andrew Trice</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.tricedesigns.com/?p=1578</guid>
		<description><![CDATA[Adobe has just published a white paper detailing current views and future commitments to Apache Flex. Included topics are contributions to Apache, commitments to the Flash platform, and commitments to Adobe customers.   I strongly recommend that all Flex developers and project stakeholders read this: Adobe’s view of Flex and its commitments to Flex in [...]]]></description>
			<content:encoded><![CDATA[<p>Adobe has just published a white paper detailing current views and future commitments to Apache Flex. Included topics are contributions to Apache, commitments to the Flash platform, and commitments to Adobe customers.   I strongly recommend that all Flex developers and project stakeholders read this:</p>
<ul>
<li><a href="http://www.adobe.com/devnet/flex/whitepapers/roadmap.html" >Adobe’s view of Flex and its commitments to Flex in the future</a></li>
</ul>
<p>Or, download and read the <a href="http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/flex/pdfs/flex_roadmap.pdf" >pdf version</a>.</p>
<p>Here&#8217;s an excerpt:</p>
<blockquote>
<h3>Summary</h3>
<p><span style="color: #000000;">Adobe believes that Flex is the best solution for enterprise and data-centric application development today and is moving Flex into a community-driven open source project to ensure the continued development and success of Flex for years to come. We are currently in the process of contributing the core Flex SDK, automation libraries, AIR SDK binaries, and documentation to the Apache Flex Project. We will also be contributing Falcon, Falcon JS, Mustella, and BlazeDS.</span></p>
<p><span style="color: #000000;">In addition to these contributions, Adobe is providing a team of full-time Flex SDK engineers who will contribute to and support the Apache Flex Project. These Adobe engineers will work directly with the highly skilled Flex developer community to maintain, support, and evolve the Flex SDK. We remain committed to enabling the success of all existing and new Flex projects.</span></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.tricedesigns.com/2012/02/15/adobes-view-of-flex-future-commitment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe’s Commitments to Flex – Official Whitepaper</title>
		<link>http://devgirl.org/2012/02/15/adobe-commitments-to-flex-whitepaper/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adobe%25e2%2580%2599s-commitments-to-flex-%25e2%2580%2593-official-whitepaper</link>
		<comments>http://devgirl.org/2012/02/15/adobe-commitments-to-flex-whitepaper/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 23:58:55 +0000</pubDate>
		<dc:creator>Holly Schinsky</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Apache Flex]]></category>
		<category><![CDATA[flash builder]]></category>

		<guid isPermaLink="false">http://devgirl.org/?p=3745</guid>
		<description><![CDATA[There have been a lot of questions about the viability and future of Flex recently, and Adobe has published an official whitepaper today detailing their support for Flex going forward. The paper also contains details regarding Flash runtime support, Flash Builder support and other Apache contributions including the Falcon compiler. I believe the paper is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://devgirl.org/wp-content/uploads/2012/02/flex.png"><img src="http://devgirl.org/wp-content/uploads/2012/02/flex.png" alt="" title="flex" width="191" height="100" class="aligncenter size-full wp-image-3750" /></a><br />
There have been a lot of questions about the viability and future of Flex recently, and Adobe has published an official whitepaper today detailing their support for Flex going forward. The paper also contains details regarding Flash runtime support, Flash Builder support and other Apache contributions including the Falcon compiler. I believe the paper is a must read and can be found <strong><a href="http://www.adobe.com/go/flex_whitepaper">HERE</a>.</strong></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http://devgirl.org/2012/02/15/adobe-commitments-to-flex-whitepaper/&amp;title=Adobe&%238217;s%20Commitments%20to%20Flex%20&%238211;%20Official%20Whitepaper" id="wpa2a_2"><img src="http://devgirl.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://devgirl.org/2012/02/15/adobe-commitments-to-flex-whitepaper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inception Score Easter Egg with Web Audio API</title>
		<link>http://feedproxy.google.com/~r/Terrenceryan/~3/wKZ6CIkDX_Y/inception-score-easter-egg-with-web-audio-api?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=inception-score-easter-egg-with-web-audio-api</link>
		<comments>http://feedproxy.google.com/~r/Terrenceryan/~3/wKZ6CIkDX_Y/inception-score-easter-egg-with-web-audio-api#comments</comments>
		<pubDate>Wed, 15 Feb 2012 19:54:46 +0000</pubDate>
		<dc:creator>Terrence Ryan</dc:creator>
				<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://www.terrenceryan.com/blog/post.cfm/inception-score-easter-egg-with-web-audio-api</guid>
		<description><![CDATA[There's a great video on YouTube detailing an Easter Egg in the score for the movie Inception.  Basically Inception is about dreams and the slowing down of time. Likewise the score is based on the slowing down of music that is played inside the plot o...]]></description>
			<content:encoded><![CDATA[<p><img style="float: right; margin-left: 10px; margin-bottom: 5px;" src="http://feedproxy.google.com/blog/assets/content/inception.jpg" alt="" width="400" height="258" />There's a great video on <a href="http://www.youtube.com/watch?v=UVkQ0C4qDvM">YouTube detailing an Easter Egg in the score for the movie Inception</a>.  Basically Inception is about dreams and the slowing down of time. Likewise the score is based on the slowing down of music that is played inside the plot of the movie.  Pretty cool. Feel free to check out the video before continuing.</p>
<iframe width="100%" height="315" src="http://www.youtube.com/embed/UVkQ0C4qDvM" frameborder="0" allowfullscreen></iframe>
<p>I wanted to use this concept to show off the Audio capabilities in HTML5. Basically I want to:</p>
<ul>
<li>Play the Inception Score</li>
<li>Play the Edith Piaf song</li>
<li>Play the Edit Piaf song slowed down</li>
<li>Play the Inception score over the slowed down Edith Piaf song. </li>
</ul>
<p>But the vanilla  tag didn't work for me. The  tag does have the ability to be slowed down, but it seems that in Chrome and Safari, I could not get the rate below 50% of the original. On Chrome the sound stopped playing if the rate was below 50%, and on Safari the sound just never got slower even though the rate was below 50%.</p>
<p>I figured I would give the <a href="http://www.html5rocks.com/en/tutorials/webaudio/intro/">Web Audio API</a> a try and see what it could do. So I wrote a function that could play back a sound at a given rate:</p>
<div id="snipplr_embed_63363" class="snipplr_embed"><a href="http://snipplr.com/view/63363/web-audio-api-code-for-loading-audio-at-a-particular-speed/">Code snippet - Web Audio API code for loading audio at a particular speed.</a> on Snipplr</div>
<p>
<script src="http://snipplr.com/js/embed.js" type="text/javascript"></script>
<script src="http://snipplr.com/json/63363" type="text/javascript"></script>
</p>
<p>That worked. All I had to do was set up some HTML to display it, some CSS to make it look less plain, and some buttons to make it work.</p>
<p>There's a working demo here:</p>
<p><a href="http://terrenceryan.com/examples/webaudio/">Audio API Demo</a></p>
<p>Oh before you click on that link -<strong> It only works on Chrome</strong>.  And sometimes it has the tendency to stop working all together. The fix is to empty your browser cache, and restart Chrome. But hey, still a cool proof of concept.</p>]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/inception-score-easter-egg-with-web-audio-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick hack to deal with touch and mouse events</title>
		<link>http://feedproxy.google.com/~r/corlan/~3/1y5sfo74A9M/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quick-hack-to-deal-with-touch-and-mouse-events</link>
		<comments>http://feedproxy.google.com/~r/corlan/~3/1y5sfo74A9M/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 18:29:46 +0000</pubDate>
		<dc:creator>Mihai Corlan</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://corlan.org/?p=3406</guid>
		<description><![CDATA[If you build web pages that are interactive and work on desktops and mobile devices then chances are that you need to work with touch and click events. For mobile devices you&#8217;d want to use events like touchstart, touchmove, and touchend and for desktops you&#8217;d use mouse events (mousedown, mousemove, and mouseup).
Most of the time [...]]]></description>
			<content:encoded><![CDATA[<div class="none" style="float: right; margin-left: 10px;"><g:plusone href="http://corlan.org/2012/02/15/quick-hack-to-deal-with-touch-and-mouse-events/" size="tall" count="true"></g:plusone></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http://corlan.org/2012/02/15/quick-hack-to-deal-with-touch-and-mouse-events/"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http://corlan.org/2012/02/15/quick-hack-to-deal-with-touch-and-mouse-events/&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>If you build web pages that are interactive and work on desktops and mobile devices then chances are that you need to work with touch and click events. For mobile devices you&#8217;d want to use events like <em>touchstart</em>, <em>touchmove</em>, and <em>touchend</em> and for desktops you&#8217;d use mouse events (<em>mousedown</em>, <em>mousemove</em>, and <em>mouseup</em>).</p>
<p>Most of the time the code you execute as a response to these events is the same between these two platforms. So one way to avoid duplicating your code is to take advantage of the JavaScript&#8217;s dynamic nature to inject additional data into the event object and chain the click and touch event listeners.</p>
<p>Here is a snippet of code that illustrates my point:</p>
<pre class="brush: jscript; title: ; notranslate">
function init() {
    var el = document.getElementById('myDiv');
    el.addEventListener('mousemove', onMouseMove);
    el.addEventListener('touchmove', onTouchMove);
}

function onMouseMove(e) {
    e.touches = [{clientX: e.clientX, clientY: e.clientY}];
    onTouchMove(e);
}

function onTouchMove(e) {
    //do something with e.touches[0].clientX or e.touches[0].clientY

}
</pre>
<p>The code should be pretty simple to follow:</p>
<ul>
<li>I register listeners for <em>mousemove</em> and <em>touchmove</em></li>
<li>If the code runs on a desktop then the <em>mousemove</em> listeners will be triggered. When this happens I inject the mouse X and Y position in the event object using the data structure used by touch events (touch events have a <em>touches</em> property, which is an <em>array</em> of objects that follow this pattern: <em>{clientX: value, clientY: value}</em>). The touches property is an array because you can expect more than one touch point on some devices. Then I call the <em>onTouchMove</em> function passing along the modified event object</li>
<li>The logic I want to execute for that specific action is declared in a single place, the <em>onTouchMove</em> function</li>
</ul>
<p>I put together a simple page so you can see the code and test it on you computer/devices: <a href="http://corlan.org/downloads/touch-and-click.html">demo here</a>.</p>
<p>What method do you use to deal with this?</p>
<img src="http://feeds.feedburner.com/~r/corlan/~4/1y5sfo74A9M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://corlan.org/2012/02/15/quick-hack-to-deal-with-touch-and-mouse-events/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drag and drop support in WebKit/HTML5/PhoneGap on iOS/Android mobile devices</title>
		<link>http://feedproxy.google.com/~r/riaspace/~3/wvkotN_LPHw/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=drag-and-drop-support-in-webkithtml5phonegap-on-iosandroid-mobile-devices</link>
		<comments>http://feedproxy.google.com/~r/riaspace/~3/wvkotN_LPHw/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 17:02:18 +0000</pubDate>
		<dc:creator>Piotr Walczyszyn</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[phonegap]]></category>
		<category><![CDATA[Recording]]></category>

		<guid isPermaLink="false">http://www.riaspace.com/?p=3593</guid>
		<description><![CDATA[I just thought I will share some of my findings around drag and drop support in WebKit, HTML5 and PhoneGap apps running on iOS and Android devices. To make the story short drag and drop is NOT support out of the box in the current versions of WebKit that run on iOS or Android devices although you [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http://www.riaspace.com/2012/02/drag-and-drop-support-in-webkithtml5phonegap-on-iosandroid-mobile-devices/">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http://www.riaspace.com/2012/02/drag-and-drop-support-in-webkithtml5phonegap-on-iosandroid-mobile-devices/&amp;style=normal&amp;b=2" height="61" width="50" />
			</a>
		</div><p>I just thought I will share some of my findings around drag and drop support in WebKit, HTML5 and PhoneGap apps running on iOS and Android devices. </p>
<p>To make the story short drag and drop is NOT support out of the box in the current versions of WebKit that run on iOS or Android devices although you can simulate it using mousedown, mousemove and mouseup events. </p>
<p style="text-align: center;"><iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="360" src="http://www.youtube.com/embed/KyUzxu6uDx0" frameborder="0" allowFullScreen="true"> </iframe></p>
<p>When I clean the code a bit you can expect and update to this post <img src='http://www.riaspace.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div class="shr-publisher-3593"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http://feedproxy.google.com/~r/riaspace/~3/wvkotN_LPHw/http%3A//www.riaspace.com/2012/02/drag-and-drop-support-in-webkithtml5phonegap-on-iosandroid-mobile-devices/' data-shr_title='Drag+and+drop+support+in+WebKit%2FHTML5%2FPhoneGap+on+iOS%2FAndroid+mobile+devices'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http://feedproxy.google.com/~r/riaspace/~3/wvkotN_LPHw/http%3A//www.riaspace.com/2012/02/drag-and-drop-support-in-webkithtml5phonegap-on-iosandroid-mobile-devices/' data-shr_title='Drag+and+drop+support+in+WebKit%2FHTML5%2FPhoneGap+on+iOS%2FAndroid+mobile+devices'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic --><img src="http://feeds.feedburner.com/~r/riaspace/~4/wvkotN_LPHw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.riaspace.com/2012/02/drag-and-drop-support-in-webkithtml5phonegap-on-iosandroid-mobile-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding Internationalization/Localization Support to Web Applications</title>
		<link>http://www.raymondcamden.com/index.cfm/2012/2/15/Adding-InternationalizationLocalization-Support-to-Web-Applications?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adding-internationalizationlocalization-support-to-web-applications</link>
		<comments>http://www.raymondcamden.com/index.cfm/2012/2/15/Adding-InternationalizationLocalization-Support-to-Web-Applications#comments</comments>
		<pubDate>Wed, 15 Feb 2012 16:30:00 +0000</pubDate>
		<dc:creator>Raymond Camden's Blog</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.raymondcamden.com/index.cfm/2012/2/15/Adding-InternationalizationLocalization-Support-to-Web-Applications</guid>
		<description><![CDATA[
				
				
				I thought I'd spend some time this week looking at how to add localization support to web applications, specifically client-side heavy web applications. The original intent for this article was to look at the subject matter in terms of P...]]></description>
			<content:encoded><![CDATA[
				
				
				I thought I'd spend some time this week looking at how to add localization support to web applications, specifically client-side heavy web applications. The original intent for this article was to look at the subject matter in terms of PhoneGap appli...
				
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/adding-internationalizationlocalization-support-to-web-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>HTML5 for App Developers: PhpStorm/WebStorm</title>
		<link>http://feedproxy.google.com/~r/riaspace/~3/AQ_09J86AiQ/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=html5-for-app-developers-phpstormwebstorm</link>
		<comments>http://feedproxy.google.com/~r/riaspace/~3/AQ_09J86AiQ/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 16:00:04 +0000</pubDate>
		<dc:creator>Piotr Walczyszyn</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[PhpStorm]]></category>
		<category><![CDATA[Recording]]></category>
		<category><![CDATA[WebStorm]]></category>

		<guid isPermaLink="false">http://www.riaspace.com/?p=3563</guid>
		<description><![CDATA[This time in the video below you will find a quick review of PhpStorm/WebStorm IDEs. As I mention in my recording this is one of those tools that I will stick with at least for now It has really great debugging support (IMHO Firebug or WebInspector can&#8217;t even compete). Also because it is built on [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http://www.riaspace.com/2012/02/html5-for-app-developers-phpstormwebstorm/">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http://www.riaspace.com/2012/02/html5-for-app-developers-phpstormwebstorm/&amp;style=normal&amp;b=2" height="61" width="50" />
			</a>
		</div><p><img class="alignleft size-full wp-image-3414" style="border-style: initial; border-color: initial; border-width: 0px; margin: 10px;" title="HTML5 Logo" src="http://www.riaspace.com/wp-content/uploads/2011/12/HTML5_Logo_128.png" alt="" width="128" height="128" /></p>
<p>This time in the video below you will find a quick review of <a href="http://www.google.com/url?sa=t&#038;rct=j&%23038;q=&%23038;esrc=s&%23038;source=web&%23038;cd=1&%23038;ved=0CDIQFjAA&%23038;url=http://www.jetbrains.com/phpstorm/&%23038;ei=hpg7T-fgGubc4QTAqYilBg&%23038;usg=AFQjCNEVxyVeV1WJrmtrbI9AHz5XnVDUFw" >PhpStorm</a>/<a href="http://www.google.com/url?sa=t&#038;rct=j&%23038;q=&%23038;esrc=s&%23038;source=web&%23038;cd=1&%23038;ved=0CDAQFjAA&%23038;url=http://www.jetbrains.com/webstorm/&%23038;ei=npg7T9z0Fcap4gTqydGkBg&%23038;usg=AFQjCNHMZG4Ee6khYI6OsfB2wUB3sSRYMA" >WebStorm</a> IDEs. As I mention in my recording this is one of those tools that I will stick with at least for now <img src='http://www.riaspace.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>It has really great debugging support (IMHO Firebug or WebInspector can&#8217;t even compete). Also because it is built on top of <a href="http://www.jetbrains.com/idea/" >IntelliJ IDEA</a> platform it has great code completion, rich set of refactoring features, and many others. Check out the video for more.</p>
<p style="text-align: center;"><iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="360" src="http://www.youtube.com/embed/n1xZRVtQEAY" frameborder="0" allowFullScreen="true"> </iframe></p>
<div class="shr-publisher-3563"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http://feedproxy.google.com/~r/riaspace/~3/AQ_09J86AiQ/http%3A//www.riaspace.com/2012/02/html5-for-app-developers-phpstormwebstorm/' data-shr_title='HTML5+for+App+Developers%3A+PhpStorm%2FWebStorm'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http://feedproxy.google.com/~r/riaspace/~3/AQ_09J86AiQ/http%3A//www.riaspace.com/2012/02/html5-for-app-developers-phpstormwebstorm/' data-shr_title='HTML5+for+App+Developers%3A+PhpStorm%2FWebStorm'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic --><img src="http://feeds.feedburner.com/~r/riaspace/~4/AQ_09J86AiQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.riaspace.com/2012/02/html5-for-app-developers-phpstormwebstorm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Audio API: setting playbackRate</title>
		<link>http://feedproxy.google.com/~r/Terrenceryan/~3/icTXwMqZZUw/web-audio-api-setting-playbackrate?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=web-audio-api-setting-playbackrate</link>
		<comments>http://feedproxy.google.com/~r/Terrenceryan/~3/icTXwMqZZUw/web-audio-api-setting-playbackrate#comments</comments>
		<pubDate>Tue, 14 Feb 2012 21:25:11 +0000</pubDate>
		<dc:creator>Terrence Ryan</dc:creator>
				<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://www.terrenceryan.com/blog/post.cfm/web-audio-api-setting-playbackrate</guid>
		<description><![CDATA[I was working on a little demo showing the manipulation of playback rates of audio clips.  The Audio tag failed miserably.  On Safari and Chrome (both for Mac) the audio tag couldn't playback the audio any slower than half speed.
For what I was worki...]]></description>
			<content:encoded><![CDATA[<p><img style="float: right; margin-left: 5px; margin-bottom: 5px" src="http://feedproxy.google.com/blog/assets/content/html5multimedia.jpg" alt="" width="300" height="250" />I was working on a little demo showing the manipulation of playback rates of audio clips.  The Audio tag failed miserably.  On Safari and Chrome (both for Mac) the audio tag couldn't playback the audio any slower than half speed.</p>
<p>For what I was working on, this meant trying out the <a href="https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html">Web Audio API</a>.  <a href="http://www.lostdecadegames.com/audia-is-a-library-for-simplifying-the-web-audio-api/">I stole some code</a> that allowed for playback, got it working, then tried to manipulate the playbackRate for the clip. But no joy, no Chipmunks singing for me.</p>
<p>I looked up a couple of things, and many of them pointed at this statement from the <a href="http://updates.html5rocks.com/2012/01/Web-Audio-FAQ">HTML5Rocks Web Audio API FAQ</a>:</p>
<blockquote>
<p>Q: HOW CAN I CHANGE THE PITCH OF A SOUND USING THE WEB AUDIO API?<br />A: Change the playbackRate on the source node.</p>
</blockquote>
<p>I tried and I tried for an hour to get this to work using this syntax:</p>
<p><code>source.playbackRate = 2.0;</code></p>
<p>Turns out you have to set it as:</p>
<p><code>source.playbackRate.value = 2.0;</code></p>
<p>Hopefully, this spares you some time.</p>]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/web-audio-api-setting-playbackrate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>“What is PhoneGap?” &amp; Other Common Questions</title>
		<link>http://www.tricedesigns.com/2012/02/14/what-is-phonegap-other-common-questions/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e2%2580%259cwhat-is-phonegap%25e2%2580%259d-other-common-questions</link>
		<comments>http://www.tricedesigns.com/2012/02/14/what-is-phonegap-other-common-questions/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 20:02:47 +0000</pubDate>
		<dc:creator>Andrew Trice</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[phonegap]]></category>

		<guid isPermaLink="false">http://www.tricedesigns.com/?p=1513</guid>
		<description><![CDATA[While looking at the analytics for my blog, I&#8217;ve recently started to see a lot of search phrases similar to &#8220;what is phonegap?&#8221;, &#8220;how does a phonegap app look?&#8221;, &#8220;how to get started in phonegap?&#8221;, among many, many others.   In this post, I hope to shed some light on some basic questions to help [...]]]></description>
			<content:encoded><![CDATA[<p>While looking at the analytics for my blog, I&#8217;ve recently started to see a lot of search phrases similar to &#8220;what is phonegap?&#8221;, &#8220;how does a phonegap app look?&#8221;, &#8220;how to get started in phonegap?&#8221;, among many, many others.   In this post, I hope to shed some light on some basic questions to help you understand and start working with PhoneGap.</p>
<p>In case you don&#8217;t feel like reading the whole thing, here are quicklinks to each question:</p>
<ul>
<li><a href="http://www.tricedesigns.com/2012/02/14/what-is-phonegap-other-common-questions/#what">What is PhoneGap?</a></li>
<li><a href="http://www.tricedesigns.com/2012/02/14/what-is-phonegap-other-common-questions/#look">How does a PhoneGap application typically look?</a></li>
<li><a href="http://www.tricedesigns.com/2012/02/14/what-is-phonegap-other-common-questions/#start">How do I get started in PhoneGap?</a></li>
<li><a href="http://www.tricedesigns.com/2012/02/14/what-is-phonegap-other-common-questions/#debug">How do you debug PhoneGap applications?</a></li>
<li><a href="http://www.tricedesigns.com/2012/02/14/what-is-phonegap-other-common-questions/#architect">How do you architect PhoneGap applications?</a></li>
<li><a href="http://www.tricedesigns.com/2012/02/14/what-is-phonegap-other-common-questions/#distribute">How do you get phonegap apps on devices and into application ecosystems?</a></li>
<li><a href="http://www.tricedesigns.com/2012/02/14/what-is-phonegap-other-common-questions/#difference">What is the difference between PhoneGap and Adobe AIR?</a></li>
</ul>
<hr />
<p><a id="what"></a></p>
<h1>What is PhoneGap?</h1>
<p><img class="alignleft size-full wp-image-949" title="phonegap" src="http://www.tricedesigns.com/wp-content/uploads/2011/11/phonegap.png" alt="" width="80" height="80" /><a href="http://www.phonegap.com" >PhoneGap</a> is an application framework that enables you to build natively installed applications using HTML and JavaScript.  The easiest way to think of PhoneGap is a web view container that is 100% width and 100% height, with a JavaScript programming interface that allows you to access underlying operating system features.  You build your user interface using traditional web development skills (HTML, CSS, &amp; JavaScript), and use the PhoneGap container to deploy to different application ecosystems and devices.  When packaged for deployment, the PhoneGap application is a binary distributable file that can be distributed by the &#8220;normal&#8221; application marketplaces (iTunes, Google App Market, Amazon Market, etc&#8230;).</p>
<p>PhoneGap is 100% open source, and also goes by the Apache name &#8220;Cordova&#8221;.  You can read more about Apache Cordova project status at: <a href="http://incubator.apache.org/projects/callback.html" >http://incubator.apache.org/projects/callback.html</a></p>
<p>PhoneGap can be used to build applications that target multiple platforms, including Apple iOS, Google Android, Windows Phone, BlackBerry, HP WebOS, Symbian, and Bada.</p>
<p style="padding-left: 30px;"><img class="alignnone size-full wp-image-1516" title="phonegap_platforms" src="http://www.tricedesigns.com/wp-content/uploads/2012/02/phonegap_platforms.png" alt="" width="385" height="86" /></p>
<p>You can read more about the supported platforms and their supported features at <a href="http://phonegap.com/about/features" >http://phonegap.com/about/features</a></p>
<p><a id="look"></a></p>
<h1>How does a PhoneGap application typically look?</h1>
<p>Since the UI rendering engine is the mobile device&#8217;s web browser, PhoneGap applications can literally look like anything.   You can use standard HTML &amp; CSS to make it look like a normal web page, you can use a UI framework like <a href="http://jqueryui.com/" >jQuery UI</a>, <a href="http://www.kendoui.com/" >Kendo UI</a>, <a href="http://www.sencha.com/products/touch/" >Sencha</a>, <a href="http://twitter.github.com/bootstrap/" >Twitter Bootstrap</a>, or <a href="http://www.getskeleton.com/" >Skeleton</a> (or any other HTML/CSS/JS user interface framework). You can also use CSS styles/themes to make your web content look like native apps, such as <a href="http://code.google.com/p/iui/" >iUI</a> to mimic iOS or Android, or <a href="https://github.com/tneil/bbUI.js" >bbUI</a>  to mimic BlackBerry.</p>
<p>PhoneGap applications can have static UIs based on normal HTML, or can have dynamic &amp; interactive experiences developed using JavaScript.   It depends upon the specific application, user experience design, target audience, and use cases to dictate how a PhoneGap application will appear.</p>
<p>PhoneGap applications can use pinch/zoom gestures to zoom in &amp; out, or you can lock the viewport scale using the <a href="https://developer.mozilla.org/en/Mobile/Viewport_meta_tag" >viewport metadata tag</a>.   You can have the page scroll using normal browser behaviors, or you can use a library like <a href="http://cubiq.org/iscroll" >iScroll</a> to enable touch-based scrolling of specific container elements.</p>
<p>There really are lots of ways to create a user interface with HTML, CSS &amp; JavaScript, so there really isn&#8217;t any &#8220;typical&#8221; look.   If you do not apply any CSS styles at all, then all user interface elements will use the operating system/browser default for that specific platform.   This includes buttons, links, and color/highlight states.   This behaves in the exact same manner as the operating system&#8217;s default web browser.</p>
<p><a id="start"></a></p>
<h1>How do I get started in PhoneGap?</h1>
<p>Getting started in PhoneGap is easy.   For 90% of a PhoneGap application, all you need is a text editor.  PhoneGap also integrates with device-specific development environments very easily.   You can view &#8220;getting started&#8221; guides for all application platforms at the links below:</p>
<ul>
<li>iOS: <a href="http://phonegap.com/start#ios-x4" >http://phonegap.com/start#ios-x4</a></li>
<li>Android: <a href="http://phonegap.com/start#android" >http://phonegap.com/start#android</a></li>
<li>BlackBerry: <a href="http://phonegap.com/start#blackberry" >http://phonegap.com/start#blackberry</a></li>
<li>Windows Phone: <a href="http://phonegap.com/start#wp" >http://phonegap.com/start#wp</a></li>
<li>WebOS: <a href="http://phonegap.com/start#webos" >http://phonegap.com/start#webos</a></li>
<li>Symbian: <a href="http://phonegap.com/start#symbian" >http://phonegap.com/start#symbian</a></li>
</ul>
<p>When developing PhoneGap applications, just keep in mind that you are running code inside of a web browser instance.   You develop your applications using HTML and JavaScript, not native code, so you don&#8217;t need anything special.   In fact, I personally do most of my development on the desktop using an HTML editor and the Chrome browser.  When I need device-specific functionality, or I need to test on a device, then I switch over the the device-specific environments.</p>
<p><a id="debug"></a></p>
<h1>How do you debug PhoneGap applications?</h1>
<p>Debugging PhoneGap applications can sometimes be the trickiest part of development.   If you are testing on a physical device, you can&#8217;t always get access to JavaScript exceptions when they happen.   There are a few strategies for debugging PhoneGap applications.</p>
<h3>Develop as much as possible on the desktop browser</h3>
<p>Since PhoneGap applications are written with HTML, CSS, and JavaScript, you can develop most of them using any HTML editor and debug them within a desktop web browser.  The latest versions of all major web browsers (including Chrome, IE, Firefox, Opera and Safari) provide rich debugging features. In the developer tools for the browsers, you can inspect HTML DOM elements, inspect CSS styles, set breakpoints in JavaScript, and introspect into memory &amp; JavaScript variables.   You can learn more about the desktop browser development tools at:</p>
<ul>
<li>Chrome Developer Tools: <a href="http://code.google.com/chrome/devtools/docs/overview.html" >http://code.google.com/chrome/devtools/docs/overview.html</a></li>
<li>Firefox via FireBug: <a href="http://getfirebug.com/" >http://getfirebug.com/</a></li>
<li>Safari Developer Tools: <a href="https://developer.apple.com/technologies/safari/developer-tools.html" >https://developer.apple.com/technologies/safari/developer-tools.html</a></li>
<li>IE Developer Tools: <a href="http://msdn.microsoft.com/en-us/ie/aa740478" >http://msdn.microsoft.com/en-us/ie/aa740478</a></li>
<li>Opera Developer Tools: <a href="http://dev.opera.com/articles/view/opera-developer-tools/" >http://dev.opera.com/articles/view/opera-developer-tools/</a></li>
</ul>
<p>Once you build the main aspects of your application using desktop tools, you can switch over to a device-specific environment to add device-specific behavior and integrate with PhoneGap APIs.</p>
<p><strong><span style="color: #ff0000;">It is imperative that you test your applications on actual devices!</span></strong>   Actual devices will have different runtime performance than desktop browsers and simulators, and may unearth different bugs/issues including API differences and different UX scenarios.</p>
<h3>Debug With debug.phonegap.com</h3>
<div>PhoneGap provides a hosted service that allows you to perform remote, on-device debugging through <a href="http://debug.phonegap.com/" >debug.phonegap.com</a>.  This uses the <a href="http://phonegap.github.com/weinre/" >Weinre</a> (Web Inspector Remote) debugging tool to allow you to remotely inspect the DOM, resource loading, network usage, timeline, and console output.   If you have used any of the developer tools listed above, this will look very familiar.  You will not be able to set breakpoints on the mobile device, but it is certainly better than nothing at all.</div>
<h3>Remote Web Inspector Through iOS 5</h3>
<div>There is a little known undocumented API introduced in iOS5 that allows you to perform remote debugging through the iOS5 Simulator.  You just need to enable remote debugging</div>
<div>
<pre class="brush: objc; title: ; notranslate">- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Uncomment to enable remote debugging
    [NSClassFromString(@&quot;WebView&quot;) _enableRemoteInspector];
    ...
}</pre>
<p>Then launch the application in the desktop iOS Simulator. Once the app is running, open a local Safari instance to: <a href="http://localhost:9999/" >http://localhost:9999/</a>. This will launch the remote debugger, complete with breakpoints and script introspection.</p>
</div>
<div>You can read more about this at: <a href="http://hiediutley.com/2011/11/22/debugging-ios-apps-using-safari-web-inspector/" >http://hiediutley.com/2011/11/22/debugging-ios-apps-using-safari-web-inspector/</a></div>
<h3>More Debugging Info</h3>
<div>You can also read more about debugging PhoneGap applications at:</div>
<div>
<ul>
<li><a href="http://phonegap.com/2011/05/18/debugging-phonegap-javascript/" >http://phonegap.com/2011/05/18/debugging-phonegap-javascript/</a></li>
<li><a href="http://wiki.phonegap.com/w/page/16494768/Debugging%20PhoneGap%20Apps" >http://wiki.phonegap.com/w/page/16494768/Debugging%20PhoneGap%20Apps</a></li>
</ul>
</div>
<p><a id="architect"></a></p>
<h1>How do you architect PhoneGap applications?</h1>
<p>You generally architect PhoneGap applications the same way that you create mobile web experiences. The difference is that the initial HTML assets are available locally, instead of on a remote server.   The PhoneGap application loads the initial HTML, which can then request resources from a server, or from the local environment.   Since PhoneGap is based in a browser, it behaves exactly as you would expect a web browser to behave.  You can load multiple pages; however, keep in mind that once you load/unload a page you may lose any data that is stored in memory via JavaScript.   PhoneGap also supports the single-page web experience model. I strongly suggest using the single-page architecture approach.</p>
<h3>Single-Page Architecture</h3>
<p>A single-page architecture refers to the practice of having a single HTML page that dynamically updates based upon data and/or user input.  You can think of this as closer to a true client/server architecture where there is a client application (written with HTML &amp; JS) and a separate server structure for serving data.  All client-side application logic resides in JavaScript.  The client application may request data and update its views without reloading the current web page.</p>
<p>Using a Single-Page architecture allows you to maintain data in-memory, in JavaScript, which allows you to have a stateful, yet dynamic user interface.   You can read more about single-page architectures at: <a href="http://en.wikipedia.org/wiki/Single-page_application" >http://en.wikipedia.org/wiki/Single-page_application</a></p>
<p>PhoneGap applications can be architected with any of the common JS architectural frameworks, including <a href="http://angularjs.org/#/" >Angular</a>, <a href="http://emberjs.com/" >Ember</a>, <a href="http://documentcloud.github.com/backbone/" >Backbone</a>, <a href="http://mustache.github.com/" >Mustache</a>, etc&#8230;   Fellow Adobe evangelist <a href="http://coenraets.org/blog/" >Christophe Coenraets has some great content on these topics</a>.</p>
<p><a id="distribute"></a></p>
<h1>How do you get PhoneGap apps on devices and into application ecosystems?</h1>
<p>PhoneGap applications can be deployed using the same guidelines for native applications for each given platform.   You must follow the rules of each hardware platform/vendor, and there is no way to get around that.     You can compile the executables for each platform yourself using each platform&#8217;s specific build process, or you can use <a href="https://build.phonegap.com/apps" >build.phonegap.com</a> to compile them for you.   <a href="https://build.phonegap.com/apps" >build.phonegap.com</a> is a hosted service that will compile platform-specific application distributable files for you.   In either case, the output of the build process is a platform-specific binary file: IPA for iOS, APK for Android, etc&#8230;   You can read more about distributing to various application ecosystems, and each system&#8217;s signing/certificate requirements at:</p>
<ul>
<li>iOS App Store: <a href="https://developer.apple.com/programs/ios/distribute.html" >https://developer.apple.com/programs/ios/distribute.html</a></li>
<li>Google Android Market: <a href="https://market.android.com/publish" >https://market.android.com/publish</a></li>
<li>Amazon App Store: <a href="https://developer.amazon.com/welcome.html" >https://developer.amazon.com/welcome.html</a></li>
<li>BlackBerry App World: <a href="https://bdsc.webapps.blackberry.com/devzone/appworld" >https://bdsc.webapps.blackberry.com/devzone/appworld</a></li>
<li>Barnes &amp; Nobe Nook Store: <a href="https://nookdeveloper.barnesandnoble.com" >https://nookdeveloper.barnesandnoble.com</a></li>
<li>Windows Phone Marketplace: <a href="http://msdn.microsoft.com/en-us/library/ff941089(v=vs.92).aspx" >http://msdn.microsoft.com/en-us/library/ff941089(v=vs.92).aspx</a></li>
</ul>
<p><a id="difference"></a></p>
<h1>What is the difference between PhoneGap and AIR?</h1>
<p>The most fundamental differences between PhoneGap and AIR is that you develop AIR applications using tools rooted in the Flash Platform (Flex, Flash, ActionScript, MXML), and you develop PhoneGap applications using HTML, CSS, &amp; JavaScript.   AIR applications use the AIR runtime, which allows you to have a single code base, with the exact same expected behavior across all supported platforms.   PhoneGap applications run inside of the native web browser component for each supported platform.  For this reason, a PhoneGap codebase may behave slightly different between separate platforms, and you will need to account for this during your development efforts.</p>
<p>Air applications can be built for iOS, Android, BlackBerry Playbook, and the desktop (mac and windows), with future support for Windows Metro (Windows 8 mobile interface). You can read more about AIR&#8217;s supported platforms at: <a href="http://www.adobe.com/products/air/tech-specs.html" >http://www.adobe.com/products/air/tech-specs.html</a></p>
<p>PhoneGap applications can be built for iOS, Android, BlackBerry, Windows Phone 7, HP WebOS, Symbian, and Samsung Bada. You can read more about PhoneGap&#8217;s supported platforms at: <a href="http://phonegap.com/about/features" >http://phonegap.com/about/features</a></p>
<p>ActionScript has strongly-typed objects and supports <a href="http://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)" >classical inheritance</a> programming models. AIR applications can also be built using the Flex framework, which allows you to rapidly build enterprise-class applications.   Components in AIR applications are logical objects that have behaviors, properties, and a graphics context.</p>
<p>JavaScript-based applications support <a href="http://en.wikipedia.org/wiki/Prototype-based_programming" >prototypal inheritance</a>, and have numerous open-source frameworks/tools that can be used.   HTML/JS applications are all visualized through HTML DOM elements.  HTML interfaces can be created through basic string concatenation or JavaScript templating, but in the end you are really just creating DOM elements that have properties and styles.</p>
<p>There are some fundamental difference in the syntax of building these applications, however the basic concepts of interactive design and interactive development are identical.   Both platforms have valid strengths, which I could write about ad nauseum&#8230; I&#8217;ll save that for another post.</p>
<h1>Where to go next?</h1>
<p>Go download PhoneGap and get started at: <a href="http://phonegap.com/" >http://phonegap.com/</a> or check out what other people have been building in the PhoneGap showcase at: <a href="http://phonegap.com/apps" >http://phonegap.com/apps</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tricedesigns.com/2012/02/14/what-is-phonegap-other-common-questions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tell MS Word to stop pasting in styles</title>
		<link>http://www.raymondcamden.com/index.cfm/2012/2/14/Tell-MS-Word-to-stop-pasting-in-styles?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tell-ms-word-to-stop-pasting-in-styles</link>
		<comments>http://www.raymondcamden.com/index.cfm/2012/2/14/Tell-MS-Word-to-stop-pasting-in-styles#comments</comments>
		<pubDate>Tue, 14 Feb 2012 18:18:00 +0000</pubDate>
		<dc:creator>Raymond Camden's Blog</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.raymondcamden.com/index.cfm/2012/2/14/Tell-MS-Word-to-stop-pasting-in-styles</guid>
		<description><![CDATA[
				
				
				This is something that probably everyone knows, and frankly, if I had taken the time to actually look it would have been obvious, but credit goes to Brian Rinaldi for letting me know about it.

Do you hate it when you paste text into MS ...]]></description>
			<content:encoded><![CDATA[
				
				
				This is something that probably everyone knows, and frankly, if I had taken the time to actually look it would have been obvious, but credit goes to Brian Rinaldi for letting me know about it.

Do you hate it when you paste text into MS Word and it...
				
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/tell-ms-word-to-stop-pasting-in-styles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Mobile Learning should be more than converting Desktop eLearning to HTML5</title>
		<link>http://rjacquez.com/mobile-learning-is-more-than-converting-desktop-elearning-to-html5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mobile-learning-is-more-than-converting-desktop-elearning-to-html5&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mobile-learning-should-be-more-than-converting-desktop-elearning-to-html5</link>
		<comments>http://rjacquez.com/mobile-learning-is-more-than-converting-desktop-elearning-to-html5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mobile-learning-is-more-than-converting-desktop-elearning-to-html5#comments</comments>
		<pubDate>Tue, 14 Feb 2012 14:26:27 +0000</pubDate>
		<dc:creator>RJ Jacquez</dc:creator>
				<category><![CDATA[eLearning]]></category>

		<guid isPermaLink="false">http://rjacquez.com/?p=1336</guid>
		<description><![CDATA[<div><a href="http://twitter.com/share?url=http://rjacquez.com/mobile-learning-is-more-than-converting-desktop-elearning-to-html5/&#38;text=Mobile%20Learning%20should%20be%20more%20than%20converting%20Desktop%20eLearning%20to%20HTML5&#38;via=rjacquez&#38;related="><img align="left" src="http://rjacquez.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none" alt="" /></a></div>
Over the weekend, I was looking at the entries submitted to the Adobe Captivate HTML5 Contest, hosted by my former Adobe colleagues. The basic idea behind this contest is that Adobe Captivate 5.5 users create a project and then use the HTML5 Converter for Adobe Captivate to convert it into HTML5. The entry with the [...]]]></description>
			<content:encoded><![CDATA[
<div class="twitterbutton" style="display: block; text-align: left;"><a href="http://twitter.com/share?url=http://rjacquez.com/mobile-learning-is-more-than-converting-desktop-elearning-to-html5/&amp;text=Mobile%20Learning%20should%20be%20more%20than%20converting%20Desktop%20eLearning%20to%20HTML5&amp;via=rjacquez&amp;related="><img align="left" src="http://rjacquez.com/wp-content/plugins//easy-twitter-button/i/buttons/en/tweetn.png" style="border: none;" alt="" /></a></div>
<p>Over the weekend, I was looking at the entries submitted to the Adobe Captivate HTML5 Contest, hosted by my former Adobe colleagues. The basic idea behind this contest is that Adobe Captivate 5.5 users create a project and then use the HTML5 Converter for Adobe Captivate to convert it into HTML5. The entry with the most votes wins.</p>
<p>First, I’d like to say that I applaud the idea around this contest because it adds some much-needed engagement to the Captivate community, however I wonder if Adobe may be sending the wrong message to users who are interested in mobile, regarding what mobile learning (mLearning) is. </p>
<p>In other words, while I think HTML5 will play a big role in how we develop and deploy learning and how our learners will consume those learning experiences on mobile, I think mLearning should be a lot more than just ‘converting’ desktop eLearning to HTML5.</p>
<p>Mobile experiences are radically different from traditional desktop experiences and thus it’s important to approach the transition to mLearning thinking that our mLearners are used to and expect different things.</p>
<p>Mobile requires a different strategy, a different way of thinking about content, navigation and how to best utilize the device’s real estate and built-in mobile features like gps, camera, accelerometer, etc.</p>
<p>I think the onus is on eLearning Tools Vendors (i.e. Articulate, Adobe, Lectora, TechSmith, Zebra Apps, etc) to really think about this and make sure the next generation of their tools provides new and innovating ways of truly harnessing the power of mobile learning.</p>
<p>Luckily for all of us in eLearning, we won’t the first industry to make this transition to mobile and because many other industry have gone through, or are going through this same process, there’s a lot to learn from their experiences. I’ve been bookmarking and taking lots of notes recently on great examples I find of companies that are approaching this transition, and it’s my plan to share some lesson that I feel are important for us to emulate. Please stay tuned.</p>
<p>Until then, I leave you with a lively discussion I had on Twitter on this very subject and the replies I received from some of my followers who are also very excited about mobile learning. Let me know what you think about this by leaving a comment below:</p>
<p><script src="http://storify.com/rjacquez/mlearning-should-be-more-than-converting-desktop.js"></script><noscript>[<a href="http://storify.com/rjacquez/mlearning-should-be-more-than-converting-desktop" >View the story "#mLearning should be more than converting desktop eLearning to HTML5" on Storify</a>]</noscript></p>
]]></content:encoded>
			<wfw:commentRss>http://rjacquez.com/mobile-learning-is-more-than-converting-desktop-elearning-to-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stephanie Sullivan Explains HTML5 Semantics</title>
		<link>http://forta.com/blog/index.cfm/2012/2/14/Stephanie-Sullivan-Explains-HTML5-Semantics?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=stephanie-sullivan-explains-html5-semantics</link>
		<comments>http://forta.com/blog/index.cfm/2012/2/14/Stephanie-Sullivan-Explains-HTML5-Semantics#comments</comments>
		<pubDate>Tue, 14 Feb 2012 12:30:00 +0000</pubDate>
		<dc:creator>Ben Forta</dc:creator>
				<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://forta.com/blog/index.cfm/2012/2/14/Stephanie-Sullivan-Explains-HTML5-Semantics</guid>
		<description><![CDATA[
				
				Everyone's favorite Goddess of All Things Web,  Stephanie Sullivan Rewis, has just posted her 3rd article in an ADC series on HTML5 Semantics:

Part 1: New elements
Part 2: Document structure and global attributes
Part 3: Changed and absent e...]]></description>
			<content:encoded><![CDATA[
				
				Everyone's favorite Goddess of All Things Web,  Stephanie Sullivan Rewis, has just posted her 3rd article in an ADC series on HTML5 Semantics:

Part 1: New elements
Part 2: Document structure and global attributes
Part 3: Changed and absent eleme...
				
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/stephanie-sullivan-explains-html5-semantics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Love case – Valentine’s day app in Adobe AIR</title>
		<link>http://www.flashrealtime.com/love-case-valentines-day-app-in-adobe-air/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=love-case-%25e2%2580%2593-valentine%25e2%2580%2599s-day-app-in-adobe-air</link>
		<comments>http://www.flashrealtime.com/love-case-valentines-day-app-in-adobe-air/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 10:04:22 +0000</pubDate>
		<dc:creator>Tom Krcha</dc:creator>
		
		<guid isPermaLink="false">http://www.flashrealtime.com/?p=2609</guid>
		<description><![CDATA[
			
				
			
		
Check this pretty app by Silicon Jelly from Prague.
Fill the full name and the birth date of you and your companion and hit the buttons.

Download:
iOS: http://itunes.apple.com/us/app/love-case/id500708508
Android: https://market.andro...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http://www.flashrealtime.com/love-case-valentines-day-app-in-adobe-air/"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http://www.flashrealtime.com/love-case-valentines-day-app-in-adobe-air/&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Check this pretty app by Silicon Jelly from Prague.</p>
<p>Fill the full name and the birth date of you and your companion and hit the buttons.</p>
<p><img src="http://www.flashrealtime.com/wp-content/uploads/2012/02/CFnsOT1CXsqcq7K13jeqEeXF1IuOJMILta6eOqrhd0vauP9E1bxe9W3F9KEofGnwqow705.jpeg" alt="" title="Love Case" width="480" class="alignnone size-full wp-image-2610" /></p>
<p>Download:<br />
iOS: <a href="http://itunes.apple.com/us/app/love-case/id500708508">http://itunes.apple.com/us/app/love-case/id500708508</a><br />
Android: <a href="https://market.android.com/details?id=com.siliconjelly.lovebox">https://market.android.com/details?id=com.siliconjelly.lovebox</a></p>
<p>Trailer:<br />
<iframe width="480" height="244" src="http://www.youtube.com/embed/uUmNnyVZDWA" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashrealtime.com/love-case-valentines-day-app-in-adobe-air/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Powers Angry Birds On Facebook</title>
		<link>http://forta.com/blog/index.cfm/2012/2/13/Flash-Powers-Angry-Birds-On-Facebook?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=flash-powers-angry-birds-on-facebook</link>
		<comments>http://forta.com/blog/index.cfm/2012/2/13/Flash-Powers-Angry-Birds-On-Facebook#comments</comments>
		<pubDate>Tue, 14 Feb 2012 00:22:00 +0000</pubDate>
		<dc:creator>Ben Forta</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://forta.com/blog/index.cfm/2012/2/13/Flash-Powers-Angry-Birds-On-Facebook</guid>
		<description><![CDATA[<img src="https://fbcdn-photos-a.akamaihd.net/photos-ak-snc1/v85005/54/178222352279634/app_1_178222352279634_9996.gif" height="75" width="75" align="left" />The Flash based Angry Birds on Facebook that I <a href="http://forta.com/blog/index.cfm/2012/2/9/Angry-Birds-Coming-To-Facebook">mentioned</a> last week? It's <a href="https://apps.facebook.com/angrybirds/">live</a>, and <a href="http://blogs.adobe.com/flashplatform/2012/02/rovio-chooses-flash-player-11-with-support-for-3d-graphics.html%22">here</a> is some info on the project.]]></description>
			<content:encoded><![CDATA[
				
				<img src="https://fbcdn-photos-a.akamaihd.net/photos-ak-snc1/v85005/54/178222352279634/app_1_178222352279634_9996.gif" height="75" width="75" align="left">The Flash based Angry Birds on Facebook that I <a href="http://forta.com/blog/index.cfm/2012/2/9/Angry-Birds-Coming-To-Facebook">mentioned</a> last week? It's <a href="https://apps.facebook.com/angrybirds/">live</a>, and <a href=http://blogs.adobe.com/flashplatform/2012/02/rovio-chooses-flash-player-11-with-support-for-3d-graphics.html%22>here</a> is some info on the project. 
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/flash-powers-angry-birds-on-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Fun Apps w/ PhoneGap</title>
		<link>http://www.tricedesigns.com/2012/02/13/fun-apps-w-phonegap/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fun-apps-w-phonegap</link>
		<comments>http://www.tricedesigns.com/2012/02/13/fun-apps-w-phonegap/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 19:49:17 +0000</pubDate>
		<dc:creator>Andrew Trice</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[phonegap]]></category>

		<guid isPermaLink="false">http://www.tricedesigns.com/?p=1494</guid>
		<description><![CDATA[Here&#8217;s a silly/fun app I built &#8216;after hours&#8217; using PhoneGap.   It is a children&#8217;s drawing app built entirely with the HTML5 Canvas element, using a PhoneGap wrapper, targeting the iPad.  I was inspired by magnetic drawing toys that I often use when drawing with my daughter, and this was really, really easy and a [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a silly/fun app I built &#8216;after hours&#8217; using <a href="http://www.phonegap.com" >PhoneGap</a>.   It is a children&#8217;s drawing app built entirely with the HTML5 Canvas element, using a PhoneGap wrapper, targeting the iPad.  I was inspired by magnetic drawing toys that I often use when drawing with my daughter, and this was really, really easy and a lot of fun to build.  I used the exact HTML5 Canvas brush image/sketching technique that I have <a href="http://www.tricedesigns.com/2012/01/04/sketching-with-html5-canvas-and-brush-images/" >previously demonstrated</a> &#8211; the only change is that I added the new UI style elements and added support for multiple touch points. Otherwise, the drawing logic is identical.</p>
<blockquote><p><strong><img class="alignleft size-full wp-image-1464" title="lildoodle-icon" src="http://www.tricedesigns.com/wp-content/uploads/2012/01/lildoodle-icon.png" alt="" width="100" height="100" /><a href="http://tricedesigns.com/go?lildoodle" >Lil&#8217; Doodle</a></strong> is a great new iPad application for entertaining both you and your children! If you know how to use a children&#8217;s magnetic drawing toy, then you know how to use Lil&#8217; Doodle. Pick a &#8220;pen&#8221; shape, and start doodling. Your imagination is your only limit. If you want to erase everything and start over, just use the slider at the bottom. Doodle and have fun!</p></blockquote>
<p><iframe src="http://www.youtube.com/embed/oMb5O-FavA0?rel=0" frameborder="0" width="560" height="315"></iframe></p>
<p>Using the HTML5 Canvas inside of PhoneGap has great performance on iOS, and building the application using purely HTML, CSS, and JavaScript made it incredibly simple. After I wrote the core drawing engine for a previous <a href="http://http//www.tricedesigns.com/2012/01/04/sketching-with-html5-canvas-and-brush-images/" >blog post</a>, I whipped up the UI in one evening, and then started user testing with my little beta tester.  She found some issues that I had overlooked, and a few days later I submitted it to the app store.</p>
<p>&#8230;and yes, she really does play with it:</p>
<p><img class="aligncenter" src="http://a4.mzstatic.com/us/r1000/071/Purple/41/df/73/mzl.eecujjnc.480x480-75.jpg" alt="" width="480" height="360" /></p>
<p>The app is currently available for iPad devices on iTunes &#8211; I&#8217;m about to start researching/testing performance on other platforms, so maybe soon it will be out in other ecosystems&#8230; we&#8217;ll see.   You can get it now at:</p>
<blockquote><p><a href="http://itunes.apple.com/us/app/lil-doodle/id496228112" ><img class="size-full wp-image-1456 alignnone" title="appstore" src="http://www.tricedesigns.com/wp-content/uploads/2012/01/appstore.png" alt="" width="144" height="50" /></a></p>
<p><a href="http://tricedesigns.com/go?lildoodle" >tricedesigns.com/go?lildoodle</a></p></blockquote>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tricedesigns.com/2012/02/13/fun-apps-w-phonegap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sample App with Backbone.js and Twitter Bootstrap</title>
		<link>http://coenraets.org/blog/2012/02/sample-app-with-backbone-js-and-twitter-bootstrap/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sample-app-with-backbone-js-and-twitter-bootstrap&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sample-app-with-backbone-js-and-twitter-bootstrap</link>
		<comments>http://coenraets.org/blog/2012/02/sample-app-with-backbone-js-and-twitter-bootstrap/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sample-app-with-backbone-js-and-twitter-bootstrap#comments</comments>
		<pubDate>Mon, 13 Feb 2012 18:51:18 +0000</pubDate>
		<dc:creator>Christophe</dc:creator>
				<category><![CDATA[Backbone.js]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Twitter Bootstrap]]></category>

		<guid isPermaLink="false">http://coenraets.org/blog/?p=3125</guid>
		<description><![CDATA[Backbone.js is a lightweight JavaScript framework that provides the basic infrastructure (Model, Collection, View, and Router classes) to bring structure to your Web applications. Twitter Bootstrap is a UI toolkit that provides simple and flexible HTML, CSS, and Javascript to implement popular user interface components and interactions. In other words, Backbone.js and Twitter Bootstrap focus [...]
	
<!-- Start WP Socializer Plugin - Retweet Button -->
<a href="http://twitter.com/?status=RT%20@%20Sample%20App%20with%20Backbone.js%20and%20Twitter%20Bootstrap%20http://coenraets.org/blog/?p=3125" target="_blank">Retweet this</a>
<!-- End WP Socializer Plugin - Retweet Button -->

	
	
<!-- Start WP Socializer Plugin - Facebook Button -->
<a href="https://www.facebook.com/sharer.php?u=http://coenraets.org/blog/2012/02/sample-app-with-backbone-js-and-twitter-bootstrap/" target="_blank">Share on Facebook</a>
<!-- End WP Socializer Plugin - Facebook Button -->



Follow @ccoenraets
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");]]></description>
			<content:encoded><![CDATA[<p><a href="http://documentcloud.github.com/backbone/">Backbone.js</a> is a lightweight JavaScript framework that provides the basic infrastructure (Model, Collection, View, and Router classes) to bring structure to your Web applications. </p>
<p><a href="http://twitter.github.com/bootstrap/index.html">Twitter Bootstrap</a> is a UI toolkit that provides simple and flexible HTML, CSS, and Javascript to implement popular user interface components and interactions.   </p>
<p>In other words, Backbone.js and Twitter Bootstrap focus on different areas of your application: core architecture and user interface respectively. Because of their well-defined and non-overlapping scope, Backbone.js and Twitter Bootstrap work well together. In general, I find a lightweight architectural framework and a UI toolkit to be a powerful combination, and an interesting alternative to full-stack frameworks: it gives you the flexibility to choose the library you like (if any) in the respective areas of your application.</p>
<h4>The Sample Application</h4>
<p>To give this combination a try, I put together a new sample application that uses Backbone.js to organize the code, and Twitter Bootstrap to organize the UI. The application is an Employee Directory that allows you to look for employees by name, view the details of an employee, and navigate up and down the Org Chart by clicking the employee&#8217;s manager or any of his/her direct reports.</p>
<p>You can run the application <a href="http://coenraets.org/directory">here</a>.</p>
<p><a href="http://coenraets.org/blog/wp-content/uploads/2012/02/directory1.gif"><img src="http://coenraets.org/blog/wp-content/uploads/2012/02/directory1.gif" alt="" title="directory1" width="640" height="526" class="aligncenter size-full wp-image-3197" /></a></p>
<p><a href="http://coenraets.org/blog/wp-content/uploads/2012/02/directory2.gif"><img src="http://coenraets.org/blog/wp-content/uploads/2012/02/directory2.gif" alt="" title="directory2" width="640" height="526" class="aligncenter size-full wp-image-3200" /></a><br />
<span id="more-3125"></span><br />
Backbone Directory is a single page application: index.html is essentially empty. Views are injected into and removed from the DOM as needed. Even though it is a single page application, the Backbone.js Router makes it easy to keep the different states of the app &#8220;bookmarkable&#8221; and &#8220;deep-linkable&#8221;.</p>
<h4>Twitter Bootstrap highlights</h4>
<p>&#8220;Backbone Directory&#8221; uses a number of the Twitter Bootstrap styles, components, and interactions: the 12-column grid with nested columns, a &#8220;Navbar&#8221;, a &#8220;Search Form&#8221; with dropdown,  the dropdown plugin, the Glyphicons icons, Info and Warning alerts, a &#8220;Well&#8221;, etc.</p>
<h4>Backbone.js highlights</h4>
<p>If you are new to Backbone.js, you may want to start with the tutorial (<a href="http://coenraets.org/blog/2011/12/backbone-js-wine-cellar-tutorial-part-1-getting-started/">part 1</a>, <a href="http://coenraets.org/blog/2011/12/backbone-js-wine-cellar-tutorial-part-2-crud/">part 2</a>, <a href="http://coenraets.org/blog/2011/12/backbone-js-wine-cellar-tutorial-part-3-deep-linking-and-application-states/">part 3</a>, and <a href="http://coenraets.org/blog/2012/01/backbone-js-lessons-learned-and-improved-sample-app/">postface</a>) I blogged recently. &#8220;Backbone Directory&#8221; includes some interesting elements not covered in the tutorial:</p>
<ul>
<li><strong>One-to-Many association.</strong> A one-to-many (Manager-to-Employees) association is defined in the Employee model (model/employeemodel.js) as a collection of employees (the direct reports). That collection is lazily fetched in the render() function of EmployeeFullView (view/employeedetails.js).</li>
<li><strong>Composite View.</strong> EmployeeFullView (views/employeedetails.js) is an example of a composite view. Its render() function instantiates two subviews: EmployeeView and EmployeeListView (to display the employee&#8217;s direct reports).
</ul>
<h4>Source Code</h4>
<p>The source code is available in <a href="https://github.com/ccoenraets/backbone-directory">this repository</a> on GitHub.</p>
<p>Your feedback and comments are appreciated.</p>

	
<!-- Start WP Socializer Plugin - Retweet Button -->
<a href="http://twitter.com/?status=RT%20@%20Sample%20App%20with%20Backbone.js%20and%20Twitter%20Bootstrap%20http://coenraets.org/blog/?p=3125" >Retweet this</a>
<!-- End WP Socializer Plugin - Retweet Button -->

	
	
<!-- Start WP Socializer Plugin - Facebook Button -->
<a href="https://www.facebook.com/sharer.php?u=http://coenraets.org/blog/2012/02/sample-app-with-backbone-js-and-twitter-bootstrap/" >Share on Facebook</a>
<!-- End WP Socializer Plugin - Facebook Button -->



Follow @ccoenraets
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
]]></content:encoded>
			<wfw:commentRss>http://coenraets.org/blog/2012/02/sample-app-with-backbone-js-and-twitter-bootstrap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make your Android PhoneGap app less scary</title>
		<link>http://www.raymondcamden.com/index.cfm/2012/2/13/Make-your-Android-PhoneGap-app-less-scary?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=make-your-android-phonegap-app-less-scary</link>
		<comments>http://www.raymondcamden.com/index.cfm/2012/2/13/Make-your-Android-PhoneGap-app-less-scary#comments</comments>
		<pubDate>Mon, 13 Feb 2012 13:53:00 +0000</pubDate>
		<dc:creator>Raymond Camden's Blog</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.raymondcamden.com/index.cfm/2012/2/13/Make-your-Android-PhoneGap-app-less-scary</guid>
		<description><![CDATA[
				
				
				For folks who are used to doing native Android development, this is old news, but for folks who may be new to it and coming from a PhoneGap perspective, I wanted to share a quick tip with you to help make your apps a bit less "scary" for...]]></description>
			<content:encoded><![CDATA[
				
				
				For folks who are used to doing native Android development, this is old news, but for folks who may be new to it and coming from a PhoneGap perspective, I wanted to share a quick tip with you to help make your apps a bit less "scary" for your users. ...
				
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/make-your-android-phonegap-app-less-scary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Adobe WebUp #2</title>
		<link>http://corlan.org/2012/02/13/adobe-webup-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adobe-webup-2&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adobe-webup-2</link>
		<comments>http://corlan.org/2012/02/13/adobe-webup-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adobe-webup-2#comments</comments>
		<pubDate>Mon, 13 Feb 2012 11:26:39 +0000</pubDate>
		<dc:creator>Mihai Corlan</dc:creator>
				<category><![CDATA[Conferences]]></category>

		<guid isPermaLink="false">http://corlan.org/?p=3402</guid>
		<description><![CDATA[I am happy to announce that the second event of the Adobe WebUp series has been announced and you can register yourself here. In the meantime we&#8217;ve changed the name from &#8220;Adobe Developer Days &#8211; Web Platform&#8221; to &#8220;Adobe WebUP&#8221;.
The second event is dedicated to HTML5 forms: what HTML5 forms are, how to style them, and [...]]]></description>
			<content:encoded><![CDATA[<div class="none" style="float: right; margin-left: 10px;"><g:plusone href="http://corlan.org/2012/02/13/adobe-webup-2/" size="tall" count="true"></g:plusone></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http://corlan.org/2012/02/13/adobe-webup-2/"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http://corlan.org/2012/02/13/adobe-webup-2/&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignnone size-full wp-image-3403" title="adobeWebup" src="http://corlan.org/wp-content/uploads/2012/02/adobeWebup.png" alt="" width="450" height="200" /></p>
<p>I am happy to announce that the second event of the <a href="http://corlan.org/2012/01/16/announcing-a-series-of-web-conferences-organized-by-adobe-romania/">Adobe WebUp series</a> has been announced and you can register yourself <a href="http://adobewebup.eventbrite.com/">here</a>. In the meantime we&#8217;ve changed the name from <em>&#8220;Adobe Developer Days &#8211; Web Platform&#8221;</em> to <em>&#8220;Adobe WebUP&#8221;</em>.</p>
<p>The second event is dedicated to HTML5 forms: what HTML5 forms are, how to style them, and browsers support for them.</p>
<p>I hope you&#8217;ll join us on February 23rd. You have to register <a href="http://adobewebup.eventbrite.com/">here</a> if you want to participate.</p>
]]></content:encoded>
			<wfw:commentRss>http://corlan.org/2012/02/13/adobe-webup-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Let the image dance for your tunes… Image Slideshows with audio using Adobe Captivate 5.5</title>
		<link>http://blogs.adobe.com/captivate/2012/02/let-the-image-dance-for-your-tunes-image-slideshows-with-audio-using-adobe-captivate-5-5.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=let-the-image-dance-for-your-tunes%25e2%2580%25a6-image-slideshows-with-audio-using-adobe-captivate-5-5</link>
		<comments>http://blogs.adobe.com/captivate/2012/02/let-the-image-dance-for-your-tunes-image-slideshows-with-audio-using-adobe-captivate-5-5.html#comments</comments>
		<pubDate>Sat, 11 Feb 2012 18:28:58 +0000</pubDate>
		<dc:creator>Vish</dc:creator>
				<category><![CDATA["Elearning authoring tools"]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe Captivate]]></category>
		<category><![CDATA[Adobe Captivate 5]]></category>
		<category><![CDATA[Adobe Captivate 5.5]]></category>
		<category><![CDATA[Adobe eLearning Suite]]></category>
		<category><![CDATA[Adobe eLearning Suite 2]]></category>
		<category><![CDATA[Adobe eLearning Suite 2.5]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[Captivate 5]]></category>
		<category><![CDATA[captivate training]]></category>
		<category><![CDATA[Ease of use]]></category>
		<category><![CDATA[eLearning Suite]]></category>
		<category><![CDATA[eLearning this week]]></category>
		<category><![CDATA[How do I...]]></category>
		<category><![CDATA[Rapid Authoring]]></category>
		<category><![CDATA[rapid elearning]]></category>
		<category><![CDATA[rapid elearning authoring tools]]></category>
		<category><![CDATA[Training and Tutorials]]></category>
		<category><![CDATA[Whats new]]></category>
		<category><![CDATA[Captivate]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/captivate/?p=3939</guid>
		<description><![CDATA[One of my favorite feature in Audio Editing dialog is, starting the next slide at a specific location at the audio waveform&#8230; just have to click &#8216;Select next slide at the cursor position&#8217; button or simply press Ctrl+S or Cmd+S. Are you...]]></description>
			<content:encoded><![CDATA[One of my favorite feature in Audio Editing dialog is, starting the next slide at a specific location at the audio waveform&#8230; just have to click &#8216;Select next slide at the cursor position&#8217; button or simply press Ctrl+S or Cmd+S. Are you wondering what&#8217;s the fun? The fun begins when you want to play the [...]]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/captivate/2012/02/let-the-image-dance-for-your-tunes-image-slideshows-with-audio-using-adobe-captivate-5-5.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shortening a string by removing text in the middle</title>
		<link>http://www.raymondcamden.com/index.cfm/2012/2/11/Shortening-a-string-by-removing-text-in-the-middle?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=shortening-a-string-by-removing-text-in-the-middle</link>
		<comments>http://www.raymondcamden.com/index.cfm/2012/2/11/Shortening-a-string-by-removing-text-in-the-middle#comments</comments>
		<pubDate>Sat, 11 Feb 2012 13:33:00 +0000</pubDate>
		<dc:creator>Raymond Camden's Blog</dc:creator>
				<category><![CDATA[ColdFusion]]></category>

		<guid isPermaLink="false">http://www.raymondcamden.com/index.cfm/2012/2/11/Shortening-a-string-by-removing-text-in-the-middle</guid>
		<description><![CDATA[
				
				
				That as to be most exciting blog title ever. If you are still reading this, I congratulate you. While checking my email on my phone yesterday, I took note of how GMail will shorted labels in the top level display. Instead of using the fu...]]></description>
			<content:encoded><![CDATA[
				
				
				That as to be most exciting blog title ever. If you are still reading this, I congratulate you. While checking my email on my phone yesterday, I took note of how GMail will shorted labels in the top level display. Instead of using the full label, whi...
				
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/shortening-a-string-by-removing-text-in-the-middle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Apache Flex Has A New Logo</title>
		<link>http://forta.com/blog/index.cfm/2012/2/9/Apache-Flex-Has-A-New-Logo?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apache-flex-has-a-new-logo</link>
		<comments>http://forta.com/blog/index.cfm/2012/2/9/Apache-Flex-Has-A-New-Logo#comments</comments>
		<pubDate>Thu, 09 Feb 2012 20:26:00 +0000</pubDate>
		<dc:creator>Ben Forta</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://forta.com/blog/index.cfm/2012/2/9/Apache-Flex-Has-A-New-Logo</guid>
		<description><![CDATA[
				
				The Apache Flex  project has a new logo. This winning design was created by Adrian Knopik of Fuse Collective. 
				]]></description>
			<content:encoded><![CDATA[
				
				<img src="http://incubator.apache.org/flex/images/flex.png" height="100" width="191" align="left">The <a href="http://incubator.apache.org/flex/">Apache Flex</a>  project has a new logo. This winning design was created by Adrian Knopik of Fuse Collective. 
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/apache-flex-has-a-new-logo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Angry Birds Coming To Facebook</title>
		<link>http://forta.com/blog/index.cfm/2012/2/9/Angry-Birds-Coming-To-Facebook?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=angry-birds-coming-to-facebook</link>
		<comments>http://forta.com/blog/index.cfm/2012/2/9/Angry-Birds-Coming-To-Facebook#comments</comments>
		<pubDate>Thu, 09 Feb 2012 18:46:00 +0000</pubDate>
		<dc:creator>Ben Forta</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://forta.com/blog/index.cfm/2012/2/9/Angry-Birds-Coming-To-Facebook</guid>
		<description><![CDATA[
				
				Rovio has announced that everyone's favorite Angry Birds are coming to Facebook on February 14th, complete with lots of fun new features. This Angry Birds experiences is built in Flash using Starling and Stage 3D. 
				]]></description>
			<content:encoded><![CDATA[
				
				Rovio has <a href="http://www.rovio.com/en/news/blog/129/sneak-peek-of-angry-birds-on-facebook">announced</a> that everyone's favorite Angry Birds are coming to Facebook on February 14th, complete with lots of fun new features. This Angry Birds experiences is built in Flash using <a href="http://starling-framework.org/">Starling</a> and <a href="http://www.adobe.com/devnet/flashplayer/stage3d.html">Stage 3D</a>. 
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/angry-birds-coming-to-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
		<item>
		<title>Speaking at the LA PhoneGap Meetup on Wednesday, February 15th</title>
		<link>http://blog.digitalbackcountry.com/2012/02/speaking-at-the-la-phonegap-meetup-on-wednesday-february-15th/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=speaking-at-the-la-phonegap-meetup-on-wednesday-february-15th</link>
		<comments>http://blog.digitalbackcountry.com/2012/02/speaking-at-the-la-phonegap-meetup-on-wednesday-february-15th/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 16:49:50 +0000</pubDate>
		<dc:creator>Ryan Stewart</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[los angeles]]></category>
		<category><![CDATA[phonegap]]></category>

		<guid isPermaLink="false">http://blog.digitalbackcountry.com/?p=3008</guid>
		<description><![CDATA[I&#8217;m doing a presentation in conjunction with HTC at the LA PhoneGap meetup on Wednesday, February 15th, so if you&#8217;re in the area, come by. I&#8217;m going to be covering Debugging and Deploying with PhoneGap, which includes talking about using &#8230; <a href="http://blog.digitalbackcountry.com/2012/02/speaking-at-the-la-phonegap-meetup-on-wednesday-february-15th/">Continue reading <span>&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m doing a presentation in conjunction with HTC at the <a href="http://www.meetup.com/laphonegap/events/48814092/">LA PhoneGap meetup on Wednesday, February 15th</a>, so if you&#8217;re in the area, come by. I&#8217;m going to be covering Debugging and Deploying with PhoneGap, which includes talking about using the debug tools like weinre and using PhoneGap Build to deploy it across a bunch of platforms. From the site:</p>
<blockquote>
<p><strong>AGENDA:</strong></p>
<p>1. Android Tablet Development (Lance Nanek &#038; Michael Ludden, HTC)</p>
<p>2. Debugging and Deploying with PhoneGap (Ryan Stewart, Adobe) </p>
<p>===============================</p>
<p><strong>Android Tablet Development.</strong> HTCdev has created a PhoneGap plugin for their Scribe Pen enabled tablets, one of which they will be giving away to a lucky developer. Check out <a href="http://www.htcdev.com">www.htcdev.com</a> for details.</p>
<p>Two of their lead developer evangelists will be demonstrating how HTCdev can help apps gain visibility, and how to easily program apps that let you create using Pen-based input.</p>
<p>Presenters:</p>
<p>Michael Ludden (<a href="http://twitter.com/Michael_Ludden">twitter.com/Michael_Ludden</a>) is a Developer Evangelist at HTC. Tasked with developer enablement, Michael is focusing on how best to help developers differentiate without fragmenting on HTC devices – creating great, unique user experiences that widen appeal of apps and catch that all important user’s attention. He will be showing how developers can take advantages of HTC’s app promotional programs, support, co marketing and robust toolsets to maximize an app’s influence. He has a bachelor’s degree from UCLA and has been working in development and with developers for years.</p>
<p>Lance Nanek (<a href="http://nanek.name">http://nanek.name</a>) is a Developer Evangelist at HTC. He has ten years of experience in information technology: implementing web metrics for ibm.com at IBM, writing Java web applications at State University of New York System Administration, and working on Android apps for many companies, including CardioTrainer by WorkSmart Labs with over three million downloads. He has a master’s degree in Computer Science from State University of New York University at Albany.</p>
<p><strong>Debugging and Deploying with PhoneGap.</strong> In this session, Ryan Stewart, a web developer evangelist from Adobe, will cover how to debug and deploy PhoneGap applications. He will talk about how to use Winere to get some insight into how your PhoneGap application is behaving on the device and how to set up the application so that it can easily be debugged. He will also cover some of the deployment options, including a deep dive on the ways to use PhoneGap Build to deploy quickly across multiple devices and operating systems. You&#8217;ll learn about things to be aware of, and things you can do to streamline the process.</p>
</blockquote>
<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.digitalbackcountry.com/2012/02/speaking-at-the-la-phonegap-meetup-on-wednesday-february-15th/" data-text="Speaking at the LA PhoneGap Meetup on Wednesday, February 15th" data-count="horizontal">Tweet</a><div class="alignright"><div class="g-plusone" data-href="http://blog.digitalbackcountry.com/2012/02/speaking-at-the-la-phonegap-meetup-on-wednesday-february-15th/" size="standard" count="true"></div></div>]]></content:encoded>
			<wfw:commentRss>http://blog.digitalbackcountry.com/2012/02/speaking-at-the-la-phonegap-meetup-on-wednesday-february-15th/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Muse Beta 6 Update Now Available</title>
		<link>http://forta.com/blog/index.cfm/2012/2/8/Muse-Beta-6-Update-Now-Available?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=muse-beta-6-update-now-available</link>
		<comments>http://forta.com/blog/index.cfm/2012/2/8/Muse-Beta-6-Update-Now-Available#comments</comments>
		<pubDate>Thu, 09 Feb 2012 01:50:00 +0000</pubDate>
		<dc:creator>Ben Forta</dc:creator>
				<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://forta.com/blog/index.cfm/2012/2/8/Muse-Beta-6-Update-Now-Available</guid>
		<description><![CDATA[
				
				Title says it all. A new update to Muse public beta is now available for download, with over 80 updates and enhancements, changes to the installer, and a top-requested feature based on feedback from the Muse user community. 
				]]></description>
			<content:encoded><![CDATA[
				
				Title says it all. A <a href="http://muse.adobe.com/_blog/Blog/post/beta6/">new update</a> to Muse public beta is now available for download, with over 80 updates and enhancements, changes to the installer, and a top-requested feature based on feedback from the Muse user community. 
				]]></content:encoded>
			<wfw:commentRss>http://adobeevangelists.com/superblog/2012/02/muse-beta-6-update-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="" length="" type="" />
		</item>
	</channel>
</rss>

