<?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>Code This</title>
	<atom:link href="http://codethis.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://codethis.wordpress.com</link>
	<description>std::cout &#60;&#60;me.ramble() &#60;&#60;std::endl;</description>
	<lastBuildDate>Sat, 14 Jan 2012 23:29:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='codethis.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Code This</title>
		<link>http://codethis.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://codethis.wordpress.com/osd.xml" title="Code This" />
	<atom:link rel='hub' href='http://codethis.wordpress.com/?pushpress=hub'/>
		<item>
		<title>MIUI Inspired GO Launcher EX Theme Published</title>
		<link>http://codethis.wordpress.com/2012/01/14/miui-inspired-go-launcher-ex-theme-published/</link>
		<comments>http://codethis.wordpress.com/2012/01/14/miui-inspired-go-launcher-ex-theme-published/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 23:29:46 +0000</pubDate>
		<dc:creator>Kris Wong</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[GO Launcher EX]]></category>
		<category><![CDATA[MIUI]]></category>
		<category><![CDATA[Theme]]></category>

		<guid isPermaLink="false">http://codethis.wordpress.com/?p=293</guid>
		<description><![CDATA[Not too long ago I ran across the MIUI ROM for Android. I rather like the clean and modern style of the ROM. The problem is, it&#8217;s not available for many devices, my HTC Thunderbolt included. So I set out to find a theme based on MIUI that I could run instead. The problem was, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=293&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Not too long ago I ran across the <a href="http://miuiandroid.com/">MIUI ROM</a> for Android. I rather like the clean and modern style of the ROM. The problem is, it&#8217;s not available for many devices, my HTC Thunderbolt included. So I set out to find a theme based on MIUI that I could run instead. The problem was, I couldn&#8217;t find a good one. Fortunately, my favorite launcher (<a href="https://market.android.com/details?id=com.gau.go.launcherex">GO Launcher EX</a>) has a theme factory available for making custom themes. This allowed me to dig into the MIUI ROM and piece together a GO Launcher EX theme. That theme is now available on the Android market, for less then the price of a decent cup of coffee:</p>
<p><a href="https://market.android.com/details?id=com.gau.go.launcherex.theme.miui">My MIUI theme for GO Launcher EX</a></p>
<p>There are plenty of screenshots available on the market page, but here is a comparison of MIUI and my theme:</p>
<p style="text-align:center;"><a href="http://codethis.files.wordpress.com/2012/01/miui.png"><img class=" wp-image-295 aligncenter" style="border-color:initial;border-style:initial;border-width:0;" title="miui" src="http://codethis.files.wordpress.com/2012/01/miui.png?w=82&#038;h=149" alt="" width="82" height="149" /></a></p>
<p style="text-align:center;vertical-align:top;">MIUI</p>
<p style="text-align:center;"><a href="http://codethis.files.wordpress.com/2012/01/my_theme.jpg"><img class=" wp-image-296 aligncenter" style="border-color:initial;border-style:initial;border-width:0;" title="my_theme" src="http://codethis.files.wordpress.com/2012/01/my_theme.jpg?w=89&#038;h=148" alt="" width="89" height="148" /></a></p>
<p style="text-align:center;vertical-align:top;">My theme</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codethis.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codethis.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codethis.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codethis.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codethis.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codethis.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codethis.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codethis.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codethis.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codethis.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codethis.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codethis.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codethis.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codethis.wordpress.com/293/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=293&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codethis.wordpress.com/2012/01/14/miui-inspired-go-launcher-ex-theme-published/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0298402ea3f28ea9945412ed90b7d2f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Kris Wong</media:title>
		</media:content>

		<media:content url="http://codethis.files.wordpress.com/2012/01/miui.png?w=82" medium="image">
			<media:title type="html">miui</media:title>
		</media:content>

		<media:content url="http://codethis.files.wordpress.com/2012/01/my_theme.jpg?w=89" medium="image">
			<media:title type="html">my_theme</media:title>
		</media:content>
	</item>
		<item>
		<title>Status Update: EAS Support in K-9 Mail</title>
		<link>http://codethis.wordpress.com/2011/12/20/status-update-eas-support-in-k-9-mail/</link>
		<comments>http://codethis.wordpress.com/2011/12/20/status-update-eas-support-in-k-9-mail/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 00:33:26 +0000</pubDate>
		<dc:creator>Kris Wong</dc:creator>
				<category><![CDATA[ActiveSync]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Exchange]]></category>
		<category><![CDATA[K-9 Mail]]></category>

		<guid isPermaLink="false">http://codethis.wordpress.com/?p=284</guid>
		<description><![CDATA[After a more in-depth look at ActiveSync support in K-9, I found there to be more issues than I had first thought. This post serves to point out the most major of the issues that I have to tackle before this will be ready to be released into the wild. 1. K-9 does not remember [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=284&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After a more in-depth look at ActiveSync support in K-9, I found there to be more issues than I had first thought. This post serves to point out the most major of the issues that I have to tackle before this will be ready to be released into the wild.</p>
<p>1. K-9 does not remember sync state after being restarted. The sync keys used by the Exchange server to know which folders and emails have been synced by the phone are not persisted. This may not be immediately obvious, but it causes K-9 to do a bunch of work it doesn&#8217;t need to, which will do a real number on your battery (as well as network usage). This problem has been solved.</p>
<p>2. K-9 does not use the Exchange server to send email. K-9 uses its own &#8220;special&#8221; outbox for sending email, and it does the sending. K-9 should be moving composed emails into the outbox on the Exchange server, to be sent by the server. UPDATE: My original thoughts here were incorrect. Sending is working correctly.</p>
<p>3. K-9 does not download headers first and then mail contents. It downloads everything in one go. This causes a major delay before mails begin to appear in your message list. I am not sure the ActiveSync protocol is designed for this type of usage. This issue will require further investigation and thought.</p>
<p>4. ActiveSync is designed to filter the number of emails fetched by date, according to pre-defined filters (such as &#8220;one month&#8221;). K-9 is currently designed to fetch mail differently. The user interface for ActiveSync accounts will need to be modified to match the design used by Exchange.</p>
<p>5. There are discrepancies in the truncation size options for emails between K-9 and Exchange. I am also not certain if it is possible to know if an email is not fully downloaded. This will require further investigation.</p>
<p>I will be tackling these issues 1 by 1 as time allows. At this point, I don&#8217;t really have any idea how long it will take me to complete them all.</p>
<p>UPDATES: I have found and addressed a number of additional areas where the design of ActiveSync does not really mesh well with the design of K-9. I won&#8217;t go into all the technical details. Syncing of email is now working pretty well. I am now able to use K-9 as my daily email application on my phone.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codethis.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codethis.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codethis.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codethis.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codethis.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codethis.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codethis.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codethis.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codethis.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codethis.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codethis.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codethis.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codethis.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codethis.wordpress.com/284/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=284&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codethis.wordpress.com/2011/12/20/status-update-eas-support-in-k-9-mail/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0298402ea3f28ea9945412ed90b7d2f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Kris Wong</media:title>
		</media:content>
	</item>
		<item>
		<title>Building K-9 Mail With Exchange ActiveSync Support</title>
		<link>http://codethis.wordpress.com/2011/09/29/building-k-9-mail-with-exchange-activesync-support/</link>
		<comments>http://codethis.wordpress.com/2011/09/29/building-k-9-mail-with-exchange-activesync-support/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 20:29:59 +0000</pubDate>
		<dc:creator>Kris Wong</dc:creator>
				<category><![CDATA[ActiveSync]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Exchange]]></category>
		<category><![CDATA[K-9 Mail]]></category>

		<guid isPermaLink="false">http://codethis.wordpress.com/?p=266</guid>
		<description><![CDATA[I have blogged in the past about the less than fortunate state of Exchange support in K-9. This is due to the fact that K-9 communicates with Exchange through and outdated and problematic protocol: WebDAV. WebDAV support is turned off by default in Exchange 2007, and completely removed in Exchange 2010. This of course implies [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=266&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have blogged in the past about the less than fortunate state of Exchange support in K-9. This is due to the fact that K-9 communicates with Exchange through and outdated and problematic protocol: WebDAV. WebDAV support is turned off by default in Exchange 2007, and completely removed in Exchange 2010. This of course implies that K-9 does not support Exchange 2010. Since I started working on K-9, I have had the desire to replace the use of WebDAV with the Exchange ActiveSync protocol, which is designed specifically for mobile devices. Unfortunately, this task was much too large for me to take on in my (non-existent) free time. Lucky for us Google sponsors the annual Summer of Code.</p>
<p>This year K-9 was granted 4 Summer of Code projects, including EAS support. The project was successful, and at this point we have &#8220;mostly working&#8221; EAS support in a branch of the K-9 repository on github. There are still a few small issues to work out, and a few small features to complete, but I currently use K-9 with EAS support for email on my phone. If you would like to build K-9 with EAS support for your own personal use, I am including step-by-step instructions for doing so (though as usual, I do assume some basic knowledge of source control and building java applications).</p>
<p>In order get the K-9 sources and complete a build, you will need a git client, a JDK, ant (you can also use eclipse, but I don&#8217;t include instructions for that), and the Android SDK (make sure it&#8217;s up to date). The first step is fetching the source:</p>
<p><pre class="brush: plain;">
git clone git@github.com:k9mail/k-9.git k9mail
</pre></p>
<p>This will clone the repository at git@github.com:k9mail/k-9.git into the directory k9mail. This fetches all branches in the K-9 repo, including the ms-eas branch where EAS support lives. The next step is to &#8220;checkout&#8221; the ms-eas branch:</p>
<p><pre class="brush: plain;">
git checkout -b ms-eas origin/ms-eas
</pre></p>
<p>This tells git to create a local branch named &#8220;ms-eas&#8221; that tracks the remote branch at origin/ms-eas, and switch to this new branch. Now you must build the K-9 source. First, create a file called &#8216;local.properties&#8217; at the root of the source tree with the following entry:</p>
<p><pre class="brush: plain;">
sdk.dir=/path/to/android-sdk
</pre></p>
<p>Obviously, replace &#8220;/path/to/android-sdk&#8221; with the path to the Android SDK on your machine. The command to build is:</p>
<p><pre class="brush: plain;">
ant debug
</pre></p>
<p>This will build a signed and zipaligned installer ready for installation on your device. Finally, plug your phone into your PC via USB and ensure it is recognized by adb. To install the freshly built K-9:</p>
<p><pre class="brush: plain;">
adb install -r bin/K9-debug.apk
</pre></p>
<p>If you have K-9 installed from the market, you <strong>must</strong> uninstall it first. Your new K-9 will be signed with a different key than the market version and Android will not let you install this new version if the keys don&#8217;t match. Alternatively, you can give the app a new name in AndroidManifest.xml, but that&#8217;s outside the scope of this blog post.</p>
<p>If you want to report issues, feel free to mail k-9-dev [at] googlegroups.com.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codethis.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codethis.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codethis.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codethis.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codethis.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codethis.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codethis.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codethis.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codethis.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codethis.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codethis.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codethis.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codethis.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codethis.wordpress.com/266/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=266&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codethis.wordpress.com/2011/09/29/building-k-9-mail-with-exchange-activesync-support/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0298402ea3f28ea9945412ed90b7d2f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Kris Wong</media:title>
		</media:content>
	</item>
		<item>
		<title>Using QThread Without Subclassing</title>
		<link>http://codethis.wordpress.com/2011/04/04/using-qthread-without-subclassing/</link>
		<comments>http://codethis.wordpress.com/2011/04/04/using-qthread-without-subclassing/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 17:22:29 +0000</pubDate>
		<dc:creator>Kris Wong</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[QThread]]></category>
		<category><![CDATA[threading]]></category>

		<guid isPermaLink="false">http://codethis.wordpress.com/?p=232</guid>
		<description><![CDATA[The source code for this blog post can be found here. You do not need a Pro account to download the file, click No if you are prompted to upgrade. Having been developing with C++ and Qt for around 6 years, and being a regular on #qt on freenode, a thought occurred to me. Hey, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=232&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The source code for this blog post can be found <a href="http://rapidshare.com/files/455320212/qthread_example.tar.gz">here</a>. You do not need a Pro account to download the file, click No if you are prompted to upgrade.</p>
<p>Having been developing with C++ and Qt for around 6 years, and being a regular on #qt on freenode, a thought occurred to me. Hey, why not use that experience for a blog post? So, I thought I would start with one of the least understood classes in the Qt API, and that is QThread. This class is inherently difficult to use, because threading is difficult. Threading can turn a perfectly deterministic system into something non-deterministic. A threading issue is typically going to be much more difficult to diagnose and correct than other issues. Don&#8217;t get me wrong, threading is very useful, and serves a very important purpose (imagine using a web browser that didn&#8217;t use threads to fetch and render the content). But you should be familiar with both the positives and the negatives of the tools you are using to develop applications.</p>
<p>The first thing you need to know about using QThread is, a QThread object is not a thread. QThread is a class used for managing a thread; it is not itself a thread. The only method on QThread that runs on a separate thread is &#8220;run&#8221;. The second thing you need to know about using QThread is, as with all QObject subclasses, a QThread object has affinity to the thread in which it is instantiated. If you subclass QThread and add your own slots, you may be surprised to learn that these slots will actually run on the main thread. This also means you cannot use the QThread object as the parent of a QObject instance that has affinity to the thread (i.e., one created within &#8220;run&#8221;). And lastly, you need to know that only the main (GUI) thread can access GUI elements (QWidgets). The method of communicating between the thread and the GUI is signals and slots. If you don&#8217;t know, by default an object&#8217;s slots are run on the thread to which the object has affinity. This is done using the event loop.</p>
<p>Unfortunately, until Qt 4.4, QThread was an abstract class. The &#8220;run&#8221; method was pure virtual. And, even though this is no longer the case, the documentation still shows an example of using QThread by subclassing. While this is not wrong, or bad, it is not necessary. It also lends itself to using the class in ways it was not designed to be used. QThread is now able to be used without being subclassed. Attached is a small example application that creates a QTreeWidget and a button. Clicking the button will lead to the tree widget being populated with the contents of the user&#8217;s home direcrtory. Reading the contents of the file system is done on a separate thread. For this reason, you will see that you can still interact with the GUI while this is being done. There is a &#8220;sleep&#8221; call added, and tree widget items are expanded and collapsed while this is happening, so you are able see what is happening while the application runs.</p>
<p>So let&#8217;s jump into some code. This is the declaration of the FSReader class, the class that reads from the file system:</p>
<p><pre class="brush: cpp; wrap-lines: false;">
#ifndef FSREADER_H
#define FSREADER_H

#include &lt;QObject&gt;

class FSReader : public QObject
{
   Q_OBJECT

public:
   FSReader(QObject* parent = 0);
   ~FSReader();

public Q_SLOTS:
   void start();

Q_SIGNALS:
   void pathFound(const QString&amp; path);
   void finished();
};

#endif // FSREADER_H
</pre></p>
<p>A pretty typical QObject subclass. As we will see later, the start slot will be executed when the thread begins to run, and the finished signal is emit&#8217;d when the object has completed its task. The pathFound signal is used to communicate with the GUI. The following is the implementation of the class:</p>
<p><pre class="brush: cpp; wrap-lines: false;">
#include &quot;FSReader.h&quot;
#include &lt;QDirIterator&gt;
#include &lt;QDesktopServices&gt;

#if defined(Q_OS_WIN32)
#include &lt;windows.h&gt;
#define SLEEP(msecs) Sleep(msecs)
#else
#define SLEEP(msecs) usleep(msecs * 1000)
#endif

FSReader::FSReader(QObject* parent)
   : QObject(parent)
{
}

FSReader::~FSReader()
{
}

void FSReader::start()
{
   QDirIterator it(QDesktopServices::storageLocation(QDesktopServices::HomeLocation), 
      QDirIterator::Subdirectories);
   while (it.hasNext()) {
      emit pathFound(it.next());
      SLEEP(1);
   }
   emit finished();
}
</pre></p>
<p>As you can see, the implementation of this class is quite simple. It only uses QDirIterator to iterate the files and directories in the user&#8217;s home directory, and emits a signal for each one found. As mentioned previously, the SLEEP call is simply to slow the program down a  bit so you can see what is happening while it runs. It should not be used in a &#8220;real&#8221; application.</p>
<p>The last code snippet is also the most relevant, as it includes the use of QThread:</p>
<p><pre class="brush: cpp; wrap-lines: false;">
void Widget::onBtnClicked()
{
   QThread* thread = new QThread;
   FSReader* reader = new FSReader;

   reader-&gt;moveToThread(thread);

   connect(thread, SIGNAL(started()), reader, SLOT(start()));
   connect(reader, SIGNAL(pathFound(QString)), this, SLOT(onPathFound(QString)));
   connect(reader, SIGNAL(finished()), thread, SLOT(quit()));
   connect(reader, SIGNAL(finished()), reader, SLOT(deleteLater()));
   connect(reader, SIGNAL(finished()), thread, SLOT(deleteLater()));

   thread-&gt;start();
}
</pre></p>
<p>This is the button click handler of the Widget class. You can see here we instantiate both a QThread and FSReader instance, each without a parent. We then change the affinity of the &#8220;reader&#8221; to this new thread using the method &#8220;moveToThread&#8221;. This method can be used to change the thread affinity of any QObject.</p>
<p>Lets look at each connection that follows. The first is what starts the reader object after the thread has started. This method is run on the thread. The second connect links the reader object to the GUI. The &#8220;onPathFound&#8221; slot is run on the main thread. The next connect causes the thread&#8217;s event loop to exit once the reader has finished. The default implementation of QThread::run simply starts the thread&#8217;s event loop. The last 2 connects handle cleanup, since our objects were created without parents. The &#8220;deleteLater&#8221; method causes the objects to be deleted once there are no more pending events in the event loop. The reader is deleted on the thread, and the thread itself is actually deleted on the main thread. This &#8220;deleteLater&#8221; call works for the reader, even though the thread&#8217;s event loop would have already exited, because QThread does one final loop to handle all deferred deletetion events once its event loop has exited. QApplication does the same.</p>
<p>The rest of the Widget class, and the main, is included in the linked source, and is not particularly relevant to this post. That&#8217;s all you have to do to use QThread without subclassing it. Happy threading!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codethis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codethis.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codethis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codethis.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codethis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codethis.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codethis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codethis.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codethis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codethis.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codethis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codethis.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codethis.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codethis.wordpress.com/232/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=232&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codethis.wordpress.com/2011/04/04/using-qthread-without-subclassing/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0298402ea3f28ea9945412ed90b7d2f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Kris Wong</media:title>
		</media:content>
	</item>
		<item>
		<title>An Inside Look At Exchange Support In K-9 Mail</title>
		<link>http://codethis.wordpress.com/2011/01/07/an-inside-look-at-exchange-support-in-k-9-mail/</link>
		<comments>http://codethis.wordpress.com/2011/01/07/an-inside-look-at-exchange-support-in-k-9-mail/#comments</comments>
		<pubDate>Sat, 08 Jan 2011 00:06:56 +0000</pubDate>
		<dc:creator>Kris Wong</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Exchange]]></category>
		<category><![CDATA[HTC]]></category>
		<category><![CDATA[K-9 Mail]]></category>
		<category><![CDATA[OWA]]></category>

		<guid isPermaLink="false">http://codethis.wordpress.com/?p=204</guid>
		<description><![CDATA[When I first bought my Droid Eris, around a year ago, it came loaded with HTC replacements for most of the stock Google apps, including the mail app, the dialer, mms, etc&#8230; The HTC mail app just worked &#8211; it supported Exchange, handled multiple in-boxes, and the notifications worked like a charm. Sadly, when I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=204&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When I first bought my Droid Eris, around a year ago, it came loaded with HTC replacements for most of the stock Google apps, including the mail app, the dialer, mms, etc&#8230; The HTC mail app just worked &#8211; it supported Exchange, handled multiple in-boxes, and the notifications worked like a charm. Sadly, when I switched to a Froyo ROM, the HTC applications where no longer available and I was stuck with the stock Google apps. Well, as far as the mail application was concerned, this was a very bad thing. The Google mail app came with some significant bugs, and a notification system that was pretty much useless. So I set out to find an acceptable replacement for the HTC app.</p>
<p>This is when I found K-9. It was reviewed well, and boasted Exchange support, which is apparently hard to find on Android. I was saddened when I discovered the state of the Exchange support, which wasn&#8217;t great. Firstly, there was a bug in it that prevented it from working with the domain\username format. But alas, the project was open source and, being a developer, this was good news. So I took it upon myself to dive in and fix whatever bug(s) was preventing it from working correctly. I had no idea what I was in for at that point.</p>
<p>What was going to hopefully be a few line patch turned into 2,000 lines or so &#8211; and I was only half done at that point. By now I have completely rewritten the process of making the initial connection to Exchange and authenticating. After my initial patch was (reluctantly) reviewed and merged, the project head offered me the position of taking over as maintainer for Exchange support. I accepted, but warned him that I don&#8217;t have much free time these days. Either way, I have gained a lot of knowledge about how Exchange with OWA and WebDAV work, and am able to share that knowledge with you.</p>
<p>First, let me describe a little bit about how WebDAV access works. Each user has a mailbox, which by default can be accessed by a URL in the form: https://mail.company.com/Exchange/username. Tack &#8216;/Inbox&#8217; on to that path, and you have the user&#8217;s inbox. You can type that into your browser and you will be kindly redirected to an OWA login page. If you were to send an HTTP GET request to that URL, you would find that the Exchange server responds with a 302 status code, which is a redirect. This is exactly what K-9 does when making its initial connection to your exchange server.</p>
<p>Assuming this request is &#8220;successful&#8221; (I won&#8217;t go into what qualifies as success), K-9 then attempts to authenticate you. Based on the initial response, this will either be through basic authentication or form-based authentication. The greater majority of Exchange servers are setup for form-based authentication, and this is the only configuration I have actually tested. Unless the user has overridden the default authentication path in their configuration (which is completely unnecessary), the path used is: https://mail.company.com/exchweb/bin/auth/owaauth.dll. If Exchange gives K-9 back authentication cookies on the response, the user is authenticated and K-9 retrieves the user&#8217;s list of folders. Otherwise, it tries a more brute-force approach. It will check the response for an HTML form target. If it does not find one, it will send a request to the redirect URL from our initial connection and check this response for an HTML form target. Assuming one of these searches yields a valid form target, it will then try to authenticate again using a URL constructed with this form target. For this reason, the user can enter complete junk into the &#8216;Authentication path&#8217; field, and K-9 will still be able to authenticate the user (albeit less efficiently). I could have removed this field entirely, but chose not to just in case a user has a completely custom/bizarre Exchange configuration.</p>
<p>The only reason I have encountered for why a user would need to enter a value for one of the &#8220;advanced&#8221; configuration options is if their mailbox alias does not match their user name. Unfortunately, this was not the case for versions of K-9 prior to 3.400. For this reason, upgrading K-9 to the most recent version will break Exchange support for some users until their configuration is corrected. I didn&#8217;t really want to do this, but it was a necessary improvement so that these advanced options have a specific and deterministic affect on how K-9 connects to your Exchange server. I don&#8217;t want users spending hours &#8220;tinkering&#8221; with their options trying to get K-9 to work anymore.</p>
<p>To cap off this blog post, I&#8217;d like to show some screen shots of the updated screen for configuring an Exchange account. As of the writing of this post, these changes have not even been merged into trunk yet.</p>
<p><a href="http://codethis.files.wordpress.com/2011/01/exchange_screen1.png"><img class="alignnone size-full wp-image-217" style="border:0 none;" title="exchange_screen1" src="http://codethis.files.wordpress.com/2011/01/exchange_screen1.png?w=700" alt=""   /></a> <a href="http://codethis.files.wordpress.com/2011/01/exchange_screen2.png"><img class="alignnone size-full wp-image-218" style="border:0 none;" title="exchange_screen2" src="http://codethis.files.wordpress.com/2011/01/exchange_screen2.png?w=700" alt=""   /></a></p>
<p>Let me know what you think.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codethis.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codethis.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codethis.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codethis.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codethis.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codethis.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codethis.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codethis.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codethis.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codethis.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codethis.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codethis.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codethis.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codethis.wordpress.com/204/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=204&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codethis.wordpress.com/2011/01/07/an-inside-look-at-exchange-support-in-k-9-mail/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0298402ea3f28ea9945412ed90b7d2f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Kris Wong</media:title>
		</media:content>

		<media:content url="http://codethis.files.wordpress.com/2011/01/exchange_screen1.png" medium="image">
			<media:title type="html">exchange_screen1</media:title>
		</media:content>

		<media:content url="http://codethis.files.wordpress.com/2011/01/exchange_screen2.png" medium="image">
			<media:title type="html">exchange_screen2</media:title>
		</media:content>
	</item>
		<item>
		<title>Ohio HB 55/HB 79 &#8211; Stop BSL in your Community!</title>
		<link>http://codethis.wordpress.com/2010/11/12/ohio-hb-55hb-79-stop-bsl-in-your-community/</link>
		<comments>http://codethis.wordpress.com/2010/11/12/ohio-hb-55hb-79-stop-bsl-in-your-community/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 00:29:34 +0000</pubDate>
		<dc:creator>Kris Wong</dc:creator>
				<category><![CDATA[BSL]]></category>
		<category><![CDATA[Dog]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[OH HB 55]]></category>
		<category><![CDATA[OH HB 79]]></category>
		<category><![CDATA[Pit Bulls]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Responsibility]]></category>

		<guid isPermaLink="false">http://codethis.wordpress.com/?p=189</guid>
		<description><![CDATA[It&#8217;s not typically my nature to post politically motivated content on my blog, but I want this post to serve as a call to action for those who read it. Ohio is currently the only state that has statewide legislation against an entire breed of dog, specifically &#8211; pit bulls. In the state of Ohio, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=189&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s not typically my nature to post politically motivated content on my blog, but I want this post to serve as a call to action for those who read it. Ohio is currently the only state that has statewide legislation against an entire breed of dog, specifically &#8211; pit bulls. In the state of Ohio, all pit bulls (American Pit Bull Terrier) and related breeds (American Staffordshire Terrier, Staffordshire Bull terrier) are labeled as &#8220;vicious&#8221;, and are subject to all restrictions placed on dogs determined to be &#8220;vicious&#8221;. A dog of any breed can be labeled as vicious, but pit bulls are the only breed that are <em>automatically</em> labeled as vicious, regardless of a given dog&#8217;s actual temperament.</p>
<p>I could likely write a few pages on what BSL is, why it is not effective at increasing public safety, and why it in fact does more harm than good, but there are already a number of resources that feature this discussion. I recommend <a href="http://stopbsl.com" target="_blank">stopbsl.com</a>, and <a href="http://stopbsl.com/?s=%22hb+79%22" target="_blank">this sub-page</a> specifically for HB 55/79 related information. I would like to point out the most <strong>ironic </strong>aspect of BSL against pit bulls, however. That is, a higher percentage of pit bulls pass temperament related tests than many breeds considered to be safe, loving, and otherwise generally awesome family pets. The American Temperament Test Society conducts regular tests on many different breeds to determine the breeds&#8217; level of aggression toward humans. In these tests, the American Pit Bull Terrier scored 86.0%. That is higher than the Beagle, the Collie, the Toy Poodle, and even the Golden Retriever, among many others! Find more information <a href="http://www.atts.org/index.html" target="_blank">here</a>.</p>
<p>So what is HB 55? It is a bill that is currently stuck in the Ohio Senate that, among other things, removes the automatic categorization of pit bulls as vicious. This bill passed the Ohio House in March by a vote of 93 to 3. But, if the bill does not pass in the Senate by the end of the legislative session this December, it will die. I need you to push your senator, as well as the Criminal Justice Committee, to hear this bill and vote to pass it. It only takes a simple email! This is an email I recently sent to the 9th district senator and the members of the Criminal Justice Committee:</p>
<blockquote><p>Senator Kearny and the members of the Criminal Justice Committee,</p>
<p>My name is Kris Wong, and my wife and I are resident’s of Ohio’s 9<sup>th</sup> district. As you may know, HB 55 passed in the house earlier this year with a vote of 93 to 3. This bill must now pass in the senate by the time the legislative session ends in December. This bill removes the automatic classification of the pit bull terrier breed of dog as “vicious”. As pit bull owners, we strongly urge you to hear this bill, and do what is in your power to see that this bill passes. I am sure that you can appreciate the fact that labeling an entire breed of dog as vicious is a misjudgment at the very least. Legislation that mandates this classification makes it easier for insurance companies to deny our household liability insurance, and only furthers negative attitudes towards pit bulls. Our dog is a very sweet and loyal animal, and has never shown aggression towards any person she has met. Thank you for your consideration of this matter.</p></blockquote>
<blockquote><p>Kris Wong</p></blockquote>
<p>For your convenience, the following is a string of email addresses you can paste directly into your email client&#8217;s &#8220;To&#8221; field: &#8216;SD18@senate.state.oh.us&#8217;; &#8216;SD16@senate.state.oh.us&#8217;; &#8216;SD25@maild.sen.state.oh.us&#8217;; &#8216;SD12@senate.state.oh.us&#8217;; &#8216;SD03@senate.state.oh.us&#8217;; &#8216;SD33@maild.sen.state.oh.us&#8217;; &#8216;SD21@maild.sen.state.oh.us&#8217;; &#8216;SD08@senate.state.oh.us&#8217;; &#8216;SD20@senate.state.oh.us&#8217;. These are the email addresses of Criminal Justice Committee. You can find your own Senator&#8217;s email address here: <a href="http://www.ohiosenate.gov/" target="_blank">http://www.ohiosenate.gov</a>. If Senator Kearny happens to be your senator, his email address is: &#8216;SD09@maild.sen.state.oh.us&#8217;. Please,<strong> take 5 minutes</strong> out of your day to send these individuals an email.</p>
<p>This post is dedicated to Oceana.</p>
<p style="text-align:center;"><a href="http://codethis.files.wordpress.com/2010/11/oceana.jpg"><img class="size-medium wp-image-197 aligncenter" style="border:0 none;" title="Oceana" src="http://codethis.files.wordpress.com/2010/11/oceana.jpg?w=189&#038;h=300" alt="" width="189" height="300" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codethis.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codethis.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codethis.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codethis.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codethis.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codethis.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codethis.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codethis.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codethis.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codethis.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codethis.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codethis.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codethis.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codethis.wordpress.com/189/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=189&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codethis.wordpress.com/2010/11/12/ohio-hb-55hb-79-stop-bsl-in-your-community/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0298402ea3f28ea9945412ed90b7d2f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Kris Wong</media:title>
		</media:content>

		<media:content url="http://codethis.files.wordpress.com/2010/11/oceana.jpg?w=189" medium="image">
			<media:title type="html">Oceana</media:title>
		</media:content>
	</item>
		<item>
		<title>The Swiss Army Knife Of Droid Eris Posts</title>
		<link>http://codethis.wordpress.com/2010/09/17/the-swiss-army-knife-of-droid-eris-posts/</link>
		<comments>http://codethis.wordpress.com/2010/09/17/the-swiss-army-knife-of-droid-eris-posts/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 20:49:33 +0000</pubDate>
		<dc:creator>Kris Wong</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Droid Eris]]></category>
		<category><![CDATA[Froyo]]></category>
		<category><![CDATA[KaosFroyo]]></category>
		<category><![CDATA[Overclocking]]></category>
		<category><![CDATA[SetCPU]]></category>
		<category><![CDATA[Titanium Backup]]></category>

		<guid isPermaLink="false">http://codethis.wordpress.com/?p=176</guid>
		<description><![CDATA[I have a few topics I&#8217;d like to cover in this post. First off&#8230; SetCPU I&#8217;ve recently been experimenting with my SetCPU settings, and I think I&#8217;ve found the optimal settings for my phone. My profiles are as follows: Default &#8211; 787 max, 19 min Screen Off &#8211; 480 max, 19 min, 90 priority Temp [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=176&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have a few topics I&#8217;d like to cover in this post. First off&#8230;</p>
<h2>SetCPU</h2>
<p>I&#8217;ve recently been experimenting with my SetCPU settings, and I think I&#8217;ve found the optimal settings for my phone. My profiles are as follows:</p>
<ul>
<li>Default &#8211; 787 max, 19 min</li>
<li>Screen Off &#8211; 480 max, 19 min, 90 priority</li>
<li>Temp &gt; 40.4 C &#8211; 528 max, 19 min, 80 priority</li>
</ul>
<p>And that&#8217;s it. I experimented with 806 max, but my phone was unstable (random crashes)  at this setting. It has been stable at 787 max. I can go 2 days w/o a charge with light usage, 1 day or so with moderate usage. The failsafe profile is important. I have triggered it a few times while using the phone for 5 &#8211; 10 minutes or more while it is charging.</p>
<p>I have heard of issues with setting a min of 19 while using Sense as your home/launcher. I personally have not tried this configuration, so I have not had any issues with it.</p>
<h2>Titanium Backup</h2>
<p>I discovered the hard way that you should not blindly back up/restore all user apps and system data. This wreaks havoc when switching between ROMs. I now backup my user apps only. Titanium Backup displays useful system data in green, which is safe to back and restore across ROMs, but I haven&#8217;t found a need to backup any of this information. This alleviates the need for apps2sd.</p>
<h2>Froyo</h2>
<p>I recently switched from xtrSENSE to KaosFroyo v. 32. I read that the first stable release of <a href="http://www.cyanogenmod.com/" target="_blank">CyanogenMod 6</a> (the base for most Froyo ROMs) had been released into the wild, and I figured it might be stable enough for daily use at this point. Things have been going pretty smoothly so far. Most of the system apps (dialer, messaging, email, contacts, browser, etc&#8230;) have seen a significant interface overhaul &#8211; mostly for the better. The only issue I&#8217;ve had with these apps is the dialer. It no longer displays the call log immediately when opening, nor has the quick search for finding contacts, etc&#8230; There are instead 4 &#8220;tabs&#8221; available once the app is opened, and the first thing you see is simply a dial pad. The other tabs are Call Log, Contacts, and Favorites. It&#8217;s a little less convenient than it was previously, but workable once you get used to it. The favorites tab (populated automatically) is also nice.</p>
<p>The only other real issue I have seen is with the xScope browser. Typing into the address bar with the phone tilted horizontally causes the Froyo notification bar to display and then hide a few times for each key stroke, causing things to jump around on the screen wildly. Typing works fine if the phone is held vertically.</p>
<p>By now version 34 of this ROM is out. This developer appears to be incredibly active lately.</p>
<p><strong>Update:</strong> I&#8217;ve discovered that the &#8220;interface overhaul&#8221; I discuss above is not due to my upgrade from 2.1 to 2.2; rather, it is a difference between the HTC applications included with xtrROM and the Google applications included with KaosFroyo. While the Google applications are generally nicer to look at, the HTC applications are generally much more usable (and function more sanely). This is most evident in the email application and the dialer. Since my upgrade to 2.2, I have been unable to find an email application that meets my needs. You would figure this is one of the most basic and prominent uses for a smart phone, but yet the only usable email application I have come across is from HTC. At present, I am trying to get exchange support in K9 Mail into some sort of usable shape, but as my free time and my experience with java are limited, this is coming along slowly.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codethis.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codethis.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codethis.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codethis.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codethis.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codethis.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codethis.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codethis.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codethis.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codethis.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codethis.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codethis.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codethis.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codethis.wordpress.com/176/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=176&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codethis.wordpress.com/2010/09/17/the-swiss-army-knife-of-droid-eris-posts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0298402ea3f28ea9945412ed90b7d2f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Kris Wong</media:title>
		</media:content>
	</item>
		<item>
		<title>My Droid Eris Apps And Configuration</title>
		<link>http://codethis.wordpress.com/2010/08/28/my-droid-eris-apps-and-configuration/</link>
		<comments>http://codethis.wordpress.com/2010/08/28/my-droid-eris-apps-and-configuration/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 15:32:07 +0000</pubDate>
		<dc:creator>Kris Wong</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Beautiful Widgets]]></category>
		<category><![CDATA[Droid Eris]]></category>
		<category><![CDATA[HTC]]></category>
		<category><![CDATA[LauncherPro]]></category>
		<category><![CDATA[Overclocking]]></category>
		<category><![CDATA[Root]]></category>
		<category><![CDATA[SetCPU]]></category>
		<category><![CDATA[xtrSENSE]]></category>

		<guid isPermaLink="false">http://codethis.wordpress.com/?p=163</guid>
		<description><![CDATA[First, if you haven&#8217;t seen my last post, this one won&#8217;t mean much to you. I&#8217;ll start with my main home screen: I use LauncherPro for my home screen/application launcher. It is fast, looks nice, has lots of features, and is highly configurable. The only problem with using LauncherPro instead of HTC&#8217;s Sense UI is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=163&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>First, if you haven&#8217;t seen <a href="http://codethis.wordpress.com/2010/08/13/a-droid-by-any-other-name-would-surely-smell-sweeter/" target="_blank">my last post</a>, this one won&#8217;t mean much to you. I&#8217;ll start with my main home screen:</p>
<p><a href="http://codethis.files.wordpress.com/2010/08/eris_home_2.png"><img class="size-medium wp-image-150 alignnone" style="border:0 none;" title="eris_home_2" src="http://codethis.files.wordpress.com/2010/08/eris_home_2.png?w=200&#038;h=300" alt="" width="200" height="300" /></a></p>
<p>I use <a href="http://www.launcherpro.com/" target="_blank">LauncherPro</a> for my home screen/application launcher. It is fast, looks nice, has lots of features, and is highly configurable. The only problem with using LauncherPro instead of HTC&#8217;s Sense UI is that you lose the ability to use the Sense widgets. Not a huge deal, it just means that I had to find replacements. I turned off any animation features available in LauncherPro. I like the animations, but I&#8217;m realist when it comes to the fact that I own an Eris, not an Incredible. While there is a free version of this application in the Android Market, I&#8217;d recommend paying for LauncherPro Plus. The developer of this application has put a lot of hard work into it and deserves a little compensation form the community. The only issue is that you have to use PayPal instead of the Android Market. The author is not from the US and cannot receive payment using the Android Market (really, Google?).</p>
<p>The time and weather widget I am using is a part of <a href="http://levelupstudio.com/widgets/weather" target="_blank">Beautiful Widgets</a>, available in the Android Market. This application costs around $2, if I recall correctly (it&#8217;s actually sold in British pounds). The skin I am using is &#8220;Destroy,&#8221; which can be set in the widget options. I am also using some Beautiful Widget&#8217;s widgets on my &#8220;left&#8221; home screen:</p>
<p><a href="http://codethis.files.wordpress.com/2010/08/eris_home_1.png"><img class="alignnone size-medium wp-image-149" style="border:0 none;" title="eris_home_1" src="http://codethis.files.wordpress.com/2010/08/eris_home_1.png?w=200&#038;h=300" alt="" width="200" height="300" /></a></p>
<p>I am referring to the settings widgets in the bottom row of this screen. Keeping things like GPS and WiFi turned off when not in use saves precious battery life. And finally, on my &#8220;right&#8221; home screen:</p>
<p><a href="http://codethis.files.wordpress.com/2010/08/eris_home_3.png"><img class="alignnone size-medium wp-image-148" style="border:0 none;" title="eris_home_3" src="http://codethis.files.wordpress.com/2010/08/eris_home_3.png?w=200&#038;h=300" alt="" width="200" height="300" /></a></p>
<p>The stock symbol tracker widgets I am using are from an application called pFinance, available for free in the Android Market. You have to add 1 widget per symbol you&#8217;d like to track. As you can see today I lost some money, seems to be a trend lately. =/ The calendar widget is just the plain &#8216;ole Android calendar widget that comes with the phone. Finally, here is a list of other applications I have installed from the market:</p>
<ul>
<li>PdaNet &#8211; USB tethering</li>
<li>Titanium Backup &#8211; indispensable for backing up/restoring all user apps and system data</li>
<li>Pandora &#8211; of course</li>
<li>SetCPU &#8211; discussed in my last post</li>
<li>The Moron Test &#8211; fun game</li>
<li>Smart Vibrator &#8211; for some reason my phone wasn&#8217;t vibrating when I received text messages (yes, my options were correct). This fixed the issue.</li>
<li>Backgrounds &#8211; has hundreds of images you can set as your wallpaper. This is were I got my current wallpaper.</li>
<li>Home Switcher &#8211; allows me to switch between LauncherPro and Sense</li>
<li>Dictionary.com</li>
<li>Robo Defense &#8211; fun time killer</li>
<li>NFL Mobile &#8211; so I can stay current on all my Bengals news</li>
<li>Paper toss &#8211; fairly entertaining</li>
<li>Google Maps</li>
<li>Math Workout Lite</li>
<li>xScope Lite &#8211; best browser available for Android (although Firefox is working on a browser)</li>
<li>Jewels</li>
<li>Stock Price Alerts &#8211; excellent for tracking buy and sell points of any stock, with notifications</li>
</ul>
<p>I have also been experimenting with my SetCPU settings lately, as a result of a post I read on xda. By setting all my low points to 19 MHz, I can get even better battery life from my phone. I just made this change yesterday so I can&#8217;t comment on how well it works yet. In my next post I&#8217;ll go over all my new SetCPU settings.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codethis.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codethis.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codethis.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codethis.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codethis.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codethis.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codethis.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codethis.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codethis.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codethis.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codethis.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codethis.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codethis.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codethis.wordpress.com/163/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=163&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codethis.wordpress.com/2010/08/28/my-droid-eris-apps-and-configuration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0298402ea3f28ea9945412ed90b7d2f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Kris Wong</media:title>
		</media:content>

		<media:content url="http://codethis.files.wordpress.com/2010/08/eris_home_2.png?w=200" medium="image">
			<media:title type="html">eris_home_2</media:title>
		</media:content>

		<media:content url="http://codethis.files.wordpress.com/2010/08/eris_home_1.png?w=200" medium="image">
			<media:title type="html">eris_home_1</media:title>
		</media:content>

		<media:content url="http://codethis.files.wordpress.com/2010/08/eris_home_3.png?w=200" medium="image">
			<media:title type="html">eris_home_3</media:title>
		</media:content>
	</item>
		<item>
		<title>A Droid By Any Other Name Would Surely Smell Sweeter</title>
		<link>http://codethis.wordpress.com/2010/08/13/a-droid-by-any-other-name-would-surely-smell-sweeter/</link>
		<comments>http://codethis.wordpress.com/2010/08/13/a-droid-by-any-other-name-would-surely-smell-sweeter/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 02:20:42 +0000</pubDate>
		<dc:creator>Kris Wong</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Droid Eris]]></category>
		<category><![CDATA[HTC]]></category>
		<category><![CDATA[Overclocking]]></category>
		<category><![CDATA[Root]]></category>
		<category><![CDATA[SetCPU]]></category>
		<category><![CDATA[xtrSENSE]]></category>

		<guid isPermaLink="false">http://codethis.wordpress.com/?p=133</guid>
		<description><![CDATA[It wasn&#8217;t long after I had received the Android 2.1 update for my Droid Eris, which I had been not so patiently awaiting for some time, that the hardware limitations of the device became painstakingly obvious. Translation: it was slow. Too slow. I managed to stop by a Verizon store this past weekend to play [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=133&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It wasn&#8217;t long after I had received the Android 2.1 update for my Droid Eris, which I had been not so patiently awaiting for some time, that the hardware limitations of the device became painstakingly obvious. Translation: it was slow. Too slow. I managed to stop by a Verizon store this past weekend to play a bit with the HTC Droid Incredible and the Motorola Droid. These devices performed wonderfully. They navigated between screens and applications with minimal to no waiting at all. I was rather disappointed to find out that I still had over 1.5 years before I was eligible for an upgrade! I can&#8217;t complain too much. I purchased my Eris less than 6 months ago for $20. But, as they say, you get what you pay for.</p>
<p>Earlier this week I had surfed on by the <a href="http://androidforums.com/htc-droid-eris/" target="_blank">Droid Eris forum at androidforums.com</a>, as I often do to check for any news from the community, when I came across a <a href="http://androidforums.com/htc-droid-eris/129034-fence-why-root-my-eris.html" target="_blank">rather interesting thread</a>. The thread asks one simple question: why should I root my Eris? Rooting was something I hadn&#8217;t really considered in the past, as I didn&#8217;t really think there was anything in it for me. None-the-less, I was still interested to hear the responses. I was very excited to learn that rooting allowed you to overclock the phone, and even more excited to see that many people were reporting that doing so eliminated all the performances issues that had been plaguing my Eris. At that point, I was sold. Now, before I recommend to you that rooting your phone is the greatest thing since sliced bread, you need to understand a few things:</p>
<ol>
<li>Rooting your phone will void the warranty. If you need to take it to a VZW store for service, you had better hope you can remove any evidence of ever having rooted it.</li>
<li>You can seriously screw up your phone if you do it wrong.</li>
<li>Always back up your phone before making any significant changes.</li>
</ol>
<p>Now that I have that disclaimer out of the way, rooting your phone is actually an easy (and well documented) process. The difficult part is all of the options involved. This required a couple days worth of research on my part. The main thing to decide is what custom ROM you would like to use after rooting your phone. You don&#8217;t <em>have</em> to use a custom ROM, but it doesn&#8217;t make much sense to go to the trouble of rooting and not use a custom ROM. A ROM is essentially an image of a new OS for your phone. It starts with the base Android image, and then the ROM developer makes changes to get it the way they want it.</p>
<p>I chose to go with <a href="http://forum.xda-developers.com/showthread.php?t=726467" target="_blank">xtrSENSE 3.1</a>. The ROM boasted both stability and increased performance, which is exactly what I was looking for. This version of the ROM includes Sense UI, but there is also a version that does not, called <a href="http://forum.xda-developers.com/showthread.php?t=694472" target="_blank">xtrROM</a>. Since I have installed the ROM I have disabled Sense, but it&#8217;s still a nice option to have. In my limited experience so far, I can say the ROM has lived up to the authors claims. Other popular ROMs include: <a href="http://forum.xda-developers.com/showthread.php?t=685594" target="_blank">KaosFroyo</a> &#8211; the most popular Android 2.2 ROM, White Widow, and Evil Eris. I suggest you read up on each to see which one best suites your needs.</p>
<p>Now for the good part. You can read up about the rooting process <a href="http://androidforums.com/htc-droid-eris/125436-detailed-leak-root-tutorial.html" target="_blank">here</a>. There are several ways to root, including one that doesn&#8217;t even require a PC at all; you can find links to the various ways within the threads I&#8217;ve linked so far. I chose to use the Android SDK to root because it was the most straightforward and flexible method for me. After I had all of the required software downloaded and setup, I was able to complete the process in about 30 minutes. This includes a NAND backup before flashing my new ROM.</p>
<p>Once you have your custom ROM installed, you will undoubtedly want to overclock your phone. The software you will use is called <a href="http://forum.xda-developers.com/showthread.php?t=505419" target="_blank">SetCPU</a>. <a href="http://forum.xda-developers.com/showthread.php?t=679102" target="_blank">This thread</a> offers an excellent discussion of overclocking, and information about how to use SetCPU effectively. I have my overclock profiles setup exactly as discussed in the thread. I can honestly say, my phone no longer has all of the lag and performance issues it did previously. It&#8217;s like a brand new phone. I also love the replacement keyboard application used by my ROM &#8211; the HTC keyboard is terrible.</p>
<p>And without further ado, it&#8217;s time for some screen shots of my home screens&#8230;</p>
<p><a href="http://codethis.files.wordpress.com/2010/08/eris_home_1.png"><img class="size-medium wp-image-149 alignnone" style="border:0 none;" title="eris_home_1" src="http://codethis.files.wordpress.com/2010/08/eris_home_1.png?w=200&#038;h=300" alt="" width="200" height="300" /></a> <a href="http://codethis.files.wordpress.com/2010/08/eris_home_2.png"><img class="size-medium wp-image-150 alignnone" style="border:0 none;" title="eris_home_2" src="http://codethis.files.wordpress.com/2010/08/eris_home_2.png?w=200&#038;h=300" alt="" width="200" height="300" /></a><a href="http://codethis.files.wordpress.com/2010/08/eris_home_3.png"> <img class="size-medium wp-image-148 alignnone" style="border:0 none;" title="eris_home_3" src="http://codethis.files.wordpress.com/2010/08/eris_home_3.png?w=200&#038;h=300" alt="" width="200" height="300" /></a></p>
<p>As you can probably tell, I have quite a bit of custom software going on here beyond what is used in the xtrSENSE ROM. In my next post, I&#8217;ll talk about all of the apps I have on my phone and how I have it setup.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codethis.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codethis.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codethis.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codethis.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codethis.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codethis.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codethis.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codethis.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codethis.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codethis.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codethis.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codethis.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codethis.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codethis.wordpress.com/133/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=133&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codethis.wordpress.com/2010/08/13/a-droid-by-any-other-name-would-surely-smell-sweeter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0298402ea3f28ea9945412ed90b7d2f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Kris Wong</media:title>
		</media:content>

		<media:content url="http://codethis.files.wordpress.com/2010/08/eris_home_1.png?w=200" medium="image">
			<media:title type="html">eris_home_1</media:title>
		</media:content>

		<media:content url="http://codethis.files.wordpress.com/2010/08/eris_home_2.png?w=200" medium="image">
			<media:title type="html">eris_home_2</media:title>
		</media:content>

		<media:content url="http://codethis.files.wordpress.com/2010/08/eris_home_3.png?w=200" medium="image">
			<media:title type="html">eris_home_3</media:title>
		</media:content>
	</item>
		<item>
		<title>A Tale Of Two Dwellings</title>
		<link>http://codethis.wordpress.com/2009/07/28/a-tale-of-two-dwellings/</link>
		<comments>http://codethis.wordpress.com/2009/07/28/a-tale-of-two-dwellings/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 20:49:57 +0000</pubDate>
		<dc:creator>Kris Wong</dc:creator>
				<category><![CDATA[Foreclosure]]></category>
		<category><![CDATA[Freddie Mac]]></category>
		<category><![CDATA[Frustration]]></category>
		<category><![CDATA[House]]></category>
		<category><![CDATA[Remodel]]></category>
		<category><![CDATA[Responsibility]]></category>

		<guid isPermaLink="false">http://codethis.wordpress.com/?p=111</guid>
		<description><![CDATA[Where o where have I been for the last 6 months?! I know you&#8217;re dieing to know. Well, for your information, I have been quite busy. The first few months of this year were spent furiously developing the latest version of TestTrack, TestTrack 2010, which boasts our brand spankin new requirements management tool &#8211; TestTrack [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=111&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Where o where have I been for the last 6 months?! I know you&#8217;re dieing to know. Well, for your information, I have been quite busy. The first few months of this year were spent furiously developing the latest version of TestTrack, <a href="http://labs.seapine.com/tt2010/" target="_blank">TestTrack 2010</a>, which boasts our brand spankin new requirements management tool &#8211; TestTrack RM. This latest version has been receiving tons of positive feedback, and is set to release very soon. Many a night and weekend hour where required to bring this version to fruition.</p>
<p>In addition to that, my wonderful fiance (yep, she received a title change since my last post) and I have been attempting to purchase our first home. We had the fantastic idea to by a foreclosed property in need of some TLC &#8211; for the potential to build up some serious sweat equity relatively quickly. We had no idea what we were getting ourselves into.</p>
<p>(This is the part on TV where the show fades into a scene from some character&#8217;s recent memory.)</p>
<p>It was the best of times, it was the worst of times&#8230;</p>
<p>The owner of the property was none other than the Federal Home Loan Mortgage Corporation, a.k.a. <a href="http://en.wikipedia.org/wiki/Freddie_Mac" target="_blank">Freddie Mac</a>. This was just one of many foreclosed properties that had contributed in driving the company to the brink of collapse, only to be subsequently seized by the government. The previous occupants of the home had been removed around 6 months earlier, and by this time the price had been significantly reduced. Of course, the house needed quite a bit of work. Now, I don&#8217;t know if you&#8217;ve ever had the pleasure of dealing with a bank when purchasing a home, but it can be quite a frustrating experience. The most important thing you need to know when dealing with a bank is, banks do not react quickly in any situation. Much of the time spent in the negotiation process will be dedicated to you waiting for the bank to respond. Fortunately, the bank responded to our initial offer in only a few days &#8211; sometimes this can take months. But that, of course, was only the beginning.</p>
<p>The entire negotiation and closing process took almost 3 months. Most of the negotiations were the result of a mold problem that was discovered during our initial inspection. Mold &#8211; it&#8217;s nasty stuff. Fortunately we were able to get the bank to come down on the price by the amount of the estimate to fix this mold issue. This required us to be very persistent. We finally closed on the house around 1 month ago.</p>
<p>Since we closed, we have been working diligently to get the house into condition for us to move in &#8211; which we did this past Sunday. All new paint, floors, appliances, bathroom fixtures, counter tops, refinishing the kitchen cabinets, the list goes on. Things are coming along, but there is still a lot of work left to be done. Trying to remodel a house in your spare time is a long process. At least we are no longer traveling back and forth between our apartment and the house every day.</p>
<p>For your viewing pleasure, here is a link to a <a href="http://picasaweb.google.com/kris.p.wong/NewHouseBefore?authkey=Gv1sRgCJzA3diF3JT01gE" target="_blank">Picasa web album of the &#8220;before&#8221; pics</a>. The &#8220;after&#8221; pics will hopefully make their way to the web within the next 2 &#8211; 3 months. I keep telling myself, it will all be worth it at the end of the day. I just wish the end of the day would finally get here.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codethis.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codethis.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codethis.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codethis.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codethis.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codethis.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codethis.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codethis.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codethis.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codethis.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codethis.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codethis.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codethis.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codethis.wordpress.com/111/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codethis.wordpress.com&amp;blog=2489677&amp;post=111&amp;subd=codethis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codethis.wordpress.com/2009/07/28/a-tale-of-two-dwellings/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0298402ea3f28ea9945412ed90b7d2f9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Kris Wong</media:title>
		</media:content>
	</item>
	</channel>
</rss>
