<?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>The Traveling Coder</title>
	<atom:link href="http://www.thetravelingcoder.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.thetravelingcoder.com</link>
	<description>for i in adventure{ i.start() }</description>
	<lastBuildDate>Sat, 07 Jan 2012 09:14:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Pantip Plaza</title>
		<link>http://www.thetravelingcoder.com/2012/pantip-plaza-2</link>
		<comments>http://www.thetravelingcoder.com/2012/pantip-plaza-2#comments</comments>
		<pubDate>Sat, 07 Jan 2012 09:14:14 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.thetravelingcoder.com/?p=167</guid>
		<description><![CDATA[If you are a geek, you can&#8217;t miss the tech headquarters in Bangkok. It&#8217;s called Pantip Plaza, and you can get just about anything you are looking for&#8230; RAM, hard drives, curling irons, pens, stationary, robots, puppies, and electric shavers. I was just telling a friend the other day how the place never lets me &#8230; </p><p><a class="more-link block-button" href="http://www.thetravelingcoder.com/2012/pantip-plaza-2">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>If you are a geek, you can&#8217;t miss the tech headquarters in Bangkok. It&#8217;s called Pantip Plaza, and you can get just about anything you are looking for&#8230; RAM, hard drives, curling irons, pens, stationary, robots, puppies, and electric shavers.</p>
<p>I was just telling a friend the other day how the place never lets me leave without spending money! It&#8217;s good though, I found a cheap capacitive stylus for my iPad (200 baht) and a micro-to-normal SIM card adapter (70 baht). Both have been incredibly helpful, the latter even more so because I managed to top up the wrong SIM and still need access to it in my Android device. Very cool.</p>
<p>If you are interested in over 4 floors of tech goodness, then don&#8217;t miss it. The plaza is a 10 minute walk from Ratchathewi BTS station. Ask anybody in the area and they can point you in the right direction.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetravelingcoder.com/2012/pantip-plaza-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pantip Plaza</title>
		<link>http://www.thetravelingcoder.com/2012/pantip-plaza</link>
		<comments>http://www.thetravelingcoder.com/2012/pantip-plaza#comments</comments>
		<pubDate>Sat, 07 Jan 2012 09:13:20 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.thetravelingcoder.com/?p=166</guid>
		<description><![CDATA[If you are a geek, you can&#8217;t miss the tech headquarters in Bangkok. It&#8217;s called Pantip Plaza, and you can get just about anything you are looking for&#8230; RAM, hard drives, curling irons, pens, stationary, robots, puppies, and electric shavers. I was just telling a friend the other day how the place never lets me &#8230; </p><p><a class="more-link block-button" href="http://www.thetravelingcoder.com/2012/pantip-plaza">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>If you are a geek, you can&#8217;t miss the tech headquarters in Bangkok. It&#8217;s called Pantip Plaza, and you can get just about anything you are looking for&#8230; RAM, hard drives, curling irons, pens, stationary, robots, puppies, and electric shavers.</p>
<p>I was just telling a friend the other day how the place never lets me leave without spending money! It&#8217;s good though, I found a cheap capacitive stylus for my iPad (200 baht) and a micro-to-normal SIM card adapter (70 baht). Both have been incredibly helpful, the latter even more so because I managed to top up the wrong SIM and still need access to it in my Android device. Very cool.</p>
<p>If you are interested in over 4 floors of tech goodness, then don&#8217;t miss it. The plaza is a 10 minute walk from Ratchathewi BTS station. Ask anybody in the area and they can point you in the right direction.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetravelingcoder.com/2012/pantip-plaza/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIS Prepaid Data</title>
		<link>http://www.thetravelingcoder.com/2011/ais-prepaid-data</link>
		<comments>http://www.thetravelingcoder.com/2011/ais-prepaid-data#comments</comments>
		<pubDate>Tue, 13 Dec 2011 06:31:01 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[3G]]></category>
		<category><![CDATA[AIS]]></category>
		<category><![CDATA[Bangkok]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[Mobile Internet]]></category>
		<category><![CDATA[Thailand]]></category>

		<guid isPermaLink="false">http://www.thetravelingcoder.com/2011/ais-prepaid-data</guid>
		<description><![CDATA[We arrived in Bangkok last night and I decided to get an AIS SIM before our beach days on Koh Chang. I have had good luck in the past with AIS and bandwith, and figured spending an extra couple of bux was worth having consistent internet. This time I managed to get a micro SIM &#8230; </p><p><a class="more-link block-button" href="http://www.thetravelingcoder.com/2011/ais-prepaid-data">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>We arrived in Bangkok last night and I decided to get an AIS SIM before our beach days on Koh Chang. I have had good luck in the past with AIS and bandwith, and figured spending an extra couple of bux was worth having consistent internet.</p>
<p>This time I managed to get a micro SIM for my iPad. The price was 69 Baht for the SIM, and 100 Baht for 30 hours of Data. As far as I could tell, there is no way for you to purchase the SIM card and set it up yourself. So, if you would like to try this out you&#8217;ll have to find a Telewiz/AIS store. If you are on Khao San, there is a store near the post office (ask and you will be pointed in the right direction). </p>
<p>Why do you need to go to a store you might ask&#8230; well, the process actually required me to test compatibility with the Micro SIM (not exactly sure why since iPads are unlocked). It was just a matter of popping in the SIM that they have lying around for testing. Next, another card (full sized SIM) needs to be activated. I&#8217;m assuming this is done so that you have a number to top up. Last, a micro SIM card needs to be registered and the information from the previously activated card needs to be transferred. It all seemed like a big effort for something that should be prepackaged. </p>
<p>When I got that done I was rocking out a speed test enroute to my next destination (Koh Chang). Here&#8217;s the result from that test:</p>
<p><a href="http://www.thetravelingcoder.com/wp-content/uploads/2011/12/20111213-134207.jpg" rel="shadowbox[sbpost-162];player=img;"><img src="http://www.thetravelingcoder.com/wp-content/uploads/2011/12/20111213-134207.jpg" alt="20111213-134207.jpg" class="aligncenter size-full" /></a></p>
<p>Do note this was in a taxi near the Khao San area of Bangkok. The iPad registered the cell service as 3G. Sadly it&#8217;s a not quite the 7.2 Mbps as advertised.</p>
<p>UPDATE: Once I got to the island I did another test of the AIS service. Below is a screenshot of the speed test from Koh Chang.</p>
<p><a href="http://www.thetravelingcoder.com/wp-content/uploads/2011/12/20111213-135312.jpg" rel="shadowbox[sbpost-162];player=img;"><img src="http://www.thetravelingcoder.com/wp-content/uploads/2011/12/20111213-135312.jpg" alt="20111213-135312.jpg" class="aligncenter size-full" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetravelingcoder.com/2011/ais-prepaid-data/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stray Tour</title>
		<link>http://www.thetravelingcoder.com/2011/stray-tour</link>
		<comments>http://www.thetravelingcoder.com/2011/stray-tour#comments</comments>
		<pubDate>Sat, 26 Nov 2011 07:54:00 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.thetravelingcoder.com/2011/stray-tour</guid>
		<description><![CDATA[Been out and about on a Stray tour for the southern part of Laos. We&#8217;ve had various internet speeds along the way, but have been mostly disconnected for a majority of it. I just wanted to update quick to say that we have been out in the middle of nowhere in Laos. I&#8217;ll post again &#8230; </p><p><a class="more-link block-button" href="http://www.thetravelingcoder.com/2011/stray-tour">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Been out and about on a Stray tour for the southern part of Laos. We&#8217;ve had various internet speeds along the way, but have been mostly disconnected for a majority of it. I just wanted to update quick to say that we have been out in the middle of nowhere in Laos. I&#8217;ll post again soon with some more updates!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetravelingcoder.com/2011/stray-tour/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vietnam</title>
		<link>http://www.thetravelingcoder.com/2011/vietnam</link>
		<comments>http://www.thetravelingcoder.com/2011/vietnam#comments</comments>
		<pubDate>Wed, 19 Oct 2011 08:21:14 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[Travel]]></category>
		<category><![CDATA[Mobile Internet]]></category>
		<category><![CDATA[travel]]></category>
		<category><![CDATA[Vietnam]]></category>

		<guid isPermaLink="false">http://www.thetravelingcoder.com/2011/vietnam</guid>
		<description><![CDATA[We&#8217;ve successfully finished 2 weeks here in Vietnam. It has been a great mix of culture, food, and of course, a little tech. After a bit of web surfing, and asking a lot of questions to the hostel staff in Hanoi, I was finally able to setup GPRS so we could access the intranet via &#8230; </p><p><a class="more-link block-button" href="http://www.thetravelingcoder.com/2011/vietnam">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve successfully finished 2 weeks here in Vietnam. It has been a great mix of culture, food, and of course, a little tech. After a bit of web surfing, and asking a lot of questions to the hostel staff in Hanoi, I was finally able to setup GPRS so we could access the intranet via Vietnam&#8217;s cell network (check back for a post on that soon). Of course what would be the fun of mobile internet if I couldn&#8217;t do anything on it? Well, I&#8217;ll tell you now that I could.</p>
<p><img src="http://www.thetravelingcoder.com/wp-content/uploads/2011/10/20111019-150538.jpg" alt="20111019-150538.jpg" class="aligncenter size-full" /></p>
<p>I did this speed test while on the overnight train from Hanoi to Sapa, the northern most region of Vietnam. You can see why I was quite surprised from the screenshot. The 3G speed sustained well until bedtime when we were far outside of Hanoi. It was perfect for Joel, G, and I. We were easily able to do work, read some websites, and send some emails. It even afforded me the ability to download some moderate size iPad app updates and some festive horror books for the October Season!</p>
<p>So, all-in-all we&#8217;ve had very good luck with connectivity while on the roadbeds in Vietnam. The setup was a little hairier than other countries, but only because most of the info wasn&#8217;t in English. More on that soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetravelingcoder.com/2011/vietnam/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Index Beyond Bounds!</title>
		<link>http://www.thetravelingcoder.com/2011/index-beyond-bounds</link>
		<comments>http://www.thetravelingcoder.com/2011/index-beyond-bounds#comments</comments>
		<pubDate>Fri, 30 Sep 2011 05:00:14 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[arc4random]]></category>
		<category><![CDATA[beyond bounds]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[NSMutableArray]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://www.thetravelingcoder.com/?p=149</guid>
		<description><![CDATA[I had a problem&#8230; I needed to randomize an NSMutableArray. Easy-peasy because I knew arc4random() gives good random numbers (better than srandom and you don&#8217;t have to seed). Here&#8217;s what I did: Background info: Every object (of type MyObject) in mutableArray has a position stored within it. What I did: Created a temp array the &#8230; </p><p><a class="more-link block-button" href="http://www.thetravelingcoder.com/2011/index-beyond-bounds">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I had a problem&#8230; I needed to randomize an NSMutableArray. Easy-peasy because I knew arc4random() gives good random numbers (better than srandom and you don&#8217;t have to seed). Here&#8217;s what I did:</p>
<p><strong>Background info:</strong><br />
Every object (of type MyObject) in mutableArray has a position stored within it.</p>
<p><em><strong>What I did:</strong></em></p>
<ul>
<li>Created a temp array the size of the NSMutableArray to store the positions of each object.</li>
<li>Created a temp array that houses all the objects currently in NSMutableArray so that they are still retained and stored at an index of my choosing.</li>
<li>Copied all objects into my temp_array</li>
<li>Recorded each object&#8217;s position using the temp_positions array</li>
<li>Removed all objects from my global mutableArray</li>
<li>Looped over the number of positions available</li>
<li>Randomly pulled an object from the temp_array, stored it&#8217;s new position, and placed back in the mutableArray</li>
</ul>
<pre class="brush: cpp; title: ; notranslate">

- (void) randomizeArrayObjects {

   if( [mutableArray count] &gt; 1){
      int index = 0;
      int count = [mutableArray count]; //the amount of objects needing to randomize
      int temp_positions[count]; //the positions storage

      for(int i=0;i&lt;count;i++) temp_positions[i] = 0; //initialize no matter what

      NSMutableArray *temp_array = [[NSMutableArray alloc] init];

      for(MyObject *obj in mutableArray){
         temp_positions[index] = [obj position];
         [temp_array addObject:obj];
         index++;
      }

      [mutableArray removeAllObjects];

      for(int i=0; i &lt; count; i++) {
         int random = ( arc4random()%[temp_array count] )-1;
         MyObject *obj = [temp_array objectAtIndex:random];
         [obj setPosition:temp_positions[i]];
         [mutableArray addObject:obj];
         [temp_array removeObjectAtIndex:random];
      }

      [temp_array release]; //it was alloc &amp; inited remember? Must release

   } //End of Array Count check
} //End of Method
</pre>
<p>At first glance, this code is cool. For some strange reason however, one my good buddies (who graciously offered to be a beta tester) was noticing a crash right at the start of the application. With his help I was able to pinpoint that it was this method causing the problem. I incorporated <a href="http://testflightapp.com/sdk/download/">TestFlightApp&#8217;s SDK</a> into my code and was able to get his stacktrace. SLICK. VERY SLICK (I&#8217;ll post soon about this awesome service).</p>
<p>When that was up and running I was able to see that he was receiving:</p>
<pre class="brush: plain; title: ; notranslate">*** -[NSMutableArray objectAtIndex:]: index 4294967295 beyond bounds [0 .. 1]</pre>
<p>I knew instantly it was this function since this build ONLY incorporated this new feature. So, what was the problem? Everything looks good&#8230;. Since the issue above had to do with index problems I turned to the one thing I *couldn&#8217;t control*. I started playing around with that only to find out that the function actually includes 0 to x-1. I got a nice cold hard slap of RTFM.</p>
<p>I was operating under the assumption that random numbers generated using arc4random()%x produce number from 0 to x. Do you see the difference? I&#8217;m referencing array indexes so I thought I needed to add the -1 to prevent going &#8216;out of bounds&#8217; for being too big. Well, that blew up in my face, it was now going out of bounds for being too small, 4294967295 to be exact &lt;laughs out loud&gt; !! (If that didn&#8217;t make sense to you think unsigned ints). I took off the -1 and the randomizer is working great. Gee, who would have thunk.</p>
<p>Here&#8217;s the method again, only this time it is successfully randomizing without blowing things up:</p>
<pre class="brush: cpp; title: ; notranslate">

- (void) randomizeArrayObjects {

   if( [mutableArray count] &gt; 1){
      int index = 0;
      int count = [mutableArray count]; // # of objects needing to randomize
      int temp_positions[count]; // positions storage

      for(int i=0;i&lt;count;i++) temp_positions[i] = 0; //initialize no matter what

      NSMutableArray *temp_array = [[NSMutableArray alloc] init];

      for(MyObject *obj in mutableArray){
         temp_positions[index] = [obj position];
         [temp_array addObject:obj];
         index++;
      }

      [mutableArray removeAllObjects];

      for(int i=0; i &lt; count; i++) {
         int random = arc4random()%[temp_array count];
         MyObject *obj = [temp_array objectAtIndex:random];
         [obj setPosition:temp_positions[i]];
         [mutableArray addObject:obj];
         [temp_array removeObjectAtIndex:random];
      }

      [temp_array release]; //it was alloc &amp; inited remember? Must release

   } //End of Array Count check
} //End of Method
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.thetravelingcoder.com/2011/index-beyond-bounds/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A New Guy in Town</title>
		<link>http://www.thetravelingcoder.com/2011/a-new-guy-in-town</link>
		<comments>http://www.thetravelingcoder.com/2011/a-new-guy-in-town#comments</comments>
		<pubDate>Mon, 26 Sep 2011 05:00:37 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Distribution]]></category>
		<category><![CDATA[Elementary OS]]></category>
		<category><![CDATA[Human Interface Guidelines]]></category>
		<category><![CDATA[Vala]]></category>

		<guid isPermaLink="false">http://www.thetravelingcoder.com/?p=116</guid>
		<description><![CDATA[&#160; Has Ubuntu been bothering you lately? Are you tired of Unity and want to go back to something a bit more familiar? Are you tired of a random mismatch of applications to suit your needs? I am, but that&#8217;s not to say I&#8217;m not an advocate for choice. Choice is a good thing. When &#8230; </p><p><a class="more-link block-button" href="http://www.thetravelingcoder.com/2011/a-new-guy-in-town">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/the-desktop.png" rel="shadowbox[sbpost-116];player=img;"><img class="aligncenter size-full wp-image-118" title="Elementary OS Desktop" src="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/the-desktop.png" alt="" width="518" height="324" /></a></p>
<p>Has Ubuntu been bothering you lately? Are you tired of Unity and want to go back to something a bit more familiar? Are you tired of a random mismatch of applications to suit your needs? I am, but that&#8217;s not to say I&#8217;m not an advocate for choice. Choice is a good thing. When Evolution doesn&#8217;t work right for me I can try Thunderbird, or Kmail, or Sypheed, or Postler.  What? You haven&#8217;t heard of Postler?</p>
<p>Oh, then you might not have heard of a way cool Linux distribution called &lt;a href=&#8221;http://www.elementaryos.org&#8221;&gt;ElementaryOS&lt;/a&gt;. I first heard about it earlier this year, prior to my Macbook purchase. At that time, it quickly replaced Ubuntu as my default OS on my Ideapad 450U. The main reason was that I was getting fed up with some of the changes in Ubuntu. I really didn&#8217;t want to start using Unity. I had tried it for a couple of weeks on my Netbook and I just couldn&#8217;t get into it. At that point I made the decision to not disgrace my  U450&#8242;s 14&#8243; screen with it.</p>
<p>So&#8230; I started looking elsewhere for my desktop needs and found Elementary. I installed it in my downtime and gave it a week. It was awesome. Then I found out something more intriguing. I found that I really, really, really enjoyed what these  guys were doing.</p>
<p>It&#8217;s very clearly stated on their developer site <a title="Tech By Developers For Developers" href="http://www.elementaryos.org/developers/tech">&#8220;Tech. By Developers, For Developers&#8221;</a>. The site contains documentation for all the tools used to build ElementaryOS. It has everything you&#8217;d need to start throwing in ingredients, baking, and popping out some home-cooked software. What&#8217;s the big deal you ask? Many other distributions do the same, and those are all open source frameworks whose documentation can be found on their respective project sites or with some Google searches. True, I guess I&#8217;m just a sucker for wrapping a clean front-end interface around a nice collection of information.</p>
<div><a href="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/tech_by_devs_for_devs.png" rel="shadowbox[sbpost-116];player=img;"><img class="aligncenter size-medium wp-image-117" title="Tech by Devs for Devs" src="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/tech_by_devs_for_devs-300x190.png" alt="" width="300" height="190" /></a></div>
<p>See? Isn&#8217;t it so nice and inviting? Clean, and organized?</p>
<p>But seriously, that&#8217;s not what I find TRULY unique about ElementaryOS. Let me show you what by quoting from this <a title="Where ElementaryOS fits in" href="http://www.elementaryos.org/journal/distros-platforms-and-where-we-fit">post</a>:</p>
<blockquote><p><strong>I assert that elementary OS is not a Linux distribution.</strong></p>
<p><strong></strong>Or at least that we don&#8217;t aim to be. No, we&#8217;d rather be a software platform. A unified computer operating system. That means having a commitment to a particular toolkit (GTK+) and supporting a preferred programming language (Vala). It means <a href="http://www.google.com/url?q=http%3A%2F%2Felementaryos.org%2Fdocs%2Fhuman-interface-guidelines&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGACvudOyB13XTN_sLNfHd7MppeSw">deciding how our apps will behave</a>. It means taking control and shaping the out-of-the-box experience as much as we possibly can by creating our own apps. It means creating an application development framework like Granite and other developer tools that are designed to help developers build apps specifically for our platform. We will absolutely not be just another compilation album.</p></blockquote>
<p>First of all, whoops, I was wrong. ElementaryOS is NOT a distribution. It is a software platform. This took a minute to sink in since I was still chuckling over the fact that Dan used &#8216;assert&#8217; in his statement. What can I say, QA is my day job. <img src='http://www.thetravelingcoder.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Sit and chew on that statement for a bit. I did. A &#8220;unified computer operating system&#8221; that finally has the right idea. One UI, one Language, Human Interface Guidelines, a mantra to only include applications developed specifically for ElementaryOS, and all wrapped in GTK+&#8217;s LGPL bow. The overwhelming idea of choice when it came to developing on Linux gave me heartburn. I had invested sparse amounts of time to PyGTK and some home brewed Vala utilities, but I never gave it a &#8216;real&#8217; go because I never knew if a framework or library would fall out of favor and would require me to rewrite. Not that these two languages would, but you get my drift. Options are good, but they can be overwhelming&#8230;</p>
<p>Community response seems to have shot up quite a bit since they started letting users register some time ago. Heck I can remember when the website just said &#8220;Jupiter&#8221; (the current release name) with a download link and torrent. To be honest, it seemed like it was just the other day when I saw barely a thousand registered users, and now there are over 4500 (possibly much more by the time you read this).  Must have been something they said&#8230;</p>
<p>Follow these guys. I have a feeling they are going to produce some pretty nice software.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetravelingcoder.com/2011/a-new-guy-in-town/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Indie Developer Information Gathering</title>
		<link>http://www.thetravelingcoder.com/2011/indie-dev-information-gathering</link>
		<comments>http://www.thetravelingcoder.com/2011/indie-dev-information-gathering#comments</comments>
		<pubDate>Sat, 24 Sep 2011 19:49:02 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[Independent Developer]]></category>
		<category><![CDATA[Indie Developer]]></category>
		<category><![CDATA[Operation Anthill]]></category>
		<category><![CDATA[patent trolls]]></category>
		<category><![CDATA[starting a business]]></category>

		<guid isPermaLink="false">http://www.thetravelingcoder.com/?p=115</guid>
		<description><![CDATA[I&#8217;m currently on a quest. I have been building an iOS game using the fabulous Cocos2d Game Engine, and I&#8217;m about 70% complete. What do I do next? It&#8217;s starting to seem that building the game is the easy part, because the more information I look at, the more I&#8217;m finding that it might be &#8230; </p><p><a class="more-link block-button" href="http://www.thetravelingcoder.com/2011/indie-dev-information-gathering">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently on a quest. I have been building an iOS game using the fabulous <a title="Cocos2d for iPhone" href="http://www.cocos2d-iphone.org/">Cocos2d Game Engine</a>, and I&#8217;m about 70% complete. What do I do next? It&#8217;s starting to seem that building the game is the easy part, because the more information I look at, the more I&#8217;m finding that it might be best to create a business to release my game under. So from there I started to search&#8230;</p>
<p>After about a month of searching I admit that I&#8217;m still only ankle deep, and from my inquiries I&#8217;m finding that the US is not a very startup friendly country. Selling services or products requires licenses. Each state has a different set of requirements for different types of services, and you have a variety different tax requirements dependent upon the state in which you are incorporating and the type of company you wish to form. Now, this is a bit of a double edge sword. The things that protect us as consumers hinder the small businesses that have a great potential to innovate. This is definitely not stopping me since I have the time, and some stability to take small steps.</p>
<p>My suggestion here is&#8230; do the same. You will need to do your research to find out what exactly is required from your state. I used to really get annoyed by statements like these, but once you start researching you&#8217;ll see why. Each state has their own separate ways (webs?) of getting you incorporated. At the very least you will need to do these 4 things:</p>
<ul>
<li>Get an <a title="IRS Employer Tax ID" href="http://www.irs.gov/businesses/small/article/0,,id=97860,00.html">Employer Tax ID</a> from the Federal Government (think of this as your business&#8217; social security number)</li>
<li>Register with you state as a business (usually referred to as <a title="Articles of Organization" href="http://en.wikipedia.org/wiki/Articles_of_Organization">Articles of Organization</a>)</li>
<li>Register your EID with your state to so that the state gets their piece of your pie</li>
<li>Open a bank account for your business funds</li>
</ul>
<p>Okay, that is definitely in the queue. Now, I want to do this right so I&#8217;ll probably need legal council and a potential CPA to make sure my i&#8217;s are dotted and my t&#8217;s crossed. This is relative to my situation because I&#8217;m going to be operating my business outside of the US for the first couple of months. For this I&#8217;m planning on setting aside $1k. It might be an over estimate, it might be an underestimate. We&#8217;ll see. I&#8217;ll definitely report back any relevant findings as they pop up.</p>
<p>At this point you might be asking why? Specifically, why do you need spend a lot money and time? You can easily sell your applications as a sole proprietor (individual). Well, yes, that&#8217;s true. My current motivation for setting up a Limited Liability Company (LLC) would be to shelter me from any personal liability  (i.e. lawsuits) that may, or may not, be <a title="Lodsys Patent Lawsuit" href="http://arstechnica.com/apple/news/2011/06/apple-files-motion-to-intervene-in-lodsys-patent-fray.ars">resolved</a> by the big guns at Apple or Google. It&#8217;s definitely worth the $1k and some grunt work to save me whatever is in my bank account for the next 20 years. Besides that, I&#8217;d like to start doing contractual work. If this is an area that is sustainable I might consider growing. Having my i&#8217;s dotted and t&#8217;s crossed when I have time to spare will enable me to focus more on that business.</p>
<p>In the end,  you never know what can happen with situations like the Lodsys patent dispute. It is certainly unnerving when those in your own <a title="Indie Developer Woes" href="http://www.cocos2d-iphone.org/forum/topic/20284/page/2">development community</a> are sent cease and desist letters. I won&#8217;t even start on this issue, because patent trolling is a topic that I (as well as most other software developers) can rant for days on end. For those worried or possibly bitten by this it seems there <a title="Hope for Indies" href="http://appsterdamlegalfoundation.org/">may be hope</a> for the indie developer.</p>
<p>Long story short. I&#8217;m starting push forward by getting incorporated. If you are a first time indie developer like me and your first app is 75% complete, I would suggest taking some time just to investigate.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetravelingcoder.com/2011/indie-dev-information-gathering/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Break testing with Broken Images</title>
		<link>http://www.thetravelingcoder.com/2011/break-testing-with-broken-images</link>
		<comments>http://www.thetravelingcoder.com/2011/break-testing-with-broken-images#comments</comments>
		<pubDate>Thu, 22 Sep 2011 13:36:22 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Quality Assurance Testing]]></category>
		<category><![CDATA[break testing]]></category>
		<category><![CDATA[broken image]]></category>
		<category><![CDATA[dd]]></category>
		<category><![CDATA[quality assurance]]></category>

		<guid isPermaLink="false">http://www.thetravelingcoder.com/?p=108</guid>
		<description><![CDATA[Break testing is an often underutilized technique of testing, but it is vital for the performance and security of a product. Long story short, it should be a part of every QA testers routine. Recently, I&#8217;ve found some new bugs with a couple of web applications I currently test just by break testing. When a &#8230; </p><p><a class="more-link block-button" href="http://www.thetravelingcoder.com/2011/break-testing-with-broken-images">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Break testing is an often underutilized technique of testing, but it is vital for the performance and security of a product. Long story short, it should be a part of every QA testers routine.</p>
<p>Recently, I&#8217;ve found some new bugs with a couple of web applications I currently test just by break testing. When a broken image was uploaded, the site gave strange behavior. For instance, clicking a broken image icon resulted in a SQL exception. Simple things like this can have worse consequences that expose errors to users, and vulnerabilities to hackers. You ALWAYS want to avoid this!</p>
<p>So, lets start small. Let&#8217;s add a broken image to your test arsenal! The fastest way to do this (if you are on a Mac or Linux box) is to use the command line tool dd. If you were unaware of dd, it is a &#8220;convert and copy a file&#8221; tool. We can use this tool to grab random numbers and output them into a file. Open up the terminal, type this in, and hit enter:</p>
<pre class="brush: bash; title: ; notranslate">  dd if=/dev/urandom of=~/Desktop/broken_image.jpg bs=2k count=1  </pre>
<p>This command basically says use /dev/urandom (a random number generator) as your <em><strong>&#8216;in-file&#8217;</strong></em>, and <em>&#8220;~/Desktop/broken_image.jpg&#8221;</em> as your <em><strong>&#8216;out-file&#8217;</strong></em>. The &#8220;<em>~/Desktop/broken_image.jpg&#8221;</em> means the dd command will place a file named <em>&#8220;broken_image.jpg&#8221;</em> on your desktop. The <strong>&#8216;<em>bs=2k&#8217;</em></strong> portion means you will use a <em>&#8216;byte size&#8217;</em> of 2000, and the <em><strong>&#8216;count=1&#8242;</strong></em> means you will write this amount once. After hitting enter, you should have a screen similar to this:</p>
<p><a href="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/ttc_broken_image-1.png" rel="shadowbox[sbpost-108];player=img;"><img class="aligncenter size-medium wp-image-111" title="Terminal output for the dd command" src="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/ttc_broken_image-1-300x208.png" alt="" width="300" height="208" /></a></p>
<p>And now you have a &#8216;broken_image.jpg&#8217; on your desktop that you can test with! Happy Break Testing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetravelingcoder.com/2011/break-testing-with-broken-images/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blackberry Simulator Problems with Fusion 4</title>
		<link>http://www.thetravelingcoder.com/2011/blackberry-simulator-problems-with-fusion-4</link>
		<comments>http://www.thetravelingcoder.com/2011/blackberry-simulator-problems-with-fusion-4#comments</comments>
		<pubDate>Wed, 21 Sep 2011 14:58:44 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Fusion 4]]></category>
		<category><![CDATA[Playbook simulator]]></category>

		<guid isPermaLink="false">http://www.thetravelingcoder.com/?p=94</guid>
		<description><![CDATA[If you are having problems getting the Blackberry Simulator to run, mainly if your screen looks similar this for hours on end: Or you get a message like this: Then you might have a permissions problem. First, close out VMware Fusion 4, then locate and click on the folder where you installed your Blackberry Simulator. &#8230; </p><p><a class="more-link block-button" href="http://www.thetravelingcoder.com/2011/blackberry-simulator-problems-with-fusion-4">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>If you are having problems getting the Blackberry Simulator to run, mainly if your screen looks similar this for hours on end:</p>
<p><a href="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/similar_to_this.png" rel="shadowbox[sbpost-94];player=img;"><img class="aligncenter size-medium wp-image-98" title="similar_to_this" src="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/similar_to_this-300x204.png" alt="QNX bootup screen for RIM Playbook" width="300" height="204" /></a>Or you get a message like this:</p>
<p><a href="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/fusion_mishap.png" rel="shadowbox[sbpost-94];player=img;"><img class="aligncenter size-medium wp-image-97" title="Upgrade VMX file" src="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/fusion_mishap-300x246.png" alt="" width="300" height="246" /></a></p>
<p>Then you might have a permissions problem. First, close out VMware Fusion 4, then locate and click on the folder where you installed your Blackberry Simulator. Next, with the folder selected, go to the Finder&#8217;s File -&gt; Get Info (or use shortcut: command-i). You should see a screen that has a bunch of expander options, open up the Sharing &amp; Permissions section:</p>
<p><a href="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/get_info_folder.png" rel="shadowbox[sbpost-94];player=img;"><img class="aligncenter size-medium wp-image-99" title="get_info_folder" src="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/get_info_folder-224x300.png" alt="" width="224" height="300" /></a>Change the privileges for your username, and the staff to be &#8220;Read &amp; Write&#8221;, and then click on the lock:</p>
<p><a href="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/lock.png" rel="shadowbox[sbpost-94];player=img;"><img class="aligncenter" title="Get Info Lock" src="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/lock-224x300.png" alt="" width="224" height="300" /></a>Enter your password, and then use the settings button to &#8220;Apply to enclosed items&#8221;:</p>
<p><a href="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/select_apply.png" rel="shadowbox[sbpost-94];player=img;"><img class="aligncenter size-medium wp-image-106" title="Select apply to enclosed screenshot" src="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/select_apply-198x300.png" alt="" width="198" height="300" /></a></p>
<p>Hit okay, and then startup VMware Fusion 4 again, and kick off the simulator. You should now have something similar to this:</p>
<p style="text-align: left;"><a href="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/BlackBerry-PlayBook-Simulator.png" rel="shadowbox[sbpost-94];player=img;"><img class="aligncenter size-full wp-image-103" title="BlackBerry PlayBook Simulator" src="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/BlackBerry-PlayBook-Simulator.png" alt="" width="599" height="378" /></a>Congrats, you can now start messing around with the Playbook simulator on your Mac!</p>
<p style="text-align: left;"><strong>Tip #1:</strong> the password is &#8216;playbook&#8217; (all lowercase without the quotes)</p>
<p style="text-align: left;"><strong>Tip #2:</strong> if you&#8217;d like to put the device in portrait mode, place your mouse in the bottom right hand corner, then click and drag to the center of the simulator. You can do the same to restore to landscape.</p>
<p style="text-align: left;"><strong>Tip #3:</strong> Swiping along the border is how you move around on the Playbook&#8217;s OS. Have fun!</p>
<p>If you haven&#8217;t gotten the simulator installed, first make sure you have Fusion 4 (you can find that <a title="VMware fusion" href="http://www.vmware.com/products/fusion/overview.html">here</a>), and then head on over to the RIM Site to grab the simulator <a title="RIM Tablet site" href="http://us.blackberry.com/developers/tablet/webworks.jsp">here</a> (you&#8217;ll need to register for access to the SDK/Simulator). Then you should be on your way to seeing one of the ugliest installer screens I&#8217;ve seen lately:</p>
<p><a href="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/quite-possibly-one-of-the-ugliest-install-programs-ever.png" rel="shadowbox[sbpost-94];player=img;"><img class="aligncenter size-medium wp-image-95" title="quite possibly one of the ugliest install programs ever" src="http://www.thetravelingcoder.com/wp-content/uploads/2011/09/quite-possibly-one-of-the-ugliest-install-programs-ever-300x224.png" alt="" width="300" height="224" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetravelingcoder.com/2011/blackberry-simulator-problems-with-fusion-4/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.thetravelingcoder.com/feed ) in 1.76685 seconds, on Feb 22nd, 2012 at 9:00 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 22nd, 2012 at 10:00 pm UTC -->
