<?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>Doug Melton</title>
	<atom:link href="http://dougmelton.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dougmelton.com</link>
	<description>Android, Live Music, Circuits, Life</description>
	<lastBuildDate>Sat, 29 Sep 2012 04:12:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Hey Samsung: It&#8217;s the Software</title>
		<link>http://dougmelton.com/2012/07/hey-samsung-its-the-software/</link>
		<comments>http://dougmelton.com/2012/07/hey-samsung-its-the-software/#comments</comments>
		<pubDate>Sat, 07 Jul 2012 21:44:51 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[smartphone]]></category>

		<guid isPermaLink="false">http://dougmelton.com/?p=1105</guid>
		<description><![CDATA[Samsung is an amazing hardware company. My TV, refrigerator, electric razor and dvd player are all made by Samsung. They also make two of my favorite smartphones: the Nexus S, and the Galaxy Nexus. They also make 3 of my &#8230; <a href="http://dougmelton.com/2012/07/hey-samsung-its-the-software/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Samsung is an amazing hardware company. My TV, refrigerator, electric razor and dvd player are all made by Samsung. They also make two of my favorite smartphones: the Nexus S, and the Galaxy Nexus. They also make 3 of my least favorite devices: The Galaxy S2, Galaxy S3, and Epic 4G. But what separates my favorite phones from my least favorite phones is the <strong>software</strong>.</p>
<h2>Epic 4G</h2>
<p>This phone has great hardware. It&#8217;s light, comfortable, built quite solidly, and has slide out keyboard with a very nice feel to it. But it&#8217;s the software that makes this <strong>my least favorite phone</strong>. Aside from being glacially slow with Android OS updates (6-9 months behind), these updates failed to fix my biggest complaints. They made some awful UX decisions that are just unacceptable. The worst may be their decision to decide how I use my battery: when the battery reaches 20%, they shut down the camera and video camera. This does not help me conserve battery, this just makes my (already short) battery life even shorter. I&#8217;d like to decide how I use the last 20% of my battery life. To me, taking pictures of my daughter is more important to me than making calls.</p>
<h2>Galaxy Nexus</h2>
<p>Like I hinted at, this is <strong>the best phone I have ever owned</strong>. Both the hardware and software blow away any competitor. This phone has cutting edge hardware AND cutting edge software. What&#8217;s the difference? <em>Samsung did not make the software</em>. The best phone ever made had hardware made by a great hardware engineering company (Samsung) and software made by a great software engineering company (Google).</p>
<h2>Galaxy S2</h2>
<p>This is a beautiful phone, with a beautiful screen, fast CPU, etc. etc. Again, cutting edge hardware (or, was cutting edge when it was released). In fact, its specs are very similar to the Galaxy Nexus. So what makes the Galaxy Nexus the best phone ever made, and the Galaxy S2 one of my least favorite phones? Not to beat you over the head, but <em>it&#8217;s the software</em>.</p>
<h2>It&#8217;s the Software</h2>
<p>As an Android developer, the second most time consuming part of my job (after internationalization) is dealing with software problems created by hardware manufacturers (not just Samsung; I&#8217;m pointing the finger at HTC, LG, and so on, too).</p>
<p>So, <strong>why does Andie Graph not work on the Samsung Galaxy S2</strong>? <em>It&#8217;s the software</em>. Samsung&#8217;s (and HTC&#8217;s) OS firmware is not compatible with every app, and Andie Graph is one of those. If you want to run Andie Graph on the Samsung Galaxy S2, it will happily run on non-Samsung firmware (try CyanogenMod, or an AOSP-based ROM).</p>
<p><strong>Why does Andie Graph not work on the Samsung Galaxy S3</strong>? <em>It&#8217;s the software</em>.</p>
<h2>Stop it!</h2>
<p>Here is my plea to hardware companies: please concentrate on what you do best. Please make your great hardware even more great! Please make it fast, light, beautiful, long-lasting, amazing. Distinguish yourself by <em>making your hardware the best</em>. Leave the software design to the software engineers.</p>
<p style="font-size: 80%">*By the way, Apple falls into the same category: they make great hardware (even, the best hardware). But other than OSX, they don&#8217;t make a single piece of software that I like to use.</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmelton.com/2012/07/hey-samsung-its-the-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Epic battle: ASUS WL-500gP V2 vs. me</title>
		<link>http://dougmelton.com/2011/10/epic-battle-asus-wl-500gp-v2-vs-me/</link>
		<comments>http://dougmelton.com/2011/10/epic-battle-asus-wl-500gp-v2-vs-me/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 18:01:06 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ddwrt]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://dougmelton.com/?p=1074</guid>
		<description><![CDATA[So I have this Asus WL-500gP V2 router. It&#8217;s aging (802.11g only) but it&#8217;s nicely specced with lots of RAM (32MB) and ROM (8MB) so it&#8217;s nicely suited to open-source firmware. I have been using it for a couple years &#8230; <a href="http://dougmelton.com/2011/10/epic-battle-asus-wl-500gp-v2-vs-me/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>So I have this Asus WL-500gP V2 router. It&#8217;s aging (802.11g only) but it&#8217;s nicely specced with lots of RAM (32MB) and ROM (8MB) so it&#8217;s nicely suited to open-source firmware. I have been using it for a couple years with <a href="http://tomatovpn.keithmoyer.com/">TomatoVPN</a>, which is great and probably the easiest path to running an <a>OpenVPN</a> server on your home network.</p>
<p><a href="http://www.polarcloud.com/tomato">Tomato</a> is great because it&#8217;s simple and has a clean, well-organized interface, while still offering a lot of semi-advanced features (like bandwidth monitoring) that you don&#8217;t get on the original firmware. TomatoVPN is a branch that adds OpenVPN server support to the mix.</p>
<p>But the problem with TomatoVPN is that it&#8217;s maintained by one guy, and hasn&#8217;t been updated in almost 2 years. So I decided to look for something better (or at least newer) and found <a href="http://tomatousb.org/">TomatoUSB</a>. I used Tomato&#8217;s own &#8220;upgrade firmware&#8221; to switch to this new firmware, and suffice it to say, something went wrong and <strong>I bricked my router</strong>. It&#8217;s not TomatoUSB&#8217;s fault, <em>if I were recommending open source router firmware to someone who doesn&#8217;t want to spend a lot of time at it, I would still recommend <a href="http://tomatousb.org/">TomatoUSB</a></em>.</p>
<p>But I wanted to use this opportunity as a learning experience, and decided to go for <a href="http://dd-wrt.com/">DD-WRT</a>. The number one reason I chose this was because of the huge community and expansive documentation behind it. I was <em>sure</em> that this community would help me un-brick the router. After all, there&#8217;s help <a href="http://www.dd-wrt.com/wiki/index.php/WL500G_Premium_v2">here</a>, <a href="http://www.dd-wrt.com/wiki/index.php/All_Asus_WL-500xx_series_routers">here</a>, <a href="http://www.dd-wrt.com/wiki/index.php/Reset_And_Reboot">here</a>, <a href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=54373&amp;sid=bb405d2ed3963a1dd76b6a7f38045c35">here</a>, <a href="http://gorcunov.blogspot.com/2009/01/restoring-asus-wl-500gpv2-router.html">here</a>.</p>
<p>Well, here comes the epic battle. The instructions given on most of the forums on how to un-brick the router <em>mostly</em> worked, except for a couple very key elements. So to summarize the long battle, here is what I did:</p>
<ol>
<li>Went into <strong>bootloader mode</strong>:
<ol>
<li>Unplugged the router&#8217;s power</li>
<li>While holding down the <strong>black</strong> &#8221;restore&#8221; button, plugged it back in, and kept holding the black button until the orange power light started to blink slowly.</li>
</ol>
</li>
<li>Made sure I could <strong>ping the router</strong>:
<ol>
<li>Disabled all network connections on my computer (like WiFi) except the one I used to connect to the router</li>
<li><a href="http://windows.microsoft.com/en-US/windows-vista/Turn-Windows-Firewall-on-or-off">Disabled windows firewall</a></li>
<li>Manually updated the TCP/IP (v4) settings on my computer to match the subnet of (but a different address than) my router. <strong>NOTE:</strong> none of the HOWTOs mention this but I had previously set my subnet away from the default. <strong>This is apparently maintained in bootloader mode</strong>. So using (192.168.1.2) didn&#8217;t work for me. I had to set my <em>ip address</em> to (10.1.1.2). I set the <em>subnet mask</em> to (255.255.255.0) and set the <em>gateway address</em> and <em>DNS address</em> to my router&#8217;s IP address (10.1.1.1).</li>
<li>Plugged an ethernet cable from my computer to one of the LAN ports on the router.</li>
<li>Pinged my router from the command prompt to make sure the networking was setup correctly:<br />
<code>ping 10.1.1.1</code></li>
</ol>
</li>
<li>Used the ASUS Firmware Restoration tool (on my Windows 7 box) to <strong>flash the original firmware</strong>:
<ol>
<li>Downloaded from ASUS <a href="http://support.asus.com/Download.aspx?SLanguage=en&amp;m=WL-500gP+V2&amp;p=11&amp;s=2">here</a> (I have no idea why it&#8217;s called UT_Printer_4077)</li>
<li>There are 2 utilities that get installed, the one I used looks like this:<a href="http://dougmelton.com/wp-content/uploads/2011/10/Asus-firmware-restoration-utility-2.jpeg"><img src="http://dougmelton.com/wp-content/uploads/2011/10/Asus-firmware-restoration-utility-2-300x150.jpg" alt="" title="Asus-firmware-restoration-utility-2" width="300" height="150" class="alignnone size-medium wp-image-1082" /></a></li>
<li>Flashed the ASUS firmware (named WL500gpv2_3.0.4.4_TW.trx)</li>
<li>Waited a while, and eventually the orange power light turned on solid, and I was able to access it, still at the non-standard IP address that I had set it to before, 10.1.1.1</li>
</ol>
</li>
<li><strong>Cleared out the NVRAM</strong>
<ol>
<li><em>While powered on</em>, I held the BLACK restore button on the back of the router for 10 seconds or so, until the power light started blinking again.</li>
<li>Unplugged the router&#8217;s power, waited a few seconds, and plugged it back in</li>
<li>At this point, the IP address was restored to default, 192.168.1.1, so I had to update my computer&#8217;s TCP/IP (v4) settings again. I changed my IP address to 192.168.1.2, and changed gateway and DNS addresses to 192.168.1.1</li>
</ol>
</li>
<li>Went back into <strong>bootloader mode</strong></li>
<li>Used the ASUS Firmware restoration tool to <strong>flash DD-WRT</strong>
<ol>
<li>Downloaded the <a href="http://dd-wrt.com/routerdb/de/download/Asus/WL500G%20Premium/v2/dd-wrt.v24_std_generic.bin/3751">standard generic</a> firmware appropriate to my router by searching for &#8220;wl500gpv2&#8243; on <a href="http://dd-wrt.com/site/support/router-database">this page</a></li>
<li>At this point, I could have installed any other firmware if I wanted, like <a href="http://tomatousb.org/download">TomatoUSB</a> or the <a href="http://dd-wrt.com/routerdb/de/download/Asus/WL500G%20Premium/v2/dd-wrt.v24_vpn_generic.bin/3753">VPN Generic</a> version of DD-WRT</li>
<li>Flashed the DD-WRT firmware (named dd-wrt.v24_std_generic.bin)</li>
<li>Waited a while, and eventually the orange power light turned on solid, and I was able to access it via my browser at 192.168.1.1. Done!</li>
</ol>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://dougmelton.com/2011/10/epic-battle-asus-wl-500gp-v2-vs-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Phone Number Formatter</title>
		<link>http://dougmelton.com/2011/05/phone-number-formatter/</link>
		<comments>http://dougmelton.com/2011/05/phone-number-formatter/#comments</comments>
		<pubDate>Mon, 23 May 2011 20:53:12 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[JAVA]]></category>

		<guid isPermaLink="false">http://www.supware.net/?p=966</guid>
		<description><![CDATA[When writing apps, you often re-use your code, improving it along the way. One function I&#8217;ve used in at least 4 apps (iDialer, web, Phone.com Android app, and another unannounced app) and implemented in 3 languages (Java, Javascript, C) is &#8230; <a href="http://dougmelton.com/2011/05/phone-number-formatter/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>When writing apps, you often re-use your code, improving it along the way. One function I&#8217;ve used in at least 4 apps (iDialer, web, Phone.com Android app, and another unannounced app) and implemented in 3 languages (Java, Javascript, C) is a <strong>phone number formatter</strong>.</p>
<p>My requirements for this seemingly simple function:</p>
<ol>
<li>It must use an easy to configure &#8220;dial plan&#8221; for formatting.</li>
<li>It must be able to format a &#8220;partial&#8221; phone number, i.e. one you&#8217;re typing in right now, or a complete phone number</li>
<li>It must be able to emulate the behavior of the very excellent iPhone dialer.</li>
</ol>
<h2>Javascript:</h2>
<p>To see an older iteration of the function in Javascript, look at my <a href="http://www.supware.net/iDialer/config/">iDialer config page</a>, click on the dialplan &#8220;advanced&#8221; link.</p>
<h2>C:</h2>
<p>For an even older iteration, look at my <a href="http://code.google.com/p/idialer-wm/source/browse/trunk/iDialer/iDialer.cpp#1613">iDialer source code</a>.</p>
<h2>Java:</h2>
<p>Here is my most current solution, in JAVA:</p>
<pre class="brush: java; collapse: true; light: false; title: ; toolbar: true; notranslate">

	/**
	 * A semicolon separated list of formatting strings to format. &quot;N&quot;
	 * represents any single digit. [1-9()-] represents an exact digit. The
	 * underscore &quot;_&quot; represents a SPACE (not an underscore). These rules will
	 * be followed sequentially until one is matched.
	 */
	private static final String DIALPLAN = &quot;+1_NNN_NNN_NNNN;1_(NNN)_NNN-NNNN;NNN-NNNN;(NNN)_NNN-NNNN&quot;;

	/**
	 * Formats a phone number according to the rules defined in
	 * {@link #DIALPLAN}.
	 * 
	 * @param number
	 *            the non-formatted number
	 * @param isPartialOk
	 *            true if the number passed in &quot;number&quot; are just the first few
	 *            digits of the formatted number. This might be the case on a
	 *            dialpad where the number is being inputted right now
	 * @return
	 */
	public static String formatDialplanNumber(String number, boolean isPartialOk) {
		StringBuilder output = new StringBuilder(32);

		/*
		 * k = index of &quot;number&quot; that we're trying to match d = index of
		 * &quot;DIALPLAN&quot; that we're trying to match cd = character of &quot;DIALPLAN&quot; at
		 * index &quot;d&quot; cn = character of &quot;number&quot; at index &quot;k&quot; ln = length of
		 * &quot;number&quot; match = does it match so far
		 */
		int k = 0;
		boolean match = true;
		int ln = number.length();
		for (int d = 0; d &lt; DIALPLAN.length(); d++) {

			char cd = DIALPLAN.charAt(d);
			char cn = k &lt; ln ? number.charAt(k) : 0;

			// move on to the next rule
			if (cd == ';') {
				if (match &amp;&amp; k == ln)
					break;

				k = 0;
				match = true;
				if (output.length() &gt; 0)
					output.delete(0, output.length());
				continue;
			}

			if (!match)
				continue;

			// next character in &quot;number&quot; must match exactly
			if (cd == '+' || cd == '#' || cd == '*' || cd &gt;= '0' &amp;&amp; cd &lt;= '9') {
				if (k &lt; ln &amp;&amp; cn == cd) {
					output.append(cd);
					k++;
				} else {
					match = false;
				}
			}

			// next character in &quot;number&quot; must be a digit
			else if (cd == 'N') {
				if (k == ln) {
					if (isPartialOk)
						output.append(' ');
					else
						match = false;
				} else if (cn &gt;= '0' &amp;&amp; cn &lt;= '9') {
					output.append(cn);
					k++;
				} else {
					match = false;
				}
			}

			// just add space to the output
			else if (cd == '_') {
				output.append(' ');
			}

			// just add the literal character to the output
			else if (cd == '(' || cd == ')' || cd == '-' || cd == '.') {
				output.append(cd);
			}
		}

		if (!match || k != ln) {
			// Didn't match anything... just rely on built-in phone number
			// formatter
			return PhoneNumberUtils.formatNumber(number);
		}

		// Remove non-numbers from the end of the string
		int end = output.length();

		int i = output.indexOf(&quot;( &quot;);
		if (i &gt; -1)
			end = i;

		while (end &gt; 0
				&amp;&amp; (output.charAt(end - 1) == ' ' || output.charAt(end - 1) == '-')) {
			end--;
		}

		String formatted = output.substring(0, end);
		return formatted;
	}

</pre>
]]></content:encoded>
			<wfw:commentRss>http://dougmelton.com/2011/05/phone-number-formatter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Android TI-8X Emulator lives on: Andie Graph</title>
		<link>http://dougmelton.com/2011/04/the-android-ti-8x-emulator-lives-on-andie-graph/</link>
		<comments>http://dougmelton.com/2011/04/the-android-ti-8x-emulator-lives-on-andie-graph/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 00:29:05 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.supware.net/?p=945</guid>
		<description><![CDATA[Or: why this app remains free. Free as in Free Beer, and Free as in ROM Free. So I did talk to Peter Balyta, Director of Product Strategy from Texas Instruments, about the Andy-8X apps. The bottom line is that &#8230; <a href="http://dougmelton.com/2011/04/the-android-ti-8x-emulator-lives-on-andie-graph/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Or: why this app remains free. Free as in Free Beer, and Free as in ROM Free.</p>
<p>So I did talk to Peter Balyta, Director of Product Strategy from Texas Instruments, about the Andy-8X apps. The bottom line is that they want money &#8212; perhaps rightfully so, considering they wrote the 15-or-so year old code that&#8217;s embedded inside the app. The problem is, so do Google (30%), the author of AlmostTI (30%), and I. Splitting profit 4 ways (especially when it&#8217;s weighted towards those two), when I would have to do most of the maintenance, just didn&#8217;t work for me.</p>
<p>The alternative of course is to remove the embedded ROM code (to appease TI), and keep it free (to appease the author of AlmostTI and Google). This results in a much less user friendly app (IMHO) since you&#8217;re stuck downloading your own ROM. But hopefully I&#8217;ve reduced your burden as much as possible.</p>
<p>Meanwhile, enjoy this <strong>free</strong> app!</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmelton.com/2011/04/the-android-ti-8x-emulator-lives-on-andie-graph/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Story of the TI-8X Emulators</title>
		<link>http://dougmelton.com/2011/03/the-story-of-the-ti-8x-emulators/</link>
		<comments>http://dougmelton.com/2011/03/the-story-of-the-ti-8x-emulators/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 06:31:20 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.supware.net/?p=908</guid>
		<description><![CDATA[Back on January 16, 2011, I released a series of apps into the wilds of the Android Market that were met with much fanfare, racking up almost 0.25M downloads in less than 2 months. These of course are my TI-83, &#8230; <a href="http://dougmelton.com/2011/03/the-story-of-the-ti-8x-emulators/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Back on January 16, 2011, I released a series of apps into the wilds of the <a href="http://supware.net/download">Android Market</a> that were met with much fanfare, racking up almost 0.25M downloads in less than 2 months. These of course are my TI-83, TI-85, and TI-86 emulators.</p>
<p>The response for these apps has been way beyond what I expected. I&#8217;ve received many, many thank you&#8217;s from teachers, students, scientists, fanbois. The apps have some of the highest ratings on the entire market. They were consistently on the top downloads on my favorite non-official market site, <a href="http://www.appbrain.com/">AppBrain</a> (until they got yanked&#8211;more on that in a moment).</p>
<p>These emulators were first released with the obvious names for such apps: &#8220;TI-83&#8243;, &#8220;TI-85&#8243;, and &#8220;TI-86&#8243;. Well, a few days later, on January 21st (one day after the birth of my daughter, incidentally), I got an email from TI about these:</p>
<blockquote><p>&#8230;You are free to make applications that emulate Texas Instruments products and you are free to compare them to Texas Instruments products but it is our position that naming your products TI-XX, where XX is the Texas Instruments product model, is an infringement on Texas Instruments trademarks&#8230;.</p></blockquote>
<p>So I understood that to mean that they were cool with my emulators so long as I changed the names. Hence why they were renamed to a less obvious, &#8220;Andy-83&#8243;, &#8220;Andy-85&#8243;, and &#8220;Andy-86&#8243;. Not too big a deal. Not bad, a confirmation from TI that these emulators were A-OK in their book.</p>
<p>Well another bit of time goes by and I get another email, this one with not such good news:</p>
<blockquote><p>&#8230;Distribution of TI copyrighted code <strong>without our written permission</strong> is an infringement of our intellectual property.  It was not until we had completed our technical review that became aware that your emulations included TI copyrighted code&#8230;</p></blockquote>
<p>But not terrible news either, I thought. I could just get written permission to continue these apps. I immediately responded asking for written permission. I received no response except for another email a week later asking again for me to take the apps down. So I had to comply. This is why the apps are no longer on the market.</p>
<p>But they will be back, for sure, in some form. I&#8217;ve received news that TI is still considering my request to license these apps specifically. Cross your fingers for that to go through! If it doesn&#8217;t, though, I&#8217;m already at work on another series of emulators without the aforementioned copyrighted ROM code inside. These will work just the same but will require everybody to extract the ROM from his calculator; not the easiest thing to do. <a href="http://www.ticalc.org/programming/emulators/romdump.html">Here&#8217;s a writeup</a> from my favorite TI calc site on how to do it.</p>
<p>Meanwhile, I&#8217;m still working on new features for these apps. I added a TI-82 emulator. I added a commonly requested feature: &#8220;Wake Lock &#8211; keep phone screen on until calculator goes to sleep&#8221;. I started working on a pro version that would allow you to supply your own roms (with support for any of the 4 models). So you can look forward to all of that in the near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmelton.com/2011/03/the-story-of-the-ti-8x-emulators/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What&#8217;s up with WP7?</title>
		<link>http://dougmelton.com/2010/11/whats-up-with-wp7/</link>
		<comments>http://dougmelton.com/2010/11/whats-up-with-wp7/#comments</comments>
		<pubDate>Sun, 07 Nov 2010 03:20:21 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.supware.net/?p=808</guid>
		<description><![CDATA[I was recently asked why I moved to Android development from Windows Mobile. Well, I feel like MS slapped us in the face when they announced WP7. No access to the SD card? No 3rd party apps? No UI replacements? &#8230; <a href="http://dougmelton.com/2010/11/whats-up-with-wp7/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I was recently asked why I moved to Android development from Windows Mobile.</p>
<p>Well, I feel like MS slapped us in the face when they announced WP7. No access to the SD card? No 3rd party apps? No UI replacements? Sure the UI is new, but it won&#8217;t take long before it feels outdated too. I not a big fan of the Metro UI look either. No compatibility with older apps, like all the ones I&#8217;ve written? No background threads? No copy/paste? You have to use Zune? (really?) The fact that you have to use iTunes is the #1 worst problem with the iPhone. So WM6.5 is dying and WM7 is completely different and completely closed (and completely like iPhone). Odd as it sounds, to me Android feels like the next (giant) step up from WM6.5, whereas WP7 is at best the next step up from iPhone.</p>
<p>As far as my existing WM apps go, none of them really translate usefully to WP7. GreenButton will be totally irrelevant on WP7, as will iContact and Avatar. iDialer <em>might</em> not be, if the Windows Marketplace allows it.</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmelton.com/2010/11/whats-up-with-wp7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Antennagate</title>
		<link>http://dougmelton.com/2010/07/antennagate/</link>
		<comments>http://dougmelton.com/2010/07/antennagate/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 18:40:45 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.supware.net/?p=754</guid>
		<description><![CDATA[Certainly you&#8217;ve heard of &#8220;Antennagate&#8221; by now. It&#8217;s all the hype surrounding the fatal flaw in the iPhone 4&#8242;s genius new antenna design that causes it to lose quite a bit of signal strength when you hold the phone. I haven&#8217;t tried &#8230; <a href="http://dougmelton.com/2010/07/antennagate/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Certainly you&#8217;ve heard of &#8220;Antennagate&#8221; by now. It&#8217;s all the hype surrounding the fatal flaw in the iPhone 4&#8242;s genius new antenna design that causes it to lose quite a bit of signal strength when you <em>hold the phone</em>. I haven&#8217;t tried it myself, but I have tried holding a couple of my other phones in a way that would consistently make them lose signal strength.</p>
<p>Interesting fact #1: No matter what I do, I cannot get the iPhone 3GS to lose signal strenth. Even if I completely surround the phone with both of my hands.</p>
<p>Interesting fact #2: I can cause my HTC EVO 4G to lose signal strength consistently, by holding it in a way that I would never actually hold it. Holding it in this position also disables the camera. Good thing there&#8217;s a backup camera up front <img src='http://dougmelton.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://dougmelton.com/wp-content/uploads/2010/07/disabled-camera.jpg"><img class="alignnone size-full wp-image-756" title="disabled-camera" src="http://dougmelton.com/wp-content/uploads/2010/07/disabled-camera.jpg" alt="" width="400" height="267" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dougmelton.com/2010/07/antennagate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome!</title>
		<link>http://dougmelton.com/2010/07/welcome-2/</link>
		<comments>http://dougmelton.com/2010/07/welcome-2/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 08:42:54 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Phone.com]]></category>

		<guid isPermaLink="false">http://www.supware.net/?p=744</guid>
		<description><![CDATA[If you&#8217;ve visited my site before, you may recognize a major overhaul. While I like to think that my site was clean and simple and easy enough to navigate before, I know that it was also a little lacking in &#8230; <a href="http://dougmelton.com/2010/07/welcome-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;ve visited my site before, you may recognize a major overhaul. While I like to think that my site was clean and simple and easy enough to navigate before, I know that it was also a little lacking in the style department. I hope this new look adds some style and improves your ability to browse my apps.</p>
<p>But I also have some other reasons for this overhaul: I want a site that can let me post more than just 140 characters. You&#8217;ll notice my Tweets show up in here too, but occasionally I&#8217;d like to share a product review, or an interesting code snippet, the result of a weekend&#8217;s (or more) work. I want to post pictures, code, videos. I want an <a href="/feed">RSS feed</a>, so those who are interested can follow along.</p>
<p>My day job is Product &amp; Technical Manager of Mobile Products at <a href="http://www.phone.com">Phone.com</a> (a mouthful, right?). I&#8217;m lucky enough to be pursuing the dream I&#8217;ve had since before the mobile web existed (see my first mobile apps: <a href="quad83">Quad83</a> and <a href="zcasino">ZCasino</a>). So as part of my job, I get to play with lots of new toys all the time, and dream up new uses for them. I always love to talk about it too, so if you want to talk, <a href="support">don&#8217;t be shy</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmelton.com/2010/07/welcome-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My HTC EVO 4G has 6 bars</title>
		<link>http://dougmelton.com/2010/07/my-htc-evo-4g-has-6-bars-take/</link>
		<comments>http://dougmelton.com/2010/07/my-htc-evo-4g-has-6-bars-take/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 07:03:40 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Tweets]]></category>

		<guid isPermaLink="false">http://www.supbro.com/supware/2010/07/my-htc-evo-4g-has-6-bars-take/</guid>
		<description><![CDATA[My HTC EVO 4G has 6 bars. Take that, Apple!]]></description>
				<content:encoded><![CDATA[<p>My HTC EVO 4G has 6 bars. Take that, Apple!</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmelton.com/2010/07/my-htc-evo-4g-has-6-bars-take/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Published my take on Boxee Remote</title>
		<link>http://dougmelton.com/2010/07/published-my-take-on-boxee-remote/</link>
		<comments>http://dougmelton.com/2010/07/published-my-take-on-boxee-remote/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 23:42:29 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Tweets]]></category>

		<guid isPermaLink="false">http://www.supbro.com/supware/2010/07/published-my-take-on-the-open/</guid>
		<description><![CDATA[Published my take on the open source Boxee Remote app on the Android Market: http://j.mp/d79DsO (src available too!)]]></description>
				<content:encoded><![CDATA[<p>Published my take on the open source Boxee Remote app on the Android Market: <a rel="nofollow" href="http://j.mp/d79DsO">http://j.mp/d79DsO</a> (src available too!)</p>
]]></content:encoded>
			<wfw:commentRss>http://dougmelton.com/2010/07/published-my-take-on-boxee-remote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
