<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Bill Dawson</title>
	
	<link>http://www.billdawson.com</link>
	<description />
	<lastBuildDate>Tue, 07 Feb 2012 17:51:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/BillDawson" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="billdawson" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Titanium CoffeeScript Compiler Plugin – Also for Desktop</title>
		<link>http://www.billdawson.com/titanium-coffeescript-desktop/</link>
		<comments>http://www.billdawson.com/titanium-coffeescript-desktop/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 11:00:08 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Appcelerator Titanium]]></category>
		<category><![CDATA[coffeescript]]></category>
		<category><![CDATA[titanium]]></category>

		<guid isPermaLink="false">http://suchfuncoding.com/?p=193</guid>
		<description><![CDATA[In the Titanium CoffeeScript Compiler Plugin post from yesterday I introduced the plugin and described how to install it and use it for Titanium Mobile applications. Since then, I&#8217;ve had some inquiries concerning whether the plugin can be used for Titanium Desktop. Titanium Desktop does not support the registering and use of &#60;plugins&#62; in your [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>In the <a href="http://www.billdawson.com/titanium_coffee_script/">Titanium CoffeeScript Compiler Plugin</a> post from yesterday I introduced the plugin and described how to install it and use it for Titanium Mobile applications.  Since then, I&#8217;ve had some inquiries concerning whether the plugin can be used for Titanium Desktop.</p>
<p>Titanium Desktop does not support the registering and use of <code>&lt;plugins&gt;</code> in your project&#8217;s <code>tiapp.xml</code> file.  But today I updated the <code>plugin.py</code> so that it can be run directly by the python interpreter, thus making it available to command-line scripts.  Either the working directory needs to be your project folder &#8230;</p>
<pre><code>
~/myprojectfolder $ python "/Library/Application Support/Titanium/plugins/ti_coffee_plugin/1.0/plugin.py"
</code></pre>
<p>&#8230; or you can pass your project&#8217;s folder as an argument:</p>
<pre><code>
~ $ python "/Library/Application Support/Titanium/plugins/ti_coffee_plugin/1.0/plugin.py" ~/myprojectfolder
</code></pre>
<p>So if you install the <a href="https://github.com/billdawson/ti_coffee_plugin/blob/master/plugin.py">newest version of plugin.py</a> (please see the <a href="http://www.billdawson.com/titanium_coffee_script/">previous post and video</a> &#8212; or the <a href="https://github.com/billdawson/ti_coffee_plugin/blob/master/README.md">README</a> &#8212; for installation instructions), then run the script whenever you&#8217;re about to build your Titanium Desktop project, then you&#8217;re good to go.</p>
<p><strong>Better yet&#8230;</strong></p>
<p>If you are using <a href="http://preview.appcelerator.com/studio/">Titanium Studio</a>, which I highly recommend you do, you can take advantage of its Eclipse capabilities and add a &#8220;builder&#8221; to your project so that the plugin.py gets executed automatically each time you build.  This video shows how to do that:</p>
<p><iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/2ikb-4tdygg" frameborder="0" allowfullscreen></iframe></p>
<p class="alert">Note that the use of <em>Builders</em> is just one way in which custom actions can be executed inside Titanium Studio.  Take a look at the Titanium Studio documentation section regarding <a href="http://wiki.appcelerator.org/display/tis/Customizing+Studio">Customizing Studio</a>, which includes a sample script that executes <a href="http://wiki.appcelerator.org/display/tis/Trigger+on+Save">when a file is saved inside Titanium Studio</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.billdawson.com/titanium-coffeescript-desktop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Titanium CoffeeScript Plugin</title>
		<link>http://www.billdawson.com/titanium_coffee_script/</link>
		<comments>http://www.billdawson.com/titanium_coffee_script/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 22:30:49 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Appcelerator Titanium]]></category>
		<category><![CDATA[coffeescript]]></category>
		<category><![CDATA[titanium]]></category>

		<guid isPermaLink="false">http://suchfuncoding.com/?p=174</guid>
		<description><![CDATA[I&#8217;ve created a small plugin for Titanium Mobile which will scan your Resources/ folder (and sub-folders) at build time and, if it finds any CoffeeScript .coffee files, will run the coffee compiler on them to produce the .js files. Since build plugins run before the platform-specific build system kicks in, this actually works. Find the [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.billdawson.com/titanium_coffee_script/" title="Permanent link to Titanium CoffeeScript Plugin"><img class="post_image alignleft remove_bottom_margin frame" src="http://www.billdawson.com/wp-content/uploads2/2012/02/titanium-coffeescript-example1.png" width="220" height="182" alt="Post image for Titanium CoffeeScript Plugin" /></a>
</p><p>I&#8217;ve created a small plugin for Titanium Mobile which will scan your <code>Resources/</code> folder (and sub-folders) at build time and, if it finds any CoffeeScript <code>.coffee</code> files, will run the <code>coffee</code> compiler on them to produce the <code>.js</code> files.  Since build plugins run before the platform-specific build system kicks in, this actually works.</p>
<p>Find the project on GitHub at:</p>
<p><a href="https://github.com/billdawson/ti_coffee_plugin">https://github.com/billdawson/ti_coffee_plugin</a></p>
<p>The README includes installation information.  The short video below shows examples of installation and use.</p>
<p><strong>NOTE: This is not an official Appcelerator project or utility.  Do not request support from Appcelerator.  Instead, feel free to file a ticket in the Issues section of the GitHub project, and I&#8217;ll try my best to respond in a timely fashion.</strong></p>
<p><object width="640" height="390"><param name="movie" value="http://www.youtube.com/v/Jxu_5wcS9YY&#038;hl=en_US&#038;feature=player_embedded&#038;version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/Jxu_5wcS9YY&#038;hl=en_US&#038;feature=player_embedded&#038;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.billdawson.com/titanium_coffee_script/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Titanium Mobile 1.3 Android Preview Part 3: Vertical Layouts</title>
		<link>http://www.billdawson.com/titanium-1-3-for-android-part3/</link>
		<comments>http://www.billdawson.com/titanium-1-3-for-android-part3/#comments</comments>
		<pubDate>Wed, 05 May 2010 13:10:23 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Appcelerator Titanium]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[appcelerator]]></category>
		<category><![CDATA[titanium]]></category>
		<category><![CDATA[titanium-1.3-android]]></category>

		<guid isPermaLink="false">http://suchfuncoding.com/?p=152</guid>
		<description><![CDATA[This is Part 3 of a series of posts about what&#8217;s coming up for Android development in the new Appcelerator Titanium Mobile SDK 1.3, which should be pushed out this week. This time I&#8217;m featuring vertical layouts, which were implemented by Marshall Culpepper (@marshall_law.) Vertical layouts allow for relative positioning along a vertical grid. Prior [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.billdawson.com/wp-content/uploads2/2012/02/vlayout.png"><img class="alignleft size-medium wp-image-153" title="Vertical layout in Titanium" src="http://suchfuncoding.com/wp-content/uploads/2010/05/vlayout-300x151.png" alt="Vertical layout in Titanium" width="300" height="151" /></a>This is Part 3 of a <a href="http://billdawson.com/tag/titanium-1-3-android/">series of posts</a> about what&#8217;s coming up for Android development in the new Appcelerator Titanium Mobile SDK 1.3, which should be pushed out this week.</p>
<p>This time I&#8217;m featuring vertical layouts, which were implemented by Marshall Culpepper (<a href="http://twitter.com/marshall_law" target="_twitter">@marshall_law</a>.)<br />
<span id="more-288"></span></p>
<p>Vertical layouts allow for relative positioning along a vertical grid.  Prior to this capability, you pretty much always needed to provide absolute positioning for your views and controls.  If you follow the Titanium iPhone developments, you know that vertical layouts have been available there for a few versions now.  They&#8217;ve now arrived to Android as well.</p>
<p>This very simple and unattractive example shows labels, text boxes and buttons stacked vertically. </p>
<p><a href="http://suchfuncoding.com/wp-content/uploads/2010/05/vlayout1.png"><img src="http://suchfuncoding.com/wp-content/uploads/2010/05/vlayout1-204x300.png" alt="Vertical Layout in Titanium for Android example 1" title="vlayout1" width="204" height="300" class="aligncenter size-medium wp-image-157" /></a></p>
<p>To achieve this, I did not need to do any absolute position whatsoever.  The code was this simple:</p>
<pre>
var win = Ti.UI.currentWindow;
win.layout = 'vertical';  

for (var i = 0; i < 3; i++) {
    win.add(
        Ti.UI.createLabel({
            text: 'This is label ' + i,
            color: 'black',
            width: 'auto',
            height: 'auto'
    }));
    win.add(
        Ti.UI.createTextField({
            hintText: 'This is text field ' + i,
            width: 'auto',
            height: 'auto'
    }));
    win.add(
        Ti.UI.createButton({
            title: 'This is button ' + i,
            width: 'auto',
            height: 'auto'
    }));
}
</pre>
<p>As you see, no "top" attributes were specified and all "height" attributes were just set to "auto".</p>
<p>Obviously sometimes you want to grid things horizontally as well, while still maintaining an overall vertical layout going down the screen.  You can achieve this by adding views to your layout, and positioning child controls inside the views using absolute positioning.  This hideous example shows three views which adhere to the vertical layout -- one stacked upon the other -- without specific 'top' properties.  The first view has, within itself, some absolutely positioned controls, including a label whose 'left' and 'top' properties are specified.  </p>
<p><a href="http://suchfuncoding.com/wp-content/uploads/2010/05/vlayout3.png"><img src="http://suchfuncoding.com/wp-content/uploads/2010/05/vlayout3-201x300.png" alt="Vertical layout in Titanium Android, example 2" title="vlayout3" width="201" height="300" class="aligncenter size-medium wp-image-163" /></a></p>
<p>The code for that example is as follows:</p>
<pre>
var win = Ti.UI.currentWindow ;
win.layout = 'vertical';

var view1 = Ti.UI.createView({
    backgroundColor: 'red',
    width: 'auto',
    height: 'auto'
});

var label1 = Ti.UI.createLabel({
    text: 'view1/label1',
    color: 'white',
    left: 1,
    top: 1,
    width: 100,
    height: 50,
    verticalAlign: 'top',
    backgroundColor: 'blue'
});

view1.add(label1);

var label2 = Ti.UI.createLabel({
    text: 'view1/label2',
    color: 'black',
    backgroundColor: 'gray',
    left: 110,
    width: 100,
    verticalAlign: 'top',
    top: 20,
    height: 70
});

view1.add(label2);

win.add(view1);

var view2 = Ti.UI.createView({
    backgroundColor: 'purple',
    width: 'auto',
    height: 80
});

var label3 = Ti.UI.createLabel({
    backgroundColor: 'green',
    color: 'white',
    verticalAlign: 'top',
    width: 'auto',
    height: 'auto',
    text: 'view2/label1'
});

view2.add(label3);

win.add(view2);

var view3 = Ti.UI.createView({
    backgroundColor: 'black',
    width: 'auto',
    height: 'auto'
});

var label4 = Ti.UI.createLabel({
    color: 'white',
    text: 'view3/label1',
    left: 1
});

view3.add(label4);
win.add(view3);
</pre>
<p>Stay tuned for more Android goodness!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.billdawson.com/titanium-1-3-for-android-part3/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Titanium Mobile 1.3 Android Preview Part 2: Launching Videos from WebView</title>
		<link>http://www.billdawson.com/titanium-1-3-for-android-part2/</link>
		<comments>http://www.billdawson.com/titanium-1-3-for-android-part2/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 15:50:46 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Appcelerator Titanium]]></category>
		<category><![CDATA[appcelerator]]></category>
		<category><![CDATA[titanium]]></category>
		<category><![CDATA[titanium-1.3-android]]></category>

		<guid isPermaLink="false">http://suchfuncoding.com/?p=145</guid>
		<description><![CDATA[This is Part 2 of a series of posts about what&#8217;s coming up for Android development in the new Appcelerator Titanium Mobile SDK 1.3, which is coming next week. Here in Part 2, I feature the ability of the WebView control to handle mime types for videos and then launch the full-screen video player appropriately. [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://suchfuncoding.com/wp-content/uploads/2010/04/webview-android-video.png"><img class="alignleft size-medium wp-image-149" title="webview-android-video" src="http://suchfuncoding.com/wp-content/uploads/2010/04/webview-android-video-300x293.png" alt="" width="300" height="293" /></a>This is Part 2 of a <a href="http://billdawson.com/tag/titanium-1-3-android/">series of posts</a> about what&#8217;s coming up for Android development in the new Appcelerator Titanium Mobile SDK 1.3, which is coming next week.</p>
<p>Here in Part 2, I feature the ability of the WebView control to handle mime types for videos and then launch the full-screen video player appropriately.  This magic was programmed by Marshall Culpepper (<a href="http://twitter.com/marshall_law">@marshall_law</a>.)<br />
<span id="more-287"></span></p>
<p>In this short video, I show the Android emulator running a small Titanium app that contains just a label (the one that reads &#8220;WebView control showing http&#8230;&#8221;) and a WebView control that is displaying <a href="http://vimeo.com/mculpepper" target="_vimeo">Marshall&#8217;s Vimeo page</a>.  I click on one of Marshall&#8217;s videos, which takes me to that video&#8217;s page.  I then click on the play button for that video, which successfully launches the video player.  That last step would not have worked in prior versions.</p>
<p>Nice job, Marshall!</p>
<p>Stay tuned for more Android goodness!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/2SKloc0E_Yo&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/2SKloc0E_Yo&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.billdawson.com/titanium-1-3-for-android-part2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Titanium Mobile 1.3 Android Preview Part 1: EmailDialog</title>
		<link>http://www.billdawson.com/titanium-1-3-for-android-part1/</link>
		<comments>http://www.billdawson.com/titanium-1-3-for-android-part1/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 14:12:00 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Appcelerator Titanium]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[titanium]]></category>
		<category><![CDATA[titanium-1.3-android]]></category>

		<guid isPermaLink="false">http://suchfuncoding.com/?p=135</guid>
		<description><![CDATA[Appcelerator Titanium 1.3 is coming next week, and I thought I&#8217;d take the time to go over at least a few of the upcoming features related to their Android support.  I&#8217;ll make this a short series of blog posts tagged &#8220;titanium-1.3-android&#8220;. So for the first installment, I couldn&#8217;t help but indulge myself and feature the [...]]]></description>
			<content:encoded><![CDATA[<p></p><div id="attachment_138" class="wp-caption alignleft" style="width: 300px">
	<a href="http://suchfuncoding.com/wp-content/uploads/2010/04/2010-04-30_1300.png"><img class="size-medium wp-image-138 " title="Titanium 1.3 EmailDialog" src="http://suchfuncoding.com/wp-content/uploads/2010/04/2010-04-30_1300-300x297.png" alt="Titanium 1.3 EmailDialog now available for both iPhone and Android." width="300" height="297" /></a>
	<p class="wp-caption-text">Titanium 1.3 EmailDialog in both iPhone and Android emulators</p>
</div>
<p>Appcelerator Titanium 1.3 is coming next week, and I thought I&#8217;d take the time to go over at least a few of the upcoming features related to their Android support.  I&#8217;ll make this a short series of blog posts tagged &#8220;<a href="http://billdawson.com/tag/titanium-1-3-android/">titanium-1.3-android</a>&#8220;.</p>
<p>So for the first installment, I couldn&#8217;t help but indulge myself and feature the item that I actually contributed to the project (with loads of hand-holding from Don Thorp (<a href="http://twitter.com/donthorp" target="_twitter">@donthorp</a>)), namely the <a href="http://developer.appcelerator.com/apidoc/mobile/1.2/Titanium.UI.EmailDialog-object" target="_tiapi">EmailDialog</a>.<span id="more-286"></span></p>
<p>The EmailDialog was available in the pre-0.9 versions of the Titanium Mobile SDK, but since the major architectural change that came with 0.9, it has been waiting to be ported over.  Now it&#8217;s ready for 1.3.</p>
<p>To see it in action, I&#8217;ve included the screenshot showing the iPhone and Android emulators side-by-side while running the <a href="http://github.com/appcelerator/titanium_mobile/blob/master/demos/KitchenSink/Resources/examples/email_dialog.js" target="_tiapi">KitchenSink example for the EmailDialog</a>.</p>
<p>Stay tuned for more Android goodness!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.billdawson.com/titanium-1-3-for-android-part1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So you want to build the Titanium Mobile SDK from source</title>
		<link>http://www.billdawson.com/build-titanium-from-source/</link>
		<comments>http://www.billdawson.com/build-titanium-from-source/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 19:56:44 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Appcelerator Titanium]]></category>

		<guid isPermaLink="false">http://suchfuncoding.com/?p=128</guid>
		<description><![CDATA[This is a quick, very quick, blog entry about building Titanium Mobile from source. No hand-holding or fancy screenshots. Get the sources from Github. You can use git if you want or just download the sources. For the latter, see the &#8220;Download Source&#8221; link near the upper-right of the Github page. Make sure you have [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>This is a quick, very quick, blog entry about building Titanium Mobile from source.  No hand-holding or fancy screenshots.</p>
<ol>
<li>Get the sources from <a href="http://github.com/appcelerator/titanium_mobile">Github</a>.  You can use git if you want or just download the sources.  For the latter, see the &#8220;Download Source&#8221; link near the upper-right of the Github page.</li>
<li>Make sure you have Python 2.6 or higher on your system.  If you don&#8217;t, you go figure out how to install it!  Maybe 2.5 is okay &#8212; I&#8217;m not going to go check.  What I can tell you is that 2.6 works.</li>
<li>Make sure you have <a href="http://www.scons.org/">Scons</a> 1.3 installed.  And make the &#8220;scons&#8221; script accessible via your PATH so you can call it from anywhere.</li>
<li>Make sure you have the Sun (Oracle) <a href="http://java.sun.com/javase/downloads/index.jsp">Java JDK 6</a> installed.  You may also need to set your JAVA_HOME properly and you should also put JDK&#8217;s bin folder in your PATH.  You can figure all that out on your own!</li>
</ol>
<p>When all that&#8217;s finished, go the source folder where you put the Titanium Mobile sources (the folder with the SConstruct file in it) and enter the &#8220;scons&#8221; command.  </p>
<p>When it&#8217;s done building, copy the resulting mobilesdk-x.x.x-[os].zip in the &#8220;dist/&#8221; folder to your local Titanium SDK installation folder.  The location of that folder depends on your OS.  On my Mac it&#8217;s &#8220;/Library/Application Support/Titanium&#8221;.  On my Ubuntu box it&#8217;s under ~/.titanium.  On my Windows XP box it&#8217;s under &#8220;c:\documents and settings\all users\application data\titanium&#8221;.  (God I hate Windows XP.)  If you can&#8217;t find your location, try searching your file system for a folder named &#8220;Titanium&#8221;.  It&#8217;s the folder that has &#8220;mobilesdk&#8221; as a subfolder.</p>
<p>Unzip the ZIP there.</p>
<p>You should be ready to go.  Next time you use the Titanium Developer, you should see the newer SDK available as one of the options next to &#8220;Titanium SDK&#8221; on your mobile project&#8217;s properties screen. </p>
<p>Did I forget anything?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.billdawson.com/build-titanium-from-source/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Should Appcelerator go back to using a “classic” forum?</title>
		<link>http://www.billdawson.com/should-appcelerator-go-back-to-using-a-classic-forum/</link>
		<comments>http://www.billdawson.com/should-appcelerator-go-back-to-using-a-classic-forum/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 14:40:51 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Appcelerator Titanium]]></category>

		<guid isPermaLink="false">http://suchfuncoding.com/?p=102</guid>
		<description><![CDATA[I&#8217;ve noticed a fair amount of people who comment in the Q&#038;A section at the Appcelerator Titanium developer website don&#8217;t really like the style of Q&#038;A forum that resembles stackoverflow.com. As there&#8217;s no way to put a poll up there at the Appcelerator Q&#038;A site, I thought I&#8217;d try a poll here on my site. [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;ve noticed a fair amount of people who comment in the <a href="http://developer.appcelerator.com/questions">Q&#038;A section</a> at the Appcelerator Titanium developer website don&#8217;t really like the style of Q&#038;A forum that resembles <a href="http://stackoverflow.com">stackoverflow.com</a>.</p>
<p>As there&#8217;s no way to put a poll up there at the Appcelerator Q&#038;A site, I thought I&#8217;d try a poll here on my site.</p>
<p>So if you have an opinion on this issue, feel free to vote in the Poll in the right sidebar here.  If you select &#8220;a third way&#8221;, I encourage you to leave a comment to this post so you can describe your idea.</p>
<p>This is, of course, totally and completely unscientific.  First of all, I would imagine that most people who take the time to vote are people who want to go back to a classic forum.  People who are pleased with the status quo might not take the time to vote.</p>
<p>Nevertheless, I&#8217;m interested in running the poll and seeing responses.</p>
<p>[Update 22 April 2010: Poll closed, with final score 23-0 in favor of "classic."] </p>
]]></content:encoded>
			<wfw:commentRss>http://www.billdawson.com/should-appcelerator-go-back-to-using-a-classic-forum/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Titanium and Android: Load the emulator first!</title>
		<link>http://www.billdawson.com/titanium-and-android-load-the-emulator-first/</link>
		<comments>http://www.billdawson.com/titanium-and-android-load-the-emulator-first/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 13:16:38 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Appcelerator Titanium]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[appcelerator]]></category>
		<category><![CDATA[titanium]]></category>

		<guid isPermaLink="false">http://suchfuncoding.com/?p=84</guid>
		<description><![CDATA[[UPDATE: Since Mobile SDK 1.3 is released, I no longer recommend this. The launching of the emulator succeeds just fine under 1.3. Also, the major disadvantage of my suggested approach here was that since you would be launching the emulator outside of the Titanium Developer program, your Titanium.API.info() calls would not show messages inside the [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.billdawson.com/titanium-and-android-load-the-emulator-first/" title="Permanent link to Titanium and Android: Load the emulator first!"><img class="post_image alignnone" src="http://suchfuncoding.com/wp-content/uploads/2010/04/yeehaw4.jpg" width="366" height="247" alt="Post image for Titanium and Android: Load the emulator first!" /></a>
</p><p>[UPDATE: Since Mobile SDK 1.3 is released, I no longer recommend this.  The launching of the emulator succeeds just fine under 1.3. Also, the major disadvantage of my suggested approach here was that since you would be launching the emulator outside of the Titanium Developer program, your Titanium.API.info() calls would not show messages inside the Developer console.  So I'll leave this post here for posterity, but I do not recommend it any longer.]</p>
<p>The slowness of the first-launch of the Android emulator can cause so much grief for Titanium developers targeting the Android platform.  If the emulator loads slowly, the build of your own project often finishes <em>before</em> the emulator is ready, causing the emulator to just sit there when it&#8217;s finally finished loading.  No error message is displayed to you to describe why nothing is happening.</p>
<p><span id="more-283"></span>Also, it&#8217;s my belief that the recent speed-ups to the code-build-release-code-build-release round-tripping under Android have actually made things worse if the first attempt to install the application on the emulator fails.  It seems to me that subsequent attempts will then fail again, because Titanium doesn&#8217;t think that anything has changed since the last build/release, so the files in your Resources folder actually never make it on to the device&#8217;s SD card, which is used for the speed-up process.  I&#8217;ve spent loads and loads of time trying to overcome this problem.  It is extremely frustrating and I think that &#8212; with the way it is now &#8212; it can put some would-be Android developers right off of Titanium.</p>
<p>I&#8217;m glad to say that Appcelerator is aware of the problem and there are <a href="https://appcelerator.lighthouseapp.com/projects/32238/tickets/747-check-that-files-are-copied-to-sdcard-in-builderpy">already some relevant tickets</a>.  But it&#8217;s not clear when any fixes will be pushed out to users.</p>
<p>So in the meantime, take my advice and save yourself the grief of the problems that can occur when the Android emulator (plus its virtual SD Card) is not ready to accept files from the Titanium installation process.  Load the emulator <em>before</em> doing any development work in Titanium.  To find out which command-line to use for the emulator, take these steps:</p>
<ul>
<li>Open Titanium Developer as per ususal.</li>
<li>Create a dummy mobile project that you don&#8217;t really need.</li>
<li>Go to the Test &amp; Package tab for that project, and select the Android SDK plus screen size you want to target.</li>
<li>Click Launch.</li>
<li>Set the Filter to &#8220;Trace&#8221; and copy all of the contents of the console window.  It doesn&#8217;t matter that your project is still building &#8212; we just need some lines up at the top of the trace.</li>
<li>Paste your copied lines into some text editor, just so you can look through them.</li>
</ul>
<p>Near the top of the trace, you will find the command-line used to start the emulator.  Example:</p>
<p><code><br />
[DEBUG] From: C:android-sdktoolsemulator.exe<br />
[DEBUG] SDCard: C:Documents and Settingsbill.titaniumandroid.sdcard<br />
[DEBUG] AVD ID: 11<br />
[DEBUG] AVD Skin: HVGA<br />
[DEBUG] SDK: C:android-sdk<br />
[DEBUG] C:android-sdktoolsemulator.exe -avd titanium_11_HVGA -port<br />
5560 -sdcard C:Documents and Settingsbill.titaniumandroid.sdcard<br />
-logcat '*:d *' -no-boot-anim<br />
</code></p>
<p>(I put some line-breaks in there for clarity.)</p>
<p>Copy that command-line and paste it into a new editor (Notepad, whatever) window, then save it as a batch file or shell script, depending on your platform.</p>
<p>You may need to clean it up a bit.  My example above, for instance, will not execute because of the space in &#8220;Documents and Settings&#8221;, so I needed to surround the whole &#8220;C:Documents And Settings&#8230;.&#8221; path in double quotes.  Also, I had to change those single quotes around &#8220;*:d *&#8221; to double quotes.</p>
<p>Now run that batch file / shell script when you&#8217;re ready to start your Android development for the day.  And keep the emulator open!</p>
<p>When you do that, you&#8217;ll see magic like in my sample video here below (no sound.)  Because the round-trip speedups done by Marshall Culpepper (<a href="http://twitter.com/marshall_law">@marshall_law</a>) are friggin&#8217; awesome when they work!  Watch the video to see how fast it re-launches when I change app.js!  Still not lightning fast, but <strong>much, much</strong> faster than before (thanks Marshall!I)</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/E5xFb-xpbao&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/E5xFb-xpbao&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.billdawson.com/titanium-and-android-load-the-emulator-first/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Apple Schmapple</title>
		<link>http://www.billdawson.com/apple-schmapple/</link>
		<comments>http://www.billdawson.com/apple-schmapple/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 19:30:17 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Appcelerator Titanium]]></category>

		<guid isPermaLink="false">http://suchfuncoding.com/?p=69</guid>
		<description><![CDATA[After several years of only using Linux distros at home, I broke down and got the cheapest possible Mac Mini last year.  I&#8217;m even using an old 17&#8243; monitor on it, and have only had an Apple keyboard for it since two weeks ago.  Prior to that I used a wireless PC keyboard that I [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>After several years of only using Linux distros at home, I broke down and got the <em>cheapest</em> possible Mac Mini last year.  I&#8217;m even using an old 17&#8243; monitor on it, and have only had an Apple keyboard for it since two weeks ago.  Prior to that I used a wireless PC keyboard that I already had.</p>
<p>In other words, I&#8217;m a pretty cheap guy, right?</p>
<p><span id="more-282"></span>No, I&#8217;m just not an Apple fanboy.  I&#8217;m not willing to fork over gobs of money for that whole &#8220;Apple experience&#8221;.  I don&#8217;t refer to Mr. Jobs as &#8220;Steve&#8221;, and I don&#8217;t tune in to webcasts of his stage performances.  I often wince with embarrassment when hearing Leo and the guys on MacBreak Weekly (though I like the show and listen to it.)</p>
<p>In fact, when it comes to software, I lean very heavily towards open source.  But I&#8217;m also fairly pragmatic, and when evaluating things last year I just had to admit that OS X is simply the best desktop experience right now.  Because I could get it for about EUR 700, I went ahead and did so, taking the cheapest possible route (short of a Hackintosh).</p>
<p>One of the deciding factors for allowing myself to make that change was the recognition that the command-line experience (i.e., Terminal) and general Unix-y characteristics of the operating system would make me not miss Linux so much.  It&#8217;s that &#8220;kinda open source but not really&#8221; aspect of OS X that makes it very acceptable to me.</p>
<p>I got an iPhone several months before the Mac Mini, at a time when other smartphone alternatives weren&#8217;t stacking up real well against it.  Prior to the iPhone, I had the Nokia N95 8GB, which I bought at a time when it was absolutely the best smartphone available over here in Europe.  After about a year with that Nokia, I held and played with someone else&#8217;s iPhone, and had to admit that it blew the Nokia out of the water.</p>
<p>So, why did my heavily-leaning-towards-open-source self accept the very closed, highly controlled iPhone platform?  Because, at the time, I found it far and away the best smartphone available.  It was a trade-off I was willing to make.</p>
<p>See, when it comes to highly secretive, very controlling corporations like Apple, it&#8217;s all about <em>trade-off</em>: how much you&#8217;re willing to put up with in return for getting a good user experience.</p>
<p>Now, as of yesterday&#8217;s <a href="http://daringfireball.net/2010/04/iphone_agreement_bans_flash_compiler">iPhone OS Agreement spectacle</a>, I gotta feel that Apple is pushing their luck on this trade-off thing.  I look at some of these new Android phones and, honestly, I don&#8217;t see that huge gap anymore like I did when I held my Symbian-based Nokia in one hand and the iPhone in the other.  I read about the <a style="text-decoration:line-through;" href="http://www.engadget.com/2010/03/22/ensos-zenpad-is-the-cheap-android-tablet-youve-always-wanted/" target="_blank">zenPad</a> (UPDATE: okay, that was a seriously <a href="http://www.engadget.com/2010/04/09/ensos-zenpad-is-vaporware-get-refunds-while-they-last?icid=sphere_blogsmith_inpage_engadget">crappy example</a>) and rumors about HP&#8217;s plans for a &#8220;slate&#8221;, and I&#8217;m thinking: watch out, Apple.  If you guys push up the pain meter on your side of the great trade-off, then fare thee well and <em>au revoir </em>and seeyawouldntwannabeya.</p>
<p>All of the above was about Me The Consumer.  Now a few words from Me The Programmer: Screw you, Apple, and your Objective-C!  I hate square brackets.  I already know some great programming languages that I can use on more than one platform.   I really have no intention of getting good at yet another programming language <em>just for the sake of one platform</em>.  So if the fears about your new developer agreement are founded, then you lost me in the mobile sphere.</p>
<p>Whither <a href="http://developer.appcelerator.com/blog/2010/04/update-on-apple-sdk-4-0-and-tos.html">Titanium</a> goeth, I go too.  Either you let me do mobile apps in a language I already know, or I don&#8217;t do mobile apps for your platform.  It&#8217;s really that simple.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.billdawson.com/apple-schmapple/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Appcelerator guys are on the ball</title>
		<link>http://www.billdawson.com/appcelerator-guys-are-on-the-ball/</link>
		<comments>http://www.billdawson.com/appcelerator-guys-are-on-the-ball/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 10:00:55 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Appcelerator Titanium]]></category>

		<guid isPermaLink="false">http://suchfuncoding.com/?p=58</guid>
		<description><![CDATA[After my gripes yesterday, I find it important to also give lots of credit where it&#8217;s due.  After some problems in the 1.2 release, the folks at Appcelerator have been very responsive, Don Thorp (@donthorp) especially.  And I&#8217;m not a paying customer, so it&#8217;s nice to see that! As I&#8217;ve indicated elsewhere already, the problem [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>After my <a href="http://suchfuncoding.com/44/titanium-updates-continue-fail/">gripes</a> <a href="https://developer.appcelerator.com/question/12431/12---android-brokenness---ks-never-loads-cant-launch-new-projects">yesterday</a>, I find it important to also give lots of credit where it&#8217;s due.  After some problems in the 1.2 release, the folks at Appcelerator have been very responsive, Don Thorp (<a href="http://twitter.com/donthorp" target="_blank">@donthorp</a>) especially.  And I&#8217;m not a paying customer, so it&#8217;s nice to see that! <img src='http://www.billdawson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>As I&#8217;ve indicated elsewhere already, the problem with importing projects was very quickly solved.  When running Titanium Developer, you&#8217;ll be prompted to upgrade to 1.2.1 (or perhaps later, if you&#8217;re reading this later), which will then be able to import projects.</p>
<p>There was another problem whereby if you created a new project and then tried to launch it in Android by going to the &#8220;Test &amp; Package&#8221; screen, you would have no option to launch the application.  Don immediately <a href="http://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets/731-android-create-project-fails">created a ticket</a> when becoming aware of the problem, and <a href="http://github.com/appcelerator/titanium_mobile/commit/55fea80fe28a5940b890c2291ec68b7a756a3c27">Marshall Culpepper fixed it</a> (<a href="http://twitter.com/marshall_law" target="_blank">@marshall_law</a>) pronto in the github sources.</p>
<p>At the Q&amp;A forum, I give <a href="http://developer.appcelerator.com/question/12431/12---android-brokenness---ks-never-loads-cant-launch-new-projects#29921">some instructions</a> if you want to put that change on to your machine ASAP.  (I&#8217;m not sure when it will be pushed by Appcelerator as an update; it&#8217;s tagged as 1.3, which isn&#8217;t expected until end of May.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.billdawson.com/appcelerator-guys-are-on-the-ball/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

