<?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>A Dancers Software Development Blog</title>
	<atom:link href="http://www.lindyblues.com/swingdance/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.lindyblues.com/swingdance</link>
	<description>Software Development and Dance</description>
	<lastBuildDate>Wed, 11 Apr 2012 18:39:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Continous integration(Thank you Jenkins)/iOS/BDD with Cucumber and Frank(Thanks Thoughworks) Oh my! Part 2</title>
		<link>http://www.lindyblues.com/swingdance/?p=39</link>
		<comments>http://www.lindyblues.com/swingdance/?p=39#comments</comments>
		<pubDate>Wed, 11 Apr 2012 18:38:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[hacks]]></category>

		<guid isPermaLink="false">http://www.lindyblues.com/swingdance/?p=39</guid>
		<description><![CDATA[After the last post, we&#8217;re now here to help out with setting up Frank in a way that&#8217;s somewhat easy to run on local machine and the remote build machine. First go to http://www.testingwithfrank.com/installing.html and setup your project to be &#8230; <a href="http://www.lindyblues.com/swingdance/?p=39">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After the last post, we&#8217;re now here to help out with setting up Frank in a way that&#8217;s somewhat easy to run on local machine and the remote build machine.</p>
<p>First go to http://www.testingwithfrank.com/installing.html and setup your project to be frankified.</p>
<p>Now the main thing to keep in mind is the evn.rb file that has the APP_BUNDLEPATH.&nbsp; if you used the build script from the last post then using the following should work</p>
<p>APP_BUNDLE_PATH = &#8216;../Build/Debug-iphonesimulator/yourSuperDuperApp.app&#8217;</p>
<p>In Xcode 4 and up make sure in the preferences/Locations that the advanced Derived Data is set to Legacy instead of Unique.&nbsp; This means that as long as you run your frankafied app once on the simulator with the latest code you can now run cucumber inside the frank directory and run all the tests.&nbsp; Also the build script as is will run a build for the simulator that frank can use there as well!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindyblues.com/swingdance/?feed=rss2&#038;p=39</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continous integration(Thank you Jenkins)/iOS/BDD with Cucumber and Frank(Thanks Thoughworks) Oh my! Part 1</title>
		<link>http://www.lindyblues.com/swingdance/?p=36</link>
		<comments>http://www.lindyblues.com/swingdance/?p=36#comments</comments>
		<pubDate>Wed, 11 Apr 2012 18:17:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.lindyblues.com/swingdance/?p=36</guid>
		<description><![CDATA[So in an effort to move our team towards some of the new Agile-ish fads (yes yes I realize they aren&#8217;t fad and worth doing but sometimes it feels a bit like it) with the likes of what now seems &#8230; <a href="http://www.lindyblues.com/swingdance/?p=36">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So in an effort to move our team towards some of the new Agile-ish fads (yes yes I realize they aren&#8217;t fad and worth doing but sometimes it feels a bit like it) with the likes of what now seems like the soup of what random names and words. I find my self talking in sentence like &#8220;So we&#8217;re using Jenkins to help with CI and Frank to drive our BDD on iOS, the workflows are Kanban-ish with a Scrumish push are using Jira with GreenHopper&#8230;.. etc&#8221;&nbsp; I found myself wondering if any normal person would ever actually understand me or have I just gone down the rabbit hole to never be seen again.&nbsp; Anyway to the meat of it.<br />
The following few posts will touch on our attempt to move to using SCRUM for project management with Kanban process improvement concepts to see what we turn into.&nbsp; Hopefully a very efficient team that delivers product centric solutions that actually meet the needs of the customers. I&#8217;ll speak a bit to the tools on the software side and then later on I&#8217;ll go on the process side with Product, Design, QA, Dev etc.</p>
<p>First the iOS automated build with automated testflight push <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &nbsp; The easiest way I could find do to this was just to have a shell script create the builds that hudson calls.. I&#8217;ll put in some comments to help out on what is what.</p>
<p>Assumptions.&nbsp; In your project directory you have a build folder with build.sh containing something like the bellow.&nbsp; The build directory also contains a provisioningprofiles directory which has a build type (CONFIGURATION).mobileprovision files.&nbsp; In our case we have four.&nbsp; AdHoc.mobileprovision, Debug.mobileprovision, Distribution.mobileprovision, and Release.mobileprovision. (This means when we add or changes devices we just update this profiles and now the new builds include them). Lastly the build directory contains the xcode.keychain with contains the certs associated with the profiles. An other important note.&nbsp; On you&#8217;re project make sure that the profiles you using for the automated builds on the targets are set to auto select, <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> &nbsp; otherwise this will cause you headaches!</p>
<p>#!/bin/bash<br />
# Below are required environment variables with some example content:<br />
set -ex<br />
SDK=&#8217;iphoneos&#8217;<br />
FORMATTED_TARGET_LIST=$TARGET<br />
DISTRIBUTION_CERTIFICATE=&#8217;the name of your distribution cert&#8217;<br />
PROVISIONING_PROFILE_PATH=~&#8221;/Library/MobileDevice/Provisioning\ Profiles/&#8221;<br />
KEYCHAIN_LOCATION_PATH=~/Library/Keychains</p>
<p>ARCHIVE_FILENAME=&#8217;archivename.zip&#8217;<br />
KEYCHAIN_LOCATION=&#8217;xcode.keychain&#8217;<br />
KEYCHAIN_PASSWORD=&#8217;keychain password&#8217;<br />
API_TOKEN=&#8221;put in your test flight token here <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8221;<br />
TEAM_TOKEN=&#8221;put in your team token here <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8221;<br />
MAJOR_VERSION=&#8217;0.1&#8242;<br />
PROJECT=$WORKSPACE<br />
cd $PROJECT<br />
xcodebuild -version #nice to have the version of xcode used for the build in the console logs <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>#default values if not set &#8211; some of these help if testing the build scripts on not the build machine <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
if [ -z "$SVN_REVISION" ]; then<br />
SVN_REVISION=&#8217;0&#8242;<br />
fi</p>
<p>if [ -z "$BUILD_NUMBER" ]; then<br />
BUILD_NUMBER=&#8217;0&#8242;<br />
fi</p>
<p>if [ -z "$CONFIGURATION" ]; then<br />
&nbsp;&nbsp;&nbsp; CONFIGURATION=&#8217;Debug&#8217;<br />
fi</p>
<p>if [ -z "$TARGET" ]; then #could probably ignore. by default I build all targets but really this could change to just what you need<br />
&nbsp;&nbsp;&nbsp; FORMATTED_TARGET_LIST=&#8217;-alltargets&#8217;<br />
else<br />
&nbsp;&nbsp;&nbsp; FORMATTED_TARGET_LIST=&#8221;-target $TARGET&#8221;<br />
fi</p>
<p>#Clean the local profile directory and copy the one in from provisioning profile<br />
eval cd $PROVISIONING_PROFILE_PATH # this currently assumes something is in here.<br />
rm *</p>
<p>#copies the the build type profile from the build directory into where it will be used on your machine.<br />
eval cp $PROJECT/build/provisioningprofiles/$CONFIGURATION.mobileprovision $PROVISIONING_PROFILE_PATH<br />
cd $PROJECT</p>
<p>#Marketing Version number of the app</p>
<p>#we&#8217;ve decided that only debug and AdHoc builds get version based on SVN and the hudons build number <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
if [ $CONFIGURATION != "Release" ] &amp;&amp; [ $CONFIGURATION != "Distribution" ]; then<br />
&nbsp;&nbsp;&nbsp; MARKETING_VERSION=$MAJOR_VERSION.$BUILD_NUMBER<br />
&nbsp;&nbsp;&nbsp; MARKETING_BUILD_NUMBER=$MAJOR_VERSION.$SVN_REVISION.$BUILD_NUMBER<br />
fi</p>
<p># Build project</p>
<p>#you will need to create a keychain that has all you&#8217;re keys added for the profile you&#8217;re using<br />
security default-keychain -s $PROJECT/build/&#8221;$KEYCHAIN_LOCATION&#8221;<br />
security list-keychains -s $PROJECT/build/&#8221;$KEYCHAIN_LOCATION&#8221;<br />
security unlock-keychain -p $KEYCHAIN_PASSWORD $PROJECT/build/&#8221;$KEYCHAIN_LOCATION&#8221;</p>
<p>#update the version to build_number<br />
if [ $CONFIGURATION != "Release" ] &amp;&amp; [ $CONFIGURATION != "Distribution" ]; then<br />
&nbsp;&nbsp;&nbsp; agvtool new-version -all $MARKETING_BUILD_NUMBER<br />
&nbsp;&nbsp;&nbsp; agvtool new-marketing-version $MARKETING_VERSION<br />
fi</p>
<p>xcodebuild -sdk &#8220;$SDK&#8221; $FORMATTED_TARGET_LIST -configuration &#8220;$CONFIGURATION&#8221; clean build</p>
<p>#I&#8217;ve added this for the frankified version to have hudson have a simulator build that is available for testing the app with all the frank tests. I&#8217;ll go into this on a future post<br />
xcodebuild -sdk &#8220;iphonesimulator&#8221; $FORMATTED_TARGET_LIST -configuration Debug clean build</p>
<p>BUILD_DIRECTORY=&#8221;$(pwd)/build/${CONFIGURATION}-iphoneos&#8221;<br />
cd &#8220;$BUILD_DIRECTORY&#8221; || die &#8220;Build directory does not exist.&#8221;</p>
<p>for APP_FILENAME in *.app; do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; APP_NAME=$(echo &#8220;$APP_FILENAME&#8221; | sed -e &#8216;s/.app//&#8217;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IPA_FILENAME=&#8221;$APP_NAME.ipa&#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSYM_FILEPATH=&#8221;$APP_FILENAME.dSYM&#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DSYM_ARCHIVE=&#8221;$DSYM_FILEPATH.zip&#8221;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/bin/xcrun -sdk iphoneos PackageApplication -v &#8220;$APP_FILENAME&#8221; -o &#8220;$BUILD_DIRECTORY/$IPA_FILENAME&#8221; &#8211;sign &#8220;$DISTRIBUTION_CERTIFICATE&#8221;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Create legacy archive for pre iOS4.0 users<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval cp &#8220;$PROVISIONING_PROFILE_PATH$CONFIGURATION.mobileprovision&#8221; .<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PROVISIONING_PROFILE_FILENAME=$(basename &#8220;$PROVISIONING_PROFILE_PATH$CONFIGURATION.mobileprovision&#8221;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zip -r &#8220;$ARCHIVE_FILENAME&#8221; &#8220;$IPA_FILENAME&#8221; &#8220;$PROVISIONING_PROFILE_FILENAME&#8221; &#8220;$DSYM_FILEPATH&#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zip -r &#8220;$DSYM_ARCHIVE&#8221; &#8220;$DSYM_FILEPATH&#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rm &#8220;$PROVISIONING_PROFILE_FILENAME&#8221;</p>
<p>&nbsp;&nbsp;&nbsp; #publish to testflight<br />
&nbsp;&nbsp;&nbsp; if [ $CONFIGURATION != "Release" ] ; then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; curl http://testflightapp.com/api/builds.json -F file=@&#8221;$BUILD_DIRECTORY/$IPA_FILENAME&#8221; -F dsym=@&#8221;$BUILD_DIRECTORY/$DSYM_ARCHIVE&#8221; -F api_token=$API_TOKEN -F team_token=$TEAM_TOKEN -F notes=&#8221;Automated PUSH for build number $BUILD_NUMBER and svn version $SVN_REVISION go to $JOB_URL for more information&#8221; -F distribution_lists=&#8217;SSS&#8217;<br />
&nbsp;&nbsp;&nbsp; fi</p>
<p>done</p>
<p># Create tarball with .ipa, dSYM directory, legacy build and generated manifest files and scp them all across<br />
PAYLOAD_FILENAME=&#8217;final.tar&#8217;<br />
tar -cf $PAYLOAD_FILENAME &#8220;$ARCHIVE_FILENAME&#8221;</p>
<p>#reset my keychain to the original <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
security list-keychains -s login.keychain<br />
security default-keychain -s &#8220;login.keychain&#8221;</p>
<p>&#8212;&#8212; In hudson it&#8217;s the standard setup&#8212;&#8211;</p>
<p>we have the standard project that&nbsp; checks out from SVN and has a multiple choice for the type of builds to set the CONFIGURATION variable to Debug, AdHoc, Distribution, or Release.&nbsp; It executes the following</p>
<p>$WORKSPACE/build/build.sh<br />
cd $WORKSPACE/frank<br />
cucumber</p>
<p>first one is the actual build. the other 2 lines have to do with running the automated test with Frank.</p>
<p>Lastly I archive build/$CONFIGURATION-iphoneos/final.tar</p>
<p>This will include the ipa, and a couple nice to have files for the future.</p>
<p>An additional note in our situation.&nbsp; Our jenkins runs on Tomcat on a Linux box in AWS.&nbsp; If this doesn&#8217;t make you go &#8220;huh?&#8221; then read it again and ask how does a iOS build run on Linux.&nbsp; The answer is that it doesn&#8217;t!&nbsp; We have a slave that is a Mac Mini that builds for us. Here is the interesting setup.</p>
<p>Since we&#8217;re behind a firewall where we can&#8217;t poke a hole in, (wohoo IT making life harder, actually in this case it&#8217;s probably a good precaution so I can&#8217;t complain too much) we do the following</p>
<p>ssh to the linux machine from the mac mini using ssh -o TCPKeepAlive=yes -o ServerAliveInterval=15 -R 20000:localhost:22 username@server.com (obviously put your own username and server name)</p>
<p>Then in jenkins setup an ssh slave to the localhost on port 20000. You&#8217;ll probably need to setup somesort of keyless entry or what not the way I did or use a password but either way it&#8217;s a nifty way to do a reverse ssh session to create builds on a machine inside a private network from an external machine on the web <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Next post &#8212;-&nbsp; Setup of Frank with iOS and Jenkins.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindyblues.com/swingdance/?feed=rss2&#038;p=36</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stupid Glue records&#8230; or actually Stupid me and not knowing about them</title>
		<link>http://www.lindyblues.com/swingdance/?p=29</link>
		<comments>http://www.lindyblues.com/swingdance/?p=29#comments</comments>
		<pubDate>Tue, 28 Feb 2012 19:56:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.lindyblues.com/swingdance/?p=29</guid>
		<description><![CDATA[Ok so after having about a week with my sites and some emails offline, I figured out what it was.&#160; Stupid glue records. What is a glue record you ask?&#160; It&#8217;s usually when you want to have a name server &#8230; <a href="http://www.lindyblues.com/swingdance/?p=29">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ok so after having about a week with my sites and some emails offline, I figured out what it was.&nbsp; Stupid glue records. What is a glue record you ask?&nbsp; It&#8217;s usually when you want to have a name server let&#8217;s say ns1.mydomain.com manager the domain mydomain.com.</p>
<p>I manage my own VPS (using <a href="http://my.up2vps.com/aff.php?aff=086">UP2PVS</a> &#8211; It&#8217;s really cheap for what you get and even though I&#8217;ve heard complaints about them, I really haven&#8217;t had any issues other then my own doing so far.)</p>
<p>So back to the issue at hand.&nbsp; After requesting they move the VPS from Germany to Seattle (way faster for me to use now), the IP of course changed.&nbsp; Now I had registered a couple subdomains to be my name servers since Kloxo (open source CPANEL &#8211; not the most intuitive but works).&nbsp; but then when the move took place I just changed the A record for them, forgetting what I had initially done the first time around.. Using mydomain.com (not as an example but that where I manage my domains registration) you have to make sure to use the register name server option to also update the glue record.&nbsp; Otherwise it really is horrible and things like email, web, etc just plain stop working.</p>
<p>In conclusion word to the wise.&nbsp; When dealing with your own name servers, remember the glue <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindyblues.com/swingdance/?feed=rss2&#038;p=29</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting a ListView to go back to highlighting a previously selected item</title>
		<link>http://www.lindyblues.com/swingdance/?p=21</link>
		<comments>http://www.lindyblues.com/swingdance/?p=21#comments</comments>
		<pubDate>Thu, 26 Jan 2012 23:05:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.lindyblues.com/swingdance/?p=21</guid>
		<description><![CDATA[Summary of the problem: On the Google TV platform you can&#8217;t touch the screen.&#160; This means you mainly depend on the up,down,left,right nav.&#160; What posses a navigation issue is when you have have a list view on the left hand &#8230; <a href="http://www.lindyblues.com/swingdance/?p=21">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Summary of the problem:</p>
<p>On the Google TV platform you can&#8217;t touch the screen.&nbsp; This means you mainly depend on the up,down,left,right nav.&nbsp; What posses a navigation issue is when you have have a list view on the left hand side with a grid view on the right.</p>
<p>The idea is when the a listview item is clicked then you populate a different set of gridview items.&nbsp; When you select the right nav and then move around and then go back to the list view, it will go to the closest item but not the last one that was selected.</p>
<p>What you would think the answer is:</p>
<p>this.getListView().setOnFocusChangeListener(new OnFocusChangeListener() {<br />
@Override<br />
public void onFocusChange(View v, boolean hasFocus) {<br />
if (hasFocus)<br />
{<br />
mListView.setSelectionFromTop(mCurCheckPosition, itemPosition); //posibly use the setSelection instead but still the same idea</p>
<p>}</p>
<p>}<br />
});</p>
<p>However this doesn&#8217;t work.&nbsp; I imagine it&#8217;s something with the order of items getting focus and what not but still no worky.</p>
<p>Actual Answer/Hack</p>
<p>this.getListView().setOnFocusChangeListener(new OnFocusChangeListener() {</p>
<p>@Override<br />
public void onFocusChange(View v, boolean hasFocus) {<br />
if (hasFocus)<br />
{<br />
mHandler.postAtFrontOfQueue(new Runnable() {<br />
public void run() {<br />
if (!firstTry)<br />
{<br />
mListView.setSelectionFromTop(mCurCheckPosition, itemPosition);<br />
}<br />
else<br />
{<br />
firstTry=false;<br />
}<br />
}<br />
});</p>
<p>}</p>
<p>}<br />
});</p>
<p>You also need a firstTry = false as a private;</p>
<p>mCurCheckPosition is most listly going to be set on the onItemSelected or onListItemClick depending on what behavior you want, but you should get the idea.&nbsp; This works and honestly I&#8217;m not really sure why and if someone knows of a better way to get this behavior please please comment on it and I&#8217;ll update the post!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindyblues.com/swingdance/?feed=rss2&#038;p=21</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving an EC2 instance from one account to another.</title>
		<link>http://www.lindyblues.com/swingdance/?p=18</link>
		<comments>http://www.lindyblues.com/swingdance/?p=18#comments</comments>
		<pubDate>Mon, 05 Dec 2011 19:55:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://www.lindyblues.com/swingdance/?p=18</guid>
		<description><![CDATA[So after being on a project where needed to offload the servers we were paying for to a different decision I came into the interesting scenario of moving the ec2 instance to another account.  I couldn&#8217;t find any simple solutions &#8230; <a href="http://www.lindyblues.com/swingdance/?p=18">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So after being on a project where needed to offload the servers we were paying for to a different decision I came into the interesting scenario of moving the ec2 instance to another account.  I couldn&#8217;t find any simple solutions on google so here goes my two cents on doing it the easy way.</p>
<p>&nbsp;</p>
<p>1. select your instance and creates an EBS ami. (note this will take down your instance so make sure to do it during a maintenance period)</p>
<p>2. go to your your AMI list.  Select the newly created AMI and click on permission.  Now add the account you&#8217;re transferring to.</p>
<p>3. In the new account select the private AMI from the list and choose to launch a new instance.</p>
<p>At this point you should be able to kill the old instance in the old account and you&#8217;re newly create instance in the new account should be good to go <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindyblues.com/swingdance/?feed=rss2&#038;p=18</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Fragments with tabhosts controling fragments</title>
		<link>http://www.lindyblues.com/swingdance/?p=16</link>
		<comments>http://www.lindyblues.com/swingdance/?p=16#comments</comments>
		<pubDate>Mon, 05 Dec 2011 19:50:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.lindyblues.com/swingdance/?p=16</guid>
		<description><![CDATA[So on a past project I used a tabhost in android to control fragments.  After seeing a post for someone needed help we exchange a few email I thought I would post Here   here are the basics. &#8212;I am &#8230; <a href="http://www.lindyblues.com/swingdance/?p=16">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So on a past project I used a tabhost in android to control fragments.  After seeing a post for someone needed help we exchange a few email I thought I would post Here <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   here are the basics.</p>
<p>&#8212;I am trying to get fragments working within a TabHost which is within<br />
a<br />
fragment handled by the ActionBar.  The top layer fragments work ok,<br />
however I have not been able to get the lower level fragments to<br />
display.<br />
Could you please be more specific on how you accomplished this, or<br />
maybe, send me some examples.</p>
<p>&#8212;</p>
<p>&nbsp;</p>
<p>So I haven&#8217;t done a fragment inside a tabhost inside a fragment,<br />
although I don&#8217;t think that have the parent fragment controlled by the<br />
ActionBar would make any differences although the lifecycles could get<br />
pretty complex in terms of popping the fragments in an out.  Anyways,<br />
here are a couple snipets for the tabhost and the fragments being<br />
changed in and out.  This is from a project that I was working on a<br />
while back so I&#8217;m a little cobwebish about it.  You may want to try<br />
getting the tabhost and fragments to work on their own and then bring<br />
it into the parent fragment so that you can narrow down what&#8217;s causing<br />
the probs. Hopefully this will help a bit.</p>
<p>FragmentManager fm = this.</p>
<div id=":w5"><wbr>getSupportFragmentManager();<br />
fm.<wbr>addOnBackStackChangedListener(<wbr>this);<br />
setContentView(R.layout.main);</p>
<p>mTabHost = (TabHost) findViewById(R.id.tabhost);<br />
mTabHost.setup();</p>
<p>mTabHost.addTab(mTabHost.<wbr>newTabSpec(&#8220;tab_seasonal&#8221;).<wbr>setIndicator(&#8220;&#8221;,<br />
getResources().getDrawable(R.<wbr>drawable.nav_inseason)).<wbr>setContent(R.id.content_<wbr>fragment));<br />
mTabHost.getTabWidget().<wbr>getChildAt(0).setTag(&#8220;tab_<wbr>seasonal&#8221;);</p>
<p>mTabHost.addTab(mTabHost.<wbr>newTabSpec(&#8220;tab_collections&#8221;).<wbr>setIndicator(&#8220;&#8221;,<br />
getResources().getDrawable(R.<wbr>drawable.nav_collections)).<wbr>setContent(R.id.content_<wbr>fragment));<br />
mTabHost.getTabWidget().<wbr>getChildAt(1).setTag(&#8220;tab_<wbr>collections&#8221;);<br />
mTabHost.addTab(mTabHost.<wbr>newTabSpec(&#8220;tab_search&#8221;).<wbr>setIndicator(&#8220;&#8221;,<br />
getResources().getDrawable(R.<wbr>drawable.nav_search)).<wbr>setContent(R.id.content_<wbr>fragment));<br />
mTabHost.getTabWidget().<wbr>getChildAt(2).setTag(&#8220;tab_<wbr>search&#8221;);<br />
mTabHost.addTab(mTabHost.<wbr>newTabSpec(&#8220;tab_favorites&#8221;).<wbr>setIndicator(&#8220;&#8221;,<br />
getResources().getDrawable(R.<wbr>drawable.nav_favorites)).<wbr>setContent(R.id.content_<wbr>fragment));<br />
mTabHost.getTabWidget().<wbr>getChildAt(3).setTag(&#8220;tab_<wbr>favorites&#8221;);<br />
mTabHost.addTab(mTabHost.<wbr>newTabSpec(&#8220;tab_facebook&#8221;).<wbr>setIndicator(&#8220;&#8221;,<br />
getResources().getDrawable(R.<wbr>drawable.nav_facebook)).<wbr>setContent(R.id.content_<wbr>fragment));<br />
mTabHost.getTabWidget().<wbr>getChildAt(4).setTag(&#8220;tab_<wbr>facebook&#8221;);</p>
<p>mTabHost.<wbr>setOnTabChangedListener(new OnTabChangeListener()<br />
{<br />
@Override<br />
public void onTabChanged(String tabId)<br />
{</p>
<p>changeTab(tabId);</p>
<p>}<br />
});</p>
<p>mTabHost.setCurrentTab(1);<br />
mTabHost.setCurrentTab(0);</p>
<p>&#8212;- here&#8217;s the sample changing the fragment out.</p>
<p>private void changeTab(String tabId)<br />
{</p>
<p>Fragment df = null;</p>
<p>df = SeasonalFrag.newInstance(1);<br />
FragmentTransaction ft = getSupportFragmentManager().<wbr>beginTransaction();<br />
ft.replace(R.id.content_<wbr>fragment, df);</p>
<p>ft.setTransition(<wbr>FragmentTransaction.TRANSIT_<wbr>FRAGMENT_FADE);<br />
getSupportFragmentManager().<wbr>popBackStack(null,<br />
FragmentManager.POP_BACK_<wbr>STACK_INCLUSIVE);<br />
ft.commit();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></div>
<p>&#8212;&#8212;-</p>
<p>&nbsp;</p>
<p>In looking at your sample, I realized you must have extended FragmentActivity from the Compatability Package.  I cannot do that since I am in a Fragment which already extends Fragment.  I am taking your advice and am going to try getting it working in another test project.</p>
<p>&#8212;&#8212;</p>
<p>&nbsp;</p>
<p>No worries <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>There really isn&#8217;t a problem even if you&#8217;ve already extended as<br />
fragment instead of fragmentactivity from the Comptability pack.   Depending on the complexity it may be better in the changeTab<br />
method to do a callback to the activity and have it control the flow.<br />
you can do something like the following in the fragment</p>
<p>OnFragmentTabListener onFragmentTabListener; // make sure to create<br />
the OnFragmentTabListener interface with a changeTab Method or what<br />
not</p>
<p>@Override<br />
public void onAttach(Activity activity){<br />
super.onAttach(activity);<br />
try {<br />
onFragmentTabListener = (OnFragmentTabListener) activity;<br />
} catch (ClassCastException e) {<br />
throw new ClassCastException(activity.</p>
<div id=":x3"><wbr>toString() + &#8221; must implement<br />
OnFragmentTabListner&#8221;);<br />
}<br />
}</p>
<p>then in the tabhost listener in the fragment just call the<br />
onFragmentTabListener.<wbr>changeTab (or whatever you call the method).</p>
<p>Implement that in the FragmentActivity and now all the control logic<br />
is back to the activity instead of the fragment <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   make sense?  That<br />
should allow whichout a problem the use for a tabhost controlling<br />
fragments in a parent fragment and keep all the control in the<br />
activity.</wbr></wbr></div>
<div>I&#8217;ll clean this up later but it should give somewhat of an idea on how to do this. <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
]]></content:encoded>
			<wfw:commentRss>http://www.lindyblues.com/swingdance/?feed=rss2&#038;p=16</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Swing Dance and Vintage Women&#8217;s clothes</title>
		<link>http://www.lindyblues.com/swingdance/?p=1</link>
		<comments>http://www.lindyblues.com/swingdance/?p=1#comments</comments>
		<pubDate>Tue, 08 Nov 2011 04:34:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.lindyblues.com/swingdance/?p=1</guid>
		<description><![CDATA[First of all I&#8217;m going to try to find more and more items that are pertinent.  For the time being I&#8217;ve found the following book that seems like are good resources for swing dance clothing. Click Here! to see if &#8230; <a href="http://www.lindyblues.com/swingdance/?p=1">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>First of all I&#8217;m going to try to find more and more items that are pertinent.  For the time being I&#8217;ve found the following book that seems like are good resources for swing dance clothing. <a href="http://7b30fe3hxn4pbwenr8qektbra0.hop.clickbank.net/" target="_top">Click Here!</a> to see if you interested.  I&#8217;m also looking for items pertinent to men so if you find some, let me know.</p>
<p><a href="http://www.lindyblues.com/swingdance/?attachment_id=9" rel="attachment wp-att-9"><img class="alignnone size-full wp-image-9" title="swing dance" src="http://www.lindyblues.com/swingdance/wp-content/upLoads/2011/11/swingdance.jpg" alt="swing dance" width="192" height="240" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindyblues.com/swingdance/?feed=rss2&#038;p=1</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Automator and applescript for grabbing a file on a smb share and getting windows friends link to send via email</title>
		<link>http://www.lindyblues.com/swingdance/?p=13</link>
		<comments>http://www.lindyblues.com/swingdance/?p=13#comments</comments>
		<pubDate>Wed, 11 May 2011 23:18:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[applescript]]></category>
		<category><![CDATA[automator]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.lindyblues.com/swingdance/?p=13</guid>
		<description><![CDATA[So, you&#8217;ve kicked yourself the 20th time because you sent a link to someone via email, IM, smoke signals, etc that looked like smb://blab/sharedfolder/file.xls where they run windows and well it should look more like file:\\\\blab\\sharedfolder\\file.xls. There are a few &#8230; <a href="http://www.lindyblues.com/swingdance/?p=13">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, you&#8217;ve kicked yourself the 20th time because you sent a link to someone via email, IM, smoke signals, etc that looked like smb://blab/sharedfolder/file.xls where they run windows and well it should look more like file:\\\\blab\\sharedfolder\\file.xls.</p>
<p>There are a few ways around this and if you connect to the same server all the time here is your answer (if you connect to multiple servers all the time then use this as a start and figure out the rest and post it please!!!)</p>
<p>First lets start with automator.&nbsp; create one for a service and make sure that the service receives selected files or folders in finder.&nbsp; Second add a task that runs an applescript.&nbsp; it&#8217;ll look something like this<br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />on run {input, parameters}<br />&nbsp;&nbsp;&nbsp; tell application &#8220;Finder&#8221;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; set fileURL to URL of file input<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; set newfileURL to my replaceText(&#8220;file://localhost/Volumes&#8221;, &#8220;file:\\\\yourservername&#8221;, fileURL)<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return my replaceText(&#8220;/&#8221;, &#8220;\\&#8221;, newfileURL)<br />&nbsp;&nbsp;&nbsp; end tell<br />end run</p>
<p>on replaceText(find, replace, subject)<br />&nbsp;&nbsp;&nbsp; set text item delimiters of AppleScript to find<br />&nbsp;&nbsp;&nbsp; set subject to text items of subject<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; set text item delimiters of AppleScript to replace<br />&nbsp;&nbsp;&nbsp; set subject to &#8220;&#8221; &amp; subject<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; return subject<br />end replaceText<br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Then add a copy to clickboard task.</p>
<p>now save it as a service and you should be good to see a context menu when you right click.&nbsp; This will paste the content to the clipboard so you can now paste the newly formatted string in your mail client or whatev&#8230; <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindyblues.com/swingdance/?feed=rss2&#038;p=13</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>hijacking touch events from Android for clickable items in a Gallery view</title>
		<link>http://www.lindyblues.com/swingdance/?p=12</link>
		<comments>http://www.lindyblues.com/swingdance/?p=12#comments</comments>
		<pubDate>Wed, 04 May 2011 23:05:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.lindyblues.com/swingdance/?p=12</guid>
		<description><![CDATA[So to begin with if you know of a better way of doing this&#8230;. PLEASE TELL ME&#8230; I spent a day or so on this trying to find more elegant solutions and in the end this seems like it will &#8230; <a href="http://www.lindyblues.com/swingdance/?p=12">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So to begin with if you know of a better way of doing this&#8230;. PLEASE TELL ME&#8230; I spent a day or so on this trying to find more elegant solutions and in the end this seems like it will have to do.</p>
<p>First the problem.&nbsp; Android doesn&#8217;t have by default the swipie Scroll Content controller that iOS has examples of (I should clarify that iOS doesn&#8217;t have this by default but at least has examples.)&nbsp; So essentially I wanted something that would act like a gallery view (although just swipe one item onto the screen at a time) and then have views with buttons and what not that would be clickable.&nbsp; The problem being that if you have a clickable buttom and you start the swipe by touching it, it doesn&#8217;t swype&#8230; and if you set the ontouchlistener to the button to a custom one well say goodbye to the onclick&#8230;&nbsp; exmple&#8211;<br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&nbsp; g is a galleryview btw<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; OnTouchListener mOnTouch = new View.OnTouchListener() {&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; @Override<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public boolean onTouch(View v, MotionEvent event) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (g.onTouchEvent(event)) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; Log.e(&#8220;onTouch&#8221;, &#8220;captured by gallery&#8221;);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Log.e(&#8220;onTouch&#8221;, &#8220;this has been touched!&#8221;);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; };</p>
<p>button.setOnTouchListener(mTouch);<br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>In this case for some really weird reason checking the&nbsp; if (g.onTouchEvent(event)) actually eats the event and even return false afterwards much to my dismay doesn&#8217;t even pass the event on!!!!&nbsp; this is what really kills me and if someone knows why&#8230; please oh please tell me.</p>
<p>Solutions-&gt;&nbsp; Create a custom Gallery&nbsp; sample bellow&#8230;&nbsp; which overides the onInterceptTouchEvent with a custom Gesturedetector in an inner class that then calls the Galleries OnFling if there is a fling. The nice added part to this is that now you don&#8217;t need to set an ontouch listerner for each clickable item in the gallery.</p>
<p>couple other notes -&gt; invalie return for position is so that it doesn&#8217;t try to click the item no matter where you are&#8230;&nbsp; It may not be needed anymore but I&#8217;m tired of messing with it for the time being&#8230; I&#8217;ll update if it can go by the way side.&nbsp;&nbsp; The velocityx / 4 is so that only one item gets flung <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  and the * 3 later on I have no idea why it&#8217;s needed <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> &nbsp; seems like the galleries ontouchevent does some black magic before sending the values to the onfling.&nbsp; 3 seems to be the majic number to make it work like the /4 <img src='http://www.lindyblues.com/swingdance/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>public class MyGallery extends Gallery {<br />&nbsp;&nbsp;&nbsp; GestureDetector gestureDetector = new GestureDetector(new innerGestureDetector());</p>
<p>&nbsp;&nbsp;&nbsp; public MyGallery(Context context,AttributeSet attrSet) {<br />&nbsp;&nbsp;&nbsp; super(context, attrSet);<br />&nbsp;&nbsp;&nbsp; // TODO Auto-generated constructor stub<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; @Override<br />&nbsp;&nbsp;&nbsp; public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float velocityY) {<br />&nbsp;&nbsp;&nbsp; Log.e(&#8220;FlingGallery&#8221;, &#8220;Galery was flinged&#8221;);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; super.onFling(e1, e2, velocityX / 4, velocityY);&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; @Override<br />&nbsp;&nbsp;&nbsp; public boolean onInterceptTouchEvent(MotionEvent ev) {</p>
<p>&nbsp;&nbsp;&nbsp; if (gestureDetector.onTouchEvent(ev))<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Log.e(&#8220;FlingGallery&#8221;, &#8220;WT1&#8243;);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; super.onTouchEvent(ev);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return true;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; Log.e(&#8220;hijack&#8221;, &#8220;intercepted&#8221;);<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return super.onInterceptTouchEvent(ev);<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; @Override<br />&nbsp;&nbsp;&nbsp; public int pointToPosition(int x, int y)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp; return INVALID_POSITION;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; class innerGestureDetector extends SimpleOnGestureListener {</p>
<p>&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; @Override<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {<br />&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Log.e(&#8220;fling&#8221;, &#8220;innerfling&#8221;);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return MyGallery.this.onFling(e1,e2,velocityX * 2,velocityY);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; }</p>
<p>}</p>
<p>Hopefully someone will find this of use or at least it will help me with my memory&#8230; This was enough to make me hate how events are passed around (perhaps just because I don&#8217;t fully understand them)</p>
<p>Cheers,</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindyblues.com/swingdance/?feed=rss2&#038;p=12</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

