<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>a little bitty Java</title>
	<atom:link href="http://bittyjava.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://bittyjava.wordpress.com</link>
	<description>on developing Java™ Micro Edition games</description>
	<lastBuildDate>Fri, 16 Dec 2011 16:09:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='bittyjava.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>a little bitty Java</title>
		<link>http://bittyjava.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://bittyjava.wordpress.com/osd.xml" title="a little bitty Java" />
	<atom:link rel='hub' href='http://bittyjava.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Experimenting with BlackBerry Graphics!</title>
		<link>http://bittyjava.wordpress.com/2010/09/23/experimenting-with-blackberry-graphics/</link>
		<comments>http://bittyjava.wordpress.com/2010/09/23/experimenting-with-blackberry-graphics/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 14:42:55 +0000</pubDate>
		<dc:creator>carolhamer</dc:creator>
				<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[Graphics]]></category>

		<guid isPermaLink="false">http://bittyjava.wordpress.com/?p=225</guid>
		<description><![CDATA[As I said the other day, I started my space explorer game by trying out a bunch of different ways to animate the rocketship flying through space.  (I&#8217;ve bundled all the source code and resources for the complete example &#8212; you can download it here.)  I started by just creating a standard MIDlet using the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=225&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As I <a href="http://bittyjava.wordpress.com/2010/09/21/blackberrys-two-graphics-implementations-can-you-use-them-both-in-the-same-app/">said the other day</a>, I started my space explorer game by trying out a bunch of different ways to animate the rocketship flying through space.  (I&#8217;ve bundled all the source code and resources for the complete example &#8212; you can download it <a href="http://frogparrot.net/java/comparespace.zip">here</a>.)  I started by just creating a standard MIDlet using the javax.microedition.lcdui.game classes.  Here&#8217;s what it looks like in the debugger:</p>
<p><a href="http://bittyjava.files.wordpress.com/2010/09/lcduispace.png"><img class="alignnone size-full wp-image-228" title="lcduispace" src="http://bittyjava.files.wordpress.com/2010/09/lcduispace.png?w=480&#038;h=260" alt="" width="480" height="260" /></a></p>
<p>In the image, I&#8217;ve set the debugger to show memory usage.  In this case it&#8217;s &#8220;lcduispace&#8221; &#8212; the top process on the list.  Next, I decided to try out the technique I described in <a href="http://bittyjava.wordpress.com/2010/09/21/blackberrys-two-graphics-implementations-can-you-use-them-both-in-the-same-app/">my earlier post</a>:  use the same lcdui game implementation, but write each frame into an image buffer and transfer it from the MIDP Graphics implementation to RIM&#8217;s proprietary implementation to display it in a RIMlet.  Here it is in the debugger: <span id="more-225"></span></p>
<p><a href="http://bittyjava.files.wordpress.com/2010/09/imagetransfer.png"><img class="alignnone size-full wp-image-230" title="imagetransfer" src="http://bittyjava.files.wordpress.com/2010/09/imagetransfer.png?w=480&#038;h=256" alt="" width="480" height="256" /></a></p>
<p>This time the relevant process is &#8220;spacesprite,&#8221; shown at the bottom of the list.  You can see that &#8212; as expected &#8212; it&#8217;s using a lot more memory than the other implementation.</p>
<p>Next, I tried doing my own custom implementation of the Sprite and background functionality, using just the RIM graphics classes.  This is where I got a bit of a surprise in the debugger:</p>
<p><a href="http://bittyjava.files.wordpress.com/2010/09/simplespacelayer.png"><img class="alignnone size-full wp-image-232" title="simplespacelayer" src="http://bittyjava.files.wordpress.com/2010/09/simplespacelayer.png?w=480&#038;h=260" alt="" width="480" height="260" /></a></p>
<p>Again, it&#8217;s &#8220;spacesprite&#8221; (at the bottom of the list).  The odd thing is that this implementation doesn&#8217;t seem to be using any less memory than the implementation that copies the entire game image from one array to another for every frame of the game.  I&#8217;m not sure why &#8212; I can only guess that perhaps the RIM graphics components all by themselves consume a lot of memory, whereas the array copy is using memory in an efficient way.</p>
<p>It also demonstrates that this kind of memory profiling doesn&#8217;t give you all of the information you need.  Even though the two implementations are comparable in memory usage, the first one (which copies the image data) was visibly slow on a low-end BlackBerry smartphone, whereas the second implementation ran great on the same device.  So even if the array copy isn&#8217;t costing too much memory, it must cost a fair amount of processing time.</p>
<p>Then, for fun, I compared these two implementations against two SVG implementations.  The first just plays a fixed movie:</p>
<p><a href="http://bittyjava.files.wordpress.com/2010/09/svgfieldanimator.png"><img class="alignnone size-full wp-image-233" title="svgfieldanimator" src="http://bittyjava.files.wordpress.com/2010/09/svgfieldanimator.png?w=480&#038;h=259" alt="" width="480" height="259" /></a></p>
<p>And in the second the user can actually drive the rocket ship around the screen:</p>
<p><a href="http://bittyjava.files.wordpress.com/2010/09/svgcontroller.png"><img class="alignnone size-full wp-image-234" title="svgcontroller" src="http://bittyjava.files.wordpress.com/2010/09/svgcontroller.png?w=480&#038;h=268" alt="" width="480" height="268" /></a></p>
<p>You can see that these two used a bit more memory, but not too much.</p>
<p>As I&#8217;ve said, all of these are experiments that I did while writing my book <a href="http://frogparrot.net/blackberry/index.html">Learn BlackBerry Games Development</a>.  If you&#8217;d like to see how these examples work, just download the complete projects <a href="http://frogparrot.net/java/comparespace.zip">here</a>.  The README file explains how to compile them (it&#8217;s just a standard JDE workspace, so you should be able to open and compile it in any BlackBerry JDE with version &gt;= 4.6.1), and also explains how to switch the &#8220;spacesprite&#8221; project from one implementation to another.  (It&#8217;s just a question of which FieldAnimator implementation you instantiate from the SpaceManager class.)</p>
<p>I hope you find this example amusing and instructive. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bittyjava.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bittyjava.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bittyjava.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bittyjava.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bittyjava.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bittyjava.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bittyjava.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bittyjava.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bittyjava.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bittyjava.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bittyjava.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bittyjava.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bittyjava.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bittyjava.wordpress.com/225/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=225&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bittyjava.wordpress.com/2010/09/23/experimenting-with-blackberry-graphics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ece451c84de6d06538e5a335bb31f10?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">carolhamer</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2010/09/lcduispace.png" medium="image">
			<media:title type="html">lcduispace</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2010/09/imagetransfer.png" medium="image">
			<media:title type="html">imagetransfer</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2010/09/simplespacelayer.png" medium="image">
			<media:title type="html">simplespacelayer</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2010/09/svgfieldanimator.png" medium="image">
			<media:title type="html">svgfieldanimator</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2010/09/svgcontroller.png" medium="image">
			<media:title type="html">svgcontroller</media:title>
		</media:content>
	</item>
		<item>
		<title>BlackBerry on JavaRanch!</title>
		<link>http://bittyjava.wordpress.com/2010/09/22/blackberry-on-javaranch/</link>
		<comments>http://bittyjava.wordpress.com/2010/09/22/blackberry-on-javaranch/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 16:06:59 +0000</pubDate>
		<dc:creator>carolhamer</dc:creator>
				<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[book]]></category>

		<guid isPermaLink="false">http://bittyjava.wordpress.com/?p=221</guid>
		<description><![CDATA[At JavaRanch (a friendly place for Java greenhorns), they&#8217;ve just added a new BlackBerry forum!  And as an opening event, they&#8217;re doing a promotion where you can win a copy of my book Learn BlackBerry Games Development.  As part of the promo, I&#8217;m answering questions there this week.  See you there!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=221&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://www.javaranch.com/">JavaRanch</a> (a friendly place for Java greenhorns), they&#8217;ve just added a new <a href="http://www.coderanch.com/forums/f-102/BlackBerry">BlackBerry forum</a>!  And as an opening event, they&#8217;re doing a promotion where you can win a copy of my book <a href="http://frogparrot.net/blackberry/index.html">Learn BlackBerry Games Development</a>.  As part of the promo, I&#8217;m answering questions there this week.  See you there! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bittyjava.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bittyjava.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bittyjava.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bittyjava.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bittyjava.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bittyjava.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bittyjava.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bittyjava.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bittyjava.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bittyjava.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bittyjava.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bittyjava.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bittyjava.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bittyjava.wordpress.com/221/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=221&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bittyjava.wordpress.com/2010/09/22/blackberry-on-javaranch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ece451c84de6d06538e5a335bb31f10?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">carolhamer</media:title>
		</media:content>
	</item>
		<item>
		<title>BlackBerry&#8217;s two Graphics implementations: Can you use them both?  In the same App?</title>
		<link>http://bittyjava.wordpress.com/2010/09/21/blackberrys-two-graphics-implementations-can-you-use-them-both-in-the-same-app/</link>
		<comments>http://bittyjava.wordpress.com/2010/09/21/blackberrys-two-graphics-implementations-can-you-use-them-both-in-the-same-app/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 17:19:41 +0000</pubDate>
		<dc:creator>carolhamer</dc:creator>
				<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://bittyjava.wordpress.com/?p=211</guid>
		<description><![CDATA[When I first started programming for BlackBerry, one of the things that struck me as most odd was the two completely independent graphics APIs.  For MIDlets, there&#8217;s javax.microedition.lcdui.Graphics, and for RIM&#8217;s own profile, there&#8217;s net.rim.device.api.ui.Graphics.  The two versions are so similar to one another that &#8212; if you&#8217;re careful &#8212; you can write a game [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=211&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When I first started programming for BlackBerry, one of the things that struck me as most odd was the two completely independent graphics APIs.  For MIDlets, there&#8217;s javax.microedition.lcdui.Graphics, and for RIM&#8217;s own profile, there&#8217;s net.rim.device.api.ui.Graphics.  The two versions are so similar to one another that &#8212; if you&#8217;re careful &#8212; you can write a game that can use either of the two graphics APIs interchangeably, just by swapping out the include statements (and using a different set of lifecycle classes).  That&#8217;s what I illustrated in <a href="http://frogparrot.net/blackberry/ch03/index.html">Chapter 3 of my book</a>.</p>
<p>But I wondered: What if I want to use the javax.microedition.lcdui.game package?  But I still want to take advantage of RIM&#8217;s proprietary UI component handling?  Is that even possible?  Note that you can&#8217;t just place an LCDUI Sprite onto a RIM Screen or use lcdui Images interchangeably with RIM Images.  Yet, there&#8217;s nothing to stop you from instantiating many of the lcdui graphics-related classes in a RIMlet &#8212; either type of application has access to the whole API.</p>
<p>Through experimentation, I found that it&#8217;s quite possible to take a game that was written using lcdui game Layers and run it in a RIMlet.  The trick is the following:<span id="more-211"></span> To paint the Layer, call the paint() method yourself (instead of supposing the platform will do it).  First create a mutable (lcdui) Image, get its Graphics instance, and send it to the Layer&#8217;s paint() method (to render the layer into an Image buffer).  As I said, this Image can&#8217;t be placed directly into a RIM UI Component or Container, <em>but</em> its underlying RGB data array has the same format/structure as a RIM Bitmap.  So you can use getRGB() to get the data, then use setARGB() to place the data into a Bitmap.  Note that &#8212; despite the method name &#8212; the lcdui data array also includes the alpha channel, along with the red-green-blue.  (To see a working example, look at the ImageTransfer class in <a href="http://frogparrot.net/java/comparespace.zip">this sample code bundle</a>.)</p>
<p>Now, you&#8217;re probably asking: &#8220;Wow, isn&#8217;t that incredibly inefficient?  Is it making a copy of the entire screen data array for every frame of your game (typically 20 per second)?  Wouldn&#8217;t it be simpler just to re-implement the parts of the lcdui API that you want to use for your game?&#8221;  The answers are yes, yes, and yes.  In Chapters <a href="http://frogparrot.net/blackberry/ch06/index.html">6</a> and <a href="http://frogparrot.net/blackberry/ch09/index.html">9</a> my co-author and I simply re-implemented the features we needed from the lcdui Sprite class.  (For more recent models, RIM has re-implemented the lcdui.game classes for you.)</p>
<p>Still, it turned out that it wasn&#8217;t quite as inefficient as I expected.  For fun, I wrote a bunch of different versions of a rocketship in space game &#8212; using a bunch of different techniques &#8212; and compared their memory consumption using the BlackBerry JDE debugger.  <a href="http://frogparrot.net/java/comparespace.zip">Here</a>&#8216;s the code bundle of my experiment, comparing an lcdui game implementation to a pure RIM proprietary implementation (plus I threw in an SVG implementation as well).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bittyjava.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bittyjava.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bittyjava.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bittyjava.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bittyjava.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bittyjava.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bittyjava.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bittyjava.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bittyjava.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bittyjava.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bittyjava.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bittyjava.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bittyjava.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bittyjava.wordpress.com/211/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=211&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bittyjava.wordpress.com/2010/09/21/blackberrys-two-graphics-implementations-can-you-use-them-both-in-the-same-app/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ece451c84de6d06538e5a335bb31f10?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">carolhamer</media:title>
		</media:content>
	</item>
		<item>
		<title>QA &amp; Dyslexia</title>
		<link>http://bittyjava.wordpress.com/2010/09/08/qa-dyslexia/</link>
		<comments>http://bittyjava.wordpress.com/2010/09/08/qa-dyslexia/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 14:49:24 +0000</pubDate>
		<dc:creator>carolhamer</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[Qt]]></category>

		<guid isPermaLink="false">http://bittyjava.wordpress.com/?p=207</guid>
		<description><![CDATA[I&#8217;ve got some BlackBerry posts coming up, but first I&#8217;d like to say a few words about why I haven&#8217;t posted anything in six months.  There are two reasons: I don&#8217;t like Windows OS.  I&#8217;ll use it if I have to, but for my dev environment at home, I was just too tempted to clean [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=207&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve got some BlackBerry posts coming up, but first I&#8217;d like to say a few words about why I haven&#8217;t posted anything in six months.  There are two reasons:</p>
<ol>
<li>I don&#8217;t like Windows OS.  I&#8217;ll use it if I have to, but for my dev environment at home, I was just <em>too tempted</em> to clean the hard drive (once I&#8217;d finished my BlackBerry book), and replace the OS with Linux.  Naturally, I told myself I&#8217;d set my BlackBerry dev environment back up on some other machine or in a virtual machine or something, and &#8212; since I love installing Windows so much &#8212; you can imagine that that task hasn&#8217;t come to the top of my &#8220;to do&#8221; list.</li>
<li>I&#8217;m excited about my current job, and it&#8217;s something completely different: QA engineering for <a href="http://www.dybuster.com/int">Dybuster</a>.</li>
</ol>
<p>Dybuster is a software suite that helps dyslexic kids learn to read.  For the kids it&#8217;s a game.  It works by giving the kids additional ways to learn words, using colors, tones, and 3D graphical representations:</p>
<p><a href="http://www.dybuster.com/int"><img class="alignnone size-full wp-image-208" title="dybuster-1" src="http://bittyjava.files.wordpress.com/2010/09/dybuster-1.png?w=480&#038;h=360" alt="Dyslexia treatment software by Dybuster" width="480" height="360" /></a></p>
<p>Since I&#8217;ve been testing it, I can say that it has definitely improved my spelling in German.  Of course I&#8217;m not Dyslexic. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>And, fortunately, there&#8217;s an English version available too (including a free downloadable demo version).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bittyjava.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bittyjava.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bittyjava.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bittyjava.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bittyjava.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bittyjava.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bittyjava.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bittyjava.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bittyjava.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bittyjava.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bittyjava.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bittyjava.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bittyjava.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bittyjava.wordpress.com/207/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=207&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bittyjava.wordpress.com/2010/09/08/qa-dyslexia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ece451c84de6d06538e5a335bb31f10?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">carolhamer</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2010/09/dybuster-1.png" medium="image">
			<media:title type="html">dybuster-1</media:title>
		</media:content>
	</item>
		<item>
		<title>Learn BlackBerry Games Development!!!</title>
		<link>http://bittyjava.wordpress.com/2010/03/17/learn-blackberry-games-development/</link>
		<comments>http://bittyjava.wordpress.com/2010/03/17/learn-blackberry-games-development/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 16:56:21 +0000</pubDate>
		<dc:creator>carolhamer</dc:creator>
				<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[book]]></category>

		<guid isPermaLink="false">http://bittyjava.wordpress.com/?p=202</guid>
		<description><![CDATA[So, my new book &#8212; written with co-author Andrew Davison &#8212; is done and ready to go! Have a look at the book&#8217;s website to get an idea of what you&#8217;ll see: Chapter 1. Gaming on BlackBerry! Chapter 2. BlackBerry Application Basics Why are there two types of BlackBerry Java applications? What are all those [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=202&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So, my new book &#8212; written with co-author <a href="http://fivedots.coe.psu.ac.th/~ad">Andrew Davison</a> &#8212; is done and ready to go!</p>
<p>Have a look at <a href="http://frogparrot.net/blackberry/">the book&#8217;s website</a> to get an idea of what you&#8217;ll see:</p>
<p><a href="http://bittyjava.files.wordpress.com/2010/03/sms_checkers.png"><img class="alignleft size-medium wp-image-203" title="sms_checkers" src="http://bittyjava.files.wordpress.com/2010/03/sms_checkers.png?w=300&#038;h=173" alt="" width="300" height="173" /></a></p>
<ul>
<li><a href="http://frogparrot.net/blackberry/ch01/index.html">Chapter 1. Gaming on BlackBerry!</a></li>
<li><a href="http://frogparrot.net/blackberry/ch02/index.html">Chapter 2. BlackBerry Application Basics</a><br />
Why are there two types of BlackBerry Java applications? What are all those  crazy files the compiler generated? And – most importantly – how do I get an  application complied and running on my BlackBerry smartphone? Chapter 2 will  answer all of these questions, plus help you set up a professional build with Ant.</li>
<li><a href="http://frogparrot.net/blackberry/ch03/index.html">Chapter 3. Game Graphics and Events with MIDP and RIM Classes</a><br />
Using the classic Maze game as an example, you&#8217;ll see exactly how the two types  of BlackBerry Java applications differ. You get an in-depth look at how the  lifecycle, events, and graphics work in both cases so you&#8217;ll be ready to develop  whichever kind is best suited to your game&#8217;s needs.</li>
<li><a href="http://frogparrot.net/blackberry/ch04/index.html">Chapter 4. Adding a Professional Look and Feel</a><br />
Gorgeous graphics are critical for the game experience. To get your game&#8217;s visual  theme pixel-perfect on every model, BlackBerry gives you the tools, and Chapter 4  explains how to use them.</li>
<li><a href="http://frogparrot.net/blackberry/ch05/index.html">Chapter 5. Security and Selling Your Game</a><br />
As much as you love games for their own sake, at the end of the day it&#8217;s nice  to get paid. In Chapter 5 you&#8217;ll see how to sell your game on BlackBerry App World  (or on your own site) – plus how to apply the cryptography APIs to implement  licensing and Digital Rights Management.</li>
<li><a href="http://frogparrot.net/blackberry/ch06/index.html">Chapter 6. Swingin&#8217; Light Saber</a><br />
With action, music, sound-effects, colliding game sprites, and even touch-screen  input, Andrew shows you how to put it all together and develop a real game.  Plus BlackBerry&#8217;s accelerometer lets you wield your saber like a true RIM-i Knight!</li>
<li><a href="http://frogparrot.net/blackberry/ch07/index.html">Chapter 7. Play a Live Opponent with SMS</a><br />
That classic, tiny packet of data sent by the Short Message Service is still  a favorite with users and operators alike. And it&#8217;s all you need to play a  trans-atlantic game of Checkers with a friend – chosen from your BlackBerry  contact list!</li>
<li><a href="http://frogparrot.net/blackberry/ch08/index.html">Chapter 8. Using Scalable Vector Graphics</a><br />
2-D graphics are easy to master and allow you to create surprisingly impressive  effects. Check out Chapter 8&#8242;s spinning spaceship video and learn the tricks  to create it.</li>
<li><a href="http://frogparrot.net/blackberry/ch09/index.html">Chapter 9. Creating Role-Playing Games on the Internet</a><br />
Since Internet everywhere is BlackBerry&#8217;s strong point, it was practically  born for Massively Multiplayer Online Role-Playing Games (MMORPGs)! Chapter 9  uses Twitter to create a virtual asteroid belt that you can explore and find  real people in their own virtual ships.</li>
<li><a href="http://frogparrot.net/blackberry/ch10/index.html">Chapter 10. Remotely Drive a (toy) Sports Car</a><br />
What&#8217;s more fun than driving a remote controlled car? Driving one from your  BlackBerry! Andrew illustrates Bluetooth programming in style.</li>
<li><a href="http://frogparrot.net/blackberry/ch11/index.html">Chapter 11. Fox and Hounds</a><br />
Here&#8217;s something your stationary game console can&#8217;t do: a real live game of hot  pursuit – based on GPS!</li>
<li><a href="http://frogparrot.net/blackberry/ch12/index.html">Chapter 12. Introducing 3D with JSR 239</a><br />
Have a look at what the latest-and-greatest version 5 BlackBerry smartphones can do!  Andrew explains 3-D graphics with OpenGL.</li>
</ul>
<p><strong>Also note:</strong> I have some &#8220;outtakes&#8221; &#8212; sample games and code that didn&#8217;t quite make it to the book but are nonetheless kind of interesting.  I&#8217;ll be posting them here over the next few months.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bittyjava.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bittyjava.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bittyjava.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bittyjava.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bittyjava.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bittyjava.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bittyjava.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bittyjava.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bittyjava.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bittyjava.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bittyjava.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bittyjava.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bittyjava.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bittyjava.wordpress.com/202/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=202&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bittyjava.wordpress.com/2010/03/17/learn-blackberry-games-development/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ece451c84de6d06538e5a335bb31f10?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">carolhamer</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2010/03/sms_checkers.png?w=300" medium="image">
			<media:title type="html">sms_checkers</media:title>
		</media:content>
	</item>
		<item>
		<title>A basic QTestLib and qExec example (for engineers with experience in Q.A., not Qt!)</title>
		<link>http://bittyjava.wordpress.com/2010/03/10/a-basic-qtestlib-and-qexec-example-for-engineers-with-experience-in-q-a-not-qt/</link>
		<comments>http://bittyjava.wordpress.com/2010/03/10/a-basic-qtestlib-and-qexec-example-for-engineers-with-experience-in-q-a-not-qt/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 14:36:47 +0000</pubDate>
		<dc:creator>carolhamer</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[Qt]]></category>

		<guid isPermaLink="false">http://bittyjava.wordpress.com/?p=185</guid>
		<description><![CDATA[When doing a software QA project, you have to be ready to set up and design tests in a variety of different programming (and scripting) languages &#8212; to best integrate the automated tests with the rest of the project.  I&#8217;ve worked in C/C++, but I&#8217;m far from being an expert on the subject. So I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=185&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When doing a software QA project, you have to be ready to set up and design tests in a variety of different programming (and scripting) languages &#8212; to best integrate the automated tests with the rest of the project.  I&#8217;ve worked in C/C++, but I&#8217;m far from being an expert on the subject. So I can end up wasting time on points that would be extremely simple for an engineer who works in C or C++ every day. And since I wasted <em>my </em>time on this, I&#8217;m posting my notes so that you won&#8217;t have to do the same.</p>
<p>I recently added some tests to the automated build of a C++ project that uses <a href="http://doc.trolltech.com/4.6/index.html">Qt</a>, which has a built-in unit testing framework: <a href="http://doc.trolltech.com/4.6/qtestlib-manual.html">QTestLib</a>. QTestLib seems reasonably well-designed in terms of features. There were just a couple of points I felt were missing from <a href="http://doc.trolltech.com/4.6/qtestlib-tutorial.html">the tutorial</a>, so I&#8217;m posting a few remarks for the sake of Q.A. engineers who need to dive straight into the Qt unit test framework. (Apologies in advance to C/C++ developers who will undoubtedly find these points laughably trivial&#8230;)</p>
<p>I&#8217;m assuming here that you&#8217;ve already done at least <a href="http://doc.trolltech.com/4.6/qtestlib-tutorial1.html">the first chapter</a> of <a href="http://doc.trolltech.com/4.6/qtestlib-tutorial.html">the tutorial</a>.  If not, go do it now &#8212; it&#8217;s very short.</p>
<p>Done? OK, let&#8217;s get started. My #1 problem with the tutorial is that it explains how to create a stand-alone application that runs a single <a href="http://doc.trolltech.com/4.6/qtest.html">QTest</a> class, but doesn&#8217;t explain how to create an application that will use <a href="http://doc.trolltech.com/4.6/qtest.html#qExec">QExec</a> to run a series of QTest test suites. Like so many things in software engineering, it&#8217;s very simple (once you know the trick).  And today I&#8217;m going to tell you the trick!<span id="more-185"></span></p>
<p>I&#8217;ve gotten used to programming in Java, and I&#8217;d forgotten that a C application is only allowed to have one main() function.  Unlike in Java, if you have two program files that each have a main() function, then you can&#8217;t link them together into a single application. (This is because main() is global instead of being a class-specific method.)</p>
<p>Normally this isn&#8217;t a problem &#8212; just don&#8217;t write any main() functions except for the <em>main</em> main().  Except that the tutorial just shows you how to create a test class (in a single file) with an auto-generated main() function.  So how do I write a central application (with its own main) that can execute that set of tests in the &#8220;TestQString&#8221; class &#8212; plus execute the tests in other tests classes? <a href="http://doc.trolltech.com/4.6/qtestlib-tutorial1.html">The tutorial</a> says this:</p>
<blockquote><p>Finally, to make our test case a stand-alone executable, the following two lines are needed:</p>
<pre> QTEST_MAIN(TestQString)
 #include "testqstring.moc"</pre>
<p>The <a href="http://doc.trolltech.com/4.6/qtest.html#QTEST_MAIN">QTEST_MAIN</a>() macro expands to a simple <tt>main()</tt> method that runs all the test functions. Note that if both the declaration and the implementation of our test class are in a <tt>.cpp</tt> file, we also need to include the generated moc file to make Qt&#8217;s introspection work.</p></blockquote>
<p>This is helpful as a start, but it kind of left me asking: <em>What if I </em>don&#8217;t<em> want to put the declaration and the implementation in the same file? Then how do I include &#8220;the generated moc file&#8221; (whatever the hell that is)?</em></p>
<p><strong>Answer:</strong> you don&#8217;t need to do anything &#8212; the generated main() function is included automatically if you have a separate header file for declarations.  Create a &#8220;TestQString.h&#8221; file and put the declaration part in it:</p>
<blockquote>
<pre> #include &lt;QtTest/QtTest&gt;

 class TestQString: public QObject
 {
     Q_OBJECT
 private slots:
     void toUpper();
 };</pre>
</blockquote>
<p>Then add the #include &#8220;TestQString.h&#8221; line in the .cpp file, plus add &#8220;HEADERS += TestQString.h&#8221; to your .pro file.  The generated parts will take care of themselves in the &#8220;qmake&#8221; step.  (Again, sorry to belabor an obvious point, but I&#8217;m <a href="http://stackoverflow.com/questions/1892899/help-understanding-qtest-tutorials">not the only one</a> who was confused by this.)</p>
<p>Then there was one more (not-stated-in-the-tutorial-but-obvious-in-retrospect) point that I had to figure out for myself: The test class doesn&#8217;t <em>need </em>the generated main() in order to run the tests in sequence. The auto-generated main() runs the test in sequence &#8212; including the set-up and tear-down steps &#8212; but apparently <a href="http://doc.trolltech.com/4.6/qtest.html#qExec">Qtest::qExec</a> does the same thing, <em>without using the auto-generated main() function to do it</em>. So if you&#8217;re using <a href="http://doc.trolltech.com/4.6/qtest.html#qExec">Qtest::qExec</a>, you can just leave off the <a href="http://doc.trolltech.com/4.6/qtest.html#QTEST_MAIN">QTEST_QMAIN()</a> entirely.<em><br />
</em></p>
<p>And &#8212; if you&#8217;d like to allow both options &#8212; just put the QTEST_QMAIN() statement in a separate .cpp source file (not the one where you implemented your tests). Then you can write two different project files &#8212; one that includes the source file with QTEST_QMAIN() (to build your tests in stand-alone mode), and one that leaves that file off of the SOURCES list (for when you want your tests to be run by a larger application).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bittyjava.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bittyjava.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bittyjava.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bittyjava.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bittyjava.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bittyjava.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bittyjava.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bittyjava.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bittyjava.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bittyjava.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bittyjava.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bittyjava.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bittyjava.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bittyjava.wordpress.com/185/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=185&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bittyjava.wordpress.com/2010/03/10/a-basic-qtestlib-and-qexec-example-for-engineers-with-experience-in-q-a-not-qt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ece451c84de6d06538e5a335bb31f10?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">carolhamer</media:title>
		</media:content>
	</item>
		<item>
		<title>Beginning BlackBerry Development by Anthony Rizk</title>
		<link>http://bittyjava.wordpress.com/2009/12/15/beginning-blackberry-development-by-anthony-rizk/</link>
		<comments>http://bittyjava.wordpress.com/2009/12/15/beginning-blackberry-development-by-anthony-rizk/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 14:50:35 +0000</pubDate>
		<dc:creator>carolhamer</dc:creator>
				<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://bittyjava.wordpress.com/?p=180</guid>
		<description><![CDATA[The first book in Apress&#8217;s Blackberry series appeared this past November: Beginning BlackBerry Development by Anthony Rizk. Naturally I picked up a copy because I was curious to see how his approach (and his book) compared to my upcoming book (Learn BlackBerry Games Development, written in cooperation with Andrew Davison). Fortunately, the two books cover [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=180&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://apress.com/book/view/1430272252"><img class="alignleft size-full wp-image-181" title="Rizk_beginning_blackberry" src="http://bittyjava.files.wordpress.com/2009/12/rizk_beginning_blackberry.jpg?w=480" alt=""   /></a> The first book in <a href="http://apress.com/book/search?searchterm=BlackBerry">Apress&#8217;s Blackberry series</a> appeared this past November: <a href="http://apress.com/book/view/1430272252">Beginning BlackBerry Development</a> by <a href="http://www.thinkingblackberry.com/">Anthony Rizk</a>. Naturally I picked up a copy because I was curious to see how his approach (and his book) compared to my upcoming book (<a href="http://apress.com/book/view/1430227184">Learn BlackBerry Games Development</a>, written in cooperation with <a href="http://fivedots.coe.psu.ac.th/~ad/">Andrew Davison</a>). Fortunately, the two books cover quite different subject matter. I&#8217;d even say they&#8217;re complimentary. It turns out that there&#8217;s quite a lot to say about the BlackBerry platform because the application lifecycle/behavior/philosophy is very different from MIDP (even though you can run MIDlets on it), plus BlackBerry has a dedicated server-side network that you can program for. John M. Wargo &#8212; who <a href="http://planetlotus.org/profiles/john-wargo_61854">reviewed Rizk&#8217;s book on Planet Lotus</a> &#8212; says that <em>his</em> book on <a href="http://www.amazon.com/BlackBerry-Development-Fundamentals-John-Wargo/dp/0321647424/">BlackBerry Development Fundamentals</a> is <em>also</em> complementary with Rizk&#8217;s. (It kind of makes me wonder if there&#8217;s overlap between my book and John Wargo&#8217;s &#8212; but I doubt there&#8217;s much.)</p>
<p>Rizk&#8217;s book &#8212; being an intro book &#8212; doesn&#8217;t assume a high level of Java/programming knowledge. In Chapter 1, he warns the reader that &#8220;This book is not an introduction to object-oriented programming, or even to the Java language.&#8221; However, if you&#8217;ve taken one course in Java programming or have worked through an intro book on the subject, &#8220;Beginning BlackBerry Development&#8221; would be a fine next step. It covers all of the fundamentals of how to build and deploy a BlackBerry Java application, how the application lifecycle works, how to build a user-interface (and respond to user input), the differences among the four or more different types of data persistence on BlackBerry (and how to use them), the different types of BlackBerry network communications available, and how to program for the GPS.</p>
<p>They timed the book to come out in time for the holidays (as well as for a BlackBerry dev conference), and it&#8217;s true that the book would make a good gift for a technophile in your life who&#8217;s thinking of going into software engineering or for a software engineer in your life who has a BlackBerry and is thinking of maybe trying to sell an application on <a href="http://na.blackberry.com/eng/services/appworld/">BlackBerry App World</a>. (And if they like it &#8212; and want to take it to the next level with the techniques for making games on the BlackBerry &#8212; well, you can guess which book I&#8217;d recommend they try next. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bittyjava.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bittyjava.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bittyjava.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bittyjava.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bittyjava.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bittyjava.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bittyjava.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bittyjava.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bittyjava.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bittyjava.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bittyjava.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bittyjava.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bittyjava.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bittyjava.wordpress.com/180/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=180&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bittyjava.wordpress.com/2009/12/15/beginning-blackberry-development-by-anthony-rizk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ece451c84de6d06538e5a335bb31f10?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">carolhamer</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2009/12/rizk_beginning_blackberry.jpg" medium="image">
			<media:title type="html">Rizk_beginning_blackberry</media:title>
		</media:content>
	</item>
		<item>
		<title>Easy, fun game sprites made with SVG!</title>
		<link>http://bittyjava.wordpress.com/2009/11/12/easy-fun-game-sprites-made-with-svg/</link>
		<comments>http://bittyjava.wordpress.com/2009/11/12/easy-fun-game-sprites-made-with-svg/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 23:32:00 +0000</pubDate>
		<dc:creator>carolhamer</dc:creator>
				<category><![CDATA[Graphics]]></category>

		<guid isPermaLink="false">http://bittyjava.wordpress.com/?p=169</guid>
		<description><![CDATA[I downloaded and installed Inkscape in order to draw an animation to play with the Scalable Vector Graphics API.  Inkscape was quite helpful for creating my game&#8217;s opening SVG animation (though it would have been more helpful if it could save the file in &#8220;SVG Tiny&#8221;&#8230;).  What I didn&#8217;t expect was how helpful Inkscape is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=169&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I downloaded and installed <a href="http://inkscape.org/">Inkscape</a> in order to draw an animation to play with the Scalable Vector Graphics API.  Inkscape was quite helpful for creating my game&#8217;s opening SVG animation (though it would have been more helpful if it could save the file in &#8220;SVG Tiny&#8221;&#8230;).  What I didn&#8217;t expect was how helpful Inkscape is for drawing standard game sprites &#8212; drawn first in Scalable Vector Graphics format, then exported as PNG files!</p>
<p>I needed an rocket sprite for my &#8220;Space Explorer&#8221; game.  Here&#8217;s what I came up with:</p>
<p><img class="alignnone size-full wp-image-170" title="rocket-flames-96" src="http://bittyjava.files.wordpress.com/2009/11/rocket-flames-96.png?w=480" alt="rocket-flames-96"   /></p>
<p>You can see that the four frames give a spinning effect.  (The lower row gives the frame sequence for when the engines are turned on.)  I&#8217;m more an engineer than an artist, but here&#8217;s how Inkscape and SVG made it easy for me to draw this:<span id="more-169"></span></p>
<p>The thing is that the lines of the drawing are objects that are easy to manipulate.  They&#8217;re easy to grab, modify, duplicate, and delete.  So for the animation, I just drew all of the elements onto a single drawing.  Then, I saved four copies, and on each one deleted the elements I didn&#8217;t need:</p>
<p><img class="alignnone size-full wp-image-171" title="rocket-all" src="http://bittyjava.files.wordpress.com/2009/11/rocket-all.png?w=480&#038;h=683" alt="rocket-all" width="480" height="683" /></p>
<p>I temporarily colored different components different colors to keep track of which one was which. For the final sprite version, I filled the components with a radial gradient fill.  It&#8217;s surprising how much depth you get just from using a gradient when coloring in your sprite!</p>
<p>After I did one rocket sprite this way, I improved my technique while drawing a flying saucer sprite:</p>
<p><img class="alignnone size-full wp-image-172" title="martian-sprite-60" src="http://bittyjava.files.wordpress.com/2009/11/martian-sprite-60.png?w=480" alt="martian-sprite-60"   /></p>
<p>I started by creating a single SVG image file (in Inkscape) that contained all of the image elements:</p>
<p><img class="alignnone size-full wp-image-173" title="martian-all" src="http://bittyjava.files.wordpress.com/2009/11/martian-all.png?w=480" alt="martian-all"   /></p>
<p>Starting from this (SVG) image, I saved eight copies, one for each of the animation frames. You can see how drawing all of the elements onto a single drawing makes it very easy to place the different elements and to make sure that the images line up <em>exactly</em> from one frame to the next. Then, on each frame, I just deleted the elements I didn&#8217;t need (and changed some of the colors so that the bulbs are red when the engines are on).</p>
<p>Once I had my eight SVG files, it wasn&#8217;t too hard to place them all correctly into a single PNG file.  (The trouble is that they have to be placed so that the images line up exactly from one frame to the next.)</p>
<p>In the file menu of Inkscape, there&#8217;s an &#8220;Export Bitmap&#8221; option that allows you to export the image as a PNG file. It automatically crops the image tightly, which is quite helpful for creating frames that are all the right size. So I opened all eight PNG files in the <a href="http://www.gimp.org/">GIMP</a>, and created a new image that was exactly big enough to hold the eight frames.  Then I copied the eight images and pasted them all in.</p>
<p>The tricky part is placing each frame in exactly the right spot in the larger image.  It turns out that it&#8217;s not possible in the GIMP to select exact coordinates when pasting one image into another (eg. there&#8217;s no dialog that lets you say &#8220;paste the top left corner of the sub-image at pixel 34, 56 of the larger image&#8221;).  I Googled around for how to paste at a particular spot, and learned that it&#8217;s a feature that doesn&#8217;t exist.  And it&#8217;s particularly tricky with images that have transparent backgrounds (as sprites created in Inkscape do).  The GIMP copies only the non-transparent part of the image, so if you were using the transparent part as a guide for where to place the image within the frame, you lose that information when you do the copy-paste.</p>
<p>Here&#8217;s the solution I came up with:  Use the magnifying glass to expand each frame.  Then use the pencil tool to draw one black pixel in each of the bottom corners of the four bottom frames and one black pixel in each of the top corners of the for top frames. Then when I copy-paste each individual frame into the larger image, I can use the corner pixels to place the frames exactly.  There may be a simpler way to do it than that, but that was the simplest trick I found.</p>
<p>I had so much fun drawing spaceships, that I blew off programming for the day to draw some more:</p>
<p><img class="alignnone size-full wp-image-174" title="leo-sprite-56" src="http://bittyjava.files.wordpress.com/2009/11/leo-sprite-56.png?w=480" alt="leo-sprite-56"   /></p>
<p>(My 6-year-old Leo wanted one of the rockets in the game to have his name on it.)</p>
<p><img class="alignnone size-full wp-image-175" title="scooter-sprite-99" src="http://bittyjava.files.wordpress.com/2009/11/scooter-sprite-99.png?w=480" alt="scooter-sprite-99"   /></p>
<p>Actually &#8212; since it&#8217;s more fun for the players if there&#8217;s a variety of interesting characters in your game&#8217;s universe &#8212; it&#8217;s nice to know that it isn&#8217;t too difficult and time-consuming to draw them. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bittyjava.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bittyjava.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bittyjava.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bittyjava.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bittyjava.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bittyjava.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bittyjava.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bittyjava.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bittyjava.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bittyjava.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bittyjava.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bittyjava.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bittyjava.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bittyjava.wordpress.com/169/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=169&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bittyjava.wordpress.com/2009/11/12/easy-fun-game-sprites-made-with-svg/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ece451c84de6d06538e5a335bb31f10?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">carolhamer</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2009/11/rocket-flames-96.png" medium="image">
			<media:title type="html">rocket-flames-96</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2009/11/rocket-all.png" medium="image">
			<media:title type="html">rocket-all</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2009/11/martian-sprite-60.png" medium="image">
			<media:title type="html">martian-sprite-60</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2009/11/martian-all.png" medium="image">
			<media:title type="html">martian-all</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2009/11/leo-sprite-56.png" medium="image">
			<media:title type="html">leo-sprite-56</media:title>
		</media:content>

		<media:content url="http://bittyjava.files.wordpress.com/2009/11/scooter-sprite-99.png" medium="image">
			<media:title type="html">scooter-sprite-99</media:title>
		</media:content>
	</item>
		<item>
		<title>The BlackBerry Red Key!</title>
		<link>http://bittyjava.wordpress.com/2009/11/07/the-blackberry-red-key/</link>
		<comments>http://bittyjava.wordpress.com/2009/11/07/the-blackberry-red-key/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 19:08:57 +0000</pubDate>
		<dc:creator>carolhamer</dc:creator>
				<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://bittyjava.wordpress.com/?p=162</guid>
		<description><![CDATA[When I&#8217;m running an application on a BlackBerry device &#8212; and I hit the red key &#8212; my app disappears, and the menu screen reappears. I&#8217;d guess that my app&#8217;s screen was popped off the BlackBerry screen stack, so onClose() was called and my app cleaned itself up neatly, right? Wrong.  The application was merely [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=162&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When I&#8217;m running an application on a BlackBerry device &#8212; and I hit the red key &#8212; my app disappears, and the menu screen reappears. I&#8217;d guess that my app&#8217;s screen was popped off the BlackBerry screen stack, so onClose() was called and my app cleaned itself up neatly, right?</p>
<p>Wrong.  The application was merely sent to the background.</p>
<p>I assume this behavior is mentioned somewhere in the bowels of the RIM documentation (although I&#8217;ve read quite a lot of it, and I haven&#8217;t seen mention of this). Nor do the sample applications appear to deal with it. I just figured it out when my colleague Andrew Davison sent me a game that plays music in the background. It was a tad loud, so I instinctively tried to shut it off in one click using the red key. And the game went away, but the music kept right on playing&#8230;</p>
<p>It reminds me of a little something I read in the <a href="http://www.versatilemonkey.com/story.html">PodTrapper story</a>:</p>
<blockquote><p>My curve has 32MB of RAM and 64MB of flash. The flash can be used for paging if it&#8217;s available, but on my device only about 20MB of it is, and that fills up fast installing applications (PodTrapper alone is 350k). Realizing that the OS and other apps also have to fit in RAM, leaking a 100kb string becomes a huge problem. There are <a href="http://forums.crackberry.com/f132/do-memory-woes-ever-end-214830/">lots</a> of <a href="http://forums.crackberry.com/f134/memory-leak-application-248861/">forum</a> <a href="http://forums.crackberry.com/f83/memory-leak-96281/">posts</a> by people trying to figure out why their phone keeps running out of memory and needs to be rebooted. It&#8217;s a large enough problem that there are <a href="http://software.crackberry.com/product.asp?id=27660&amp;n=QuickPull-v2-%28BETA%29">apps for automatically restarting your phone</a>. I can definitely see why Apple has been hesitant to open up background processing on the iPhone. It&#8217;s really easy for bad developers to make the whole platform look bad.</p></blockquote>
<p>Personally, I think it&#8217;s kind of cool that you can run apps in the background on BlackBerry, and send them to the foreground and back. However, I think the simplest, <em>default behavior</em> should lean towards cleaning up the app neatly, while sitting on memory and processes when your app goes out of scope should be a special behavior that <em>advanced developers can request</em>.  Not the other way around.</p>
<p>So what about that red key?  What if you&#8217;re developing a game or animation that makes no sense in the background, and you just want it to clean up whenever the user dismisses it?</p>
<p>Andrew proposed the following solution (for use in a subclass of Screen):</p>
<p><span id="more-162"></span></p>
<p>// keycodes for the green and red keys<br />
private static final int GREEN_KEY = 1114112;<br />
private static final int RED_KEY = 1179648;</p>
<p>protected boolean keyDown(int keycode, int time)<br />
// terminate the game if the green or red keys are pressed<br />
{<br />
// System.out.println(&#8220;keyDown: &#8221; + keycode);<br />
if ((keycode == GREEN_KEY) || (keycode == RED_KEY)) {<br />
isRunning = false;<br />
return true;<br />
}<br />
return false;<br />
}  // end of keyDown()</p>
<p>***</p>
<p>That works, but on some level I couldn&#8217;t help but feel like it&#8217;s absurd of RIM to expect developers to check for the key codes of the red key and green key instead of providing some sort of help.  This has got to be a fairly common scenario, doesn&#8217;t it?</p>
<p>Poking around the API a bit, I found it:  In your Application subclass, you implement deactivate().  Here&#8217;s the JavaDoc:</p>
<blockquote><p>public void <strong>deactivate</strong>()<br />
Handles backgrounding event.<br />
The system invokes this method when sending this application to the  background. By default, this method does nothing. Override this method to  perform additional processing when being sent to the background.</p></blockquote>
<p>So, if you&#8217;re writing an application that makes no sense in the background, then you implement this method and have it perform the app&#8217;s cleanup and shutdown.</p>
<p>Like so many aspects of BlackBerry programming, it&#8217;s quite simple <em>once you notice the problem and figure out the trick.</em> <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bittyjava.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bittyjava.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bittyjava.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bittyjava.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bittyjava.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bittyjava.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bittyjava.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bittyjava.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bittyjava.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bittyjava.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bittyjava.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bittyjava.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bittyjava.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bittyjava.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=162&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bittyjava.wordpress.com/2009/11/07/the-blackberry-red-key/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ece451c84de6d06538e5a335bb31f10?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">carolhamer</media:title>
		</media:content>
	</item>
		<item>
		<title>Freelance BlackBerry Developer Needed</title>
		<link>http://bittyjava.wordpress.com/2009/09/29/freelance-blackberry-developer-needed/</link>
		<comments>http://bittyjava.wordpress.com/2009/09/29/freelance-blackberry-developer-needed/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 13:23:04 +0000</pubDate>
		<dc:creator>carolhamer</dc:creator>
				<category><![CDATA[BlackBerry]]></category>

		<guid isPermaLink="false">http://bittyjava.wordpress.com/?p=160</guid>
		<description><![CDATA[I&#8217;m looking for one engineer (who has worked with BlackBerry) for a fun little project. It&#8217;s a paid project, not just a hobbyist idea. If you&#8217;re interested, please leave a comment, and I&#8217;ll email you.  Thanks!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=160&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m looking for one engineer (who has worked with BlackBerry) for a fun little project. It&#8217;s a paid project, not just a hobbyist idea.</p>
<p>If you&#8217;re interested, please leave a comment, and I&#8217;ll email you.  Thanks!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bittyjava.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bittyjava.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bittyjava.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bittyjava.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bittyjava.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bittyjava.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bittyjava.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bittyjava.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bittyjava.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bittyjava.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bittyjava.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bittyjava.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bittyjava.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bittyjava.wordpress.com/160/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bittyjava.wordpress.com&amp;blog=356092&amp;post=160&amp;subd=bittyjava&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bittyjava.wordpress.com/2009/09/29/freelance-blackberry-developer-needed/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ece451c84de6d06538e5a335bb31f10?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">carolhamer</media:title>
		</media:content>
	</item>
	</channel>
</rss>
