<?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>Robert LaThanh</title>
	<atom:link href="http://robertlathanh.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://robertlathanh.com</link>
	<description></description>
	<lastBuildDate>Tue, 28 Feb 2012 17:52:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Protected: Now Entering Germany</title>
		<link>http://robertlathanh.com/2012/02/now-entering-germany/</link>
		<comments>http://robertlathanh.com/2012/02/now-entering-germany/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 23:24:53 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Personal Technology]]></category>

		<guid isPermaLink="false">http://robertlathanh.com/?p=377</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[<form action="http://robertlathanh.com/wp-pass.php" method="post">
<p>This post is password protected. To view it please enter your password below:</p>
<p><label for="pwbox-377">Password:<br />
<input name="post_password" id="pwbox-377" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="Submit" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://robertlathanh.com/2012/02/now-entering-germany/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Experience with Carbonite Home and CrashPlan+</title>
		<link>http://robertlathanh.com/2012/01/my-experience-with-carbonite-home-and-crashplan/</link>
		<comments>http://robertlathanh.com/2012/01/my-experience-with-carbonite-home-and-crashplan/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 17:52:39 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Personal Technology]]></category>

		<guid isPermaLink="false">http://robertlathanh.com/?p=354</guid>
		<description><![CDATA[I don&#8217;t like losing data, and I&#8217;m guessing that you don&#8217;t, either. I already do local backups, but not only can it a little cumbersome and easy to forget (not to mention drive failures), fire or theft could result in &#8230; <a href="http://robertlathanh.com/2012/01/my-experience-with-carbonite-home-and-crashplan/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style type="text/css">
    h2 {
        border-bottom: black double;
    }
    h4 {
        text-decoration: underline;
    }
    h6 {
        text-decoration: underline;
        margin-bottom: 4pt;
    }
    .header-row {
        font-weight: bold;
        font-size: larger;
        color: #191970;
        background-color: #f0f0ff;
        margin-top: 8px;
        padding-top: 4px;
        padding-bottom: 4px;
        border-bottom: #666699 double;
    }
    .candidate-header {
        font-size: larger;
        color: #000000;
    }
    td {
        border-left: #cccccc solid thin;
    }
    .comparison-good {
        color: #006400;
        font-weight: bold;
    }
    .comparison-ok {
        color: #999900;
    }
    .comparison-notGood {
        color: #d2691e;
    }
    .comparison-bad {
        color: #ee1111;
        font-style: italic;
    }
    .emphasized {
        font-style: italic;
    }
</style>
<p>I don&#8217;t like losing data, and I&#8217;m guessing that you don&#8217;t, either. I already do local backups, but not only can it a little cumbersome and easy to forget (not to mention drive failures), fire or theft could result in the loss of the both the data and the backup.</p>
<p>So, I also want a backup that&#8217;s off-site, easy, and reliable. I&#8217;ve taken it upon myself to set up online backup for my wife, parents, and brother, so I&#8217;ve had the opportunity to try more than one provider, and wanted to share my experience.</p>
<p><!-- == h2 =============================================================== --></p>
<h2>My Criteria for our Online Backup Service</h2>
<p>I&#8217;ll start by sharing what&#8217;s important to me in backup provider so that you know what biases I have and how my opinions may apply to you. <em>Also, my research and review are primarily from Q4, 2011. Features and pricing may have changed.</em></p>
<h4>Unlimited for a low, flat price</h4>
<p>I have roughly 300 GB of personal data. The bulk of that are digital photos and videos, and that&#8217;s with almost no RAW photos and only rarely is there HD video. Any non-unlimited plan would have been significantly more expensive.</p>
<p>My wife, dad, and brother each have between 50-100 GB, and that grows with every photo-opp. Not only would it have been unpleasant to have to think that each new document, photo, and video could result in an increased recurring payment, I simply did not find anything compelling in the services offered by non-unlimited providers.<br />
<span id="more-354"></span></p>
<h4>Security: Private Encryption Key</h4>
<p>Nearly every online backup provider encrypts customer files, but most also store the encryption/decryption key. It is thus possible for a misbehaving employee or hacker to access customer files. While improbable, it is a non-zero possibility. There&#8217;s no direct cost for choosing a provider that supports a private encryption key, so I opt to choose one that does.</p>
<h6>A couple caveats</h6>
<ul>
<li>You will have to go out of your way to use a private encryption key for services that support it.</li>
<li>You will not be able to access the files of your online backup if you lose your encryption key.</li>
<li>Some services allow you access your backed-up files through the web as an added-value feature. You will not be able use this feature because the service provider will be unable to decrypt your files for you. (When I want functionality like this, I use Dropbox.)</li>
</ul>
<h4>Convenient and Reliable</h4>
<p>Once set up, you should not have to think about it anymore. Specifically, once I set this up for my mom, she shouldn&#8217;t have to do anything if/until the day comes that she needs her data restored.</p>
<p>Also, it should be fairly easy to restore deleted files or previous versions of files. Ideally, We should be able to get to previous versions by right-clicking on the file in Windows Explorer/Finder.</p>
<p><!-- == h2 =============================================================== --></p>
<h2>Services Not considered</h2>
<p>Based on the criteria above, a couple services were out of the running.</p>
<h4>Mozy</h4>
<p>I first tried Mozy when they had an unlimited plan. I&#8217;m glad I didn&#8217;t subscribe, because <a href="http://mozy.com/home/newplans/">they discontinued it</a>. At $9.99/mo for 125 GB and $2.00/mo for each additional 20 gigabytes, I would be paying about $27.50/mo for my 300 GB of data.</p>
<h4>Dropbox</h4>
<p>I wouldn&#8217;t call Dropbox a backup service (nor would they), but I looked at it anyway, so I may as well mention it. At $19.99/mo for 100 GB (and I don&#8217;t know how much for additional space), it&#8217;s not cost competitive. Dropbox&#8217;s value are in other features, such as easy, instant, secure-enough file sharing with friends, family, and coworkers.</p>
<h4>Backblaze</h4>
<p>I didn&#8217;t go with Backblaze for several reasons:</p>
<ol>
<li>They don&#8217;t support a completely private encryption key. At best, they <a href="https://help.backblaze.com/entries/20203731-can-you-tell-me-more-about-the-encryption-backblaze-uses">store your key encrypted by your password</a> (and they don&#8217;t store your password). However, this means that your files are only as secure as your password and the systems protecting your keys.</li>
<li>At the time I began comparing providers (August and September of 2011), Backblaze would not back up many file types, including &#8216;ISO&#8217;, &#8216;VHD&#8217;, and &#8216;EXE&#8217;. I have many of the these types of files that are actually personal files, and not being able to override this was a deal-breaker. They do now allow this to be overridden (as of <a href="http://blog.backblaze.com/2011/10/26/backblaze-2-0-unlimiting-unlimited/">Oct 2011</a>), but the service still doesn&#8217;t make the cut to me.</li>
<li>Their file retention, <a href="http://blog.backblaze.com/2011/05/16/restore-files-within-a-date-range/">four weeks</a>, is minimal compared to CrashPlan.</li>
<li>While doing initial research, it was hard to find <em>details</em> such as whether excluded files could be overridden, or how often a changed file would be backed up.</li>
</ol>
<p><!-- == h2 =============================================================== --></p>
<h2>Services Considered</h2>
<p>This left two services that I considered:</p>
<ul>
<li>CrashPlan+</li>
<li>Carbonite Home</li>
</ul>
<p>I&#8217;ve been a paying subscriber of both for several months, now (some of my family on each). This gives me a fairly unique ability to make a thorough side-by-side comparison.</p>
<p><em>The information here is based on both documentation on their website (usually linked) and through my own use of their programs/UI. You are encouraged to double-check any factors that are important to you.</em></p>
<p><!-- == h2 =============================================================== --></p>
<h2>Overview</h2>
<table>
<tr>
<th>&nbsp;<!--corner--></th>
<th><span class="candidate-header">CrashPlan+</span></th>
<th><span class="candidate-header">Carbonite Home</span></th>
</tr>
<p>    <!-- Pricing --></p>
<tr>
<th colspan="3" class="header-row">Pricing</th>
</tr>
<tr>
<th>Month-to-Month Cost</th>
<td class="comparison-good">$5.00</td>
<td class="comparison-notGood">n/a</td>
</tr>
<tr>
<th>One-year Cost (and monthly equivalent)</th>
<td class="comparison-good">$49.99 ($4.17/mo)</td>
<td class="comparison-ok">$59.00 ($4.92/mo)</td>
</tr>
<p>    <!-- Retention --></p>
<tr>
<th colspan="3" class="header-row">File retention</th>
</tr>
<tr>
<th>Previous versions retention</th>
<td class="comparison-good">Forever!</td>
<td class="comparison-notGood">3 months</td>
</tr>
<tr>
<th>Versioning frequency; default / max</th>
<td class="comparison-good">every 15-minutes / every minute</td>
<td class="comparison-ok">Daily / on-demand</td>
</tr>
<p>    <!-- Drive Inclusion &#038; File Exclusion --></p>
<tr>
<th colspan="3" class="header-row">Inclusion &#038; Exclusion</th>
</tr>
<tr>
<th>Including Files on External Drives (e.g., USB)</th>
<td class="comparison-good">Yes</td>
<td class="comparison-notGood">3 months</td>
</tr>
<tr>
<th>Excluded files</th>
<td class="comparison-ok">&#8220;excluding temporary files and caches&#8221;</td>
<td class="comparison-bad">many file types, including: 3GP, AVI, EXE, ICO, KEY, LOG, MOV, MSC, REG, and VHD</td>
</tr>
<p>    <!-- Configurability --></p>
<tr>
<th colspan="3" class="header-row">Bandwidth</th>
</tr>
<tr>
<th>Scheduling, Throttling, and Pausing *</th>
<td class="comparison-notGood">3.5</td>
<td class="comparison-notGood">3.5</td>
</tr>
<tr>
<th>caveat</th>
<td class="comparison-good">&nbsp;</td>
<td class="comparison-bad">Carbonite may throttle your backup on their end!</td>
</tr>
<tr>
<th>File Prioritizing *<a href="#file-prioritizing">&#x2020;</a></th>
<td class="comparison-notGood">2</td>
<td class="comparison-good">4</td>
</tr>
<p>    <!-- User Interface --></p>
<tr>
<th colspan="3" class="header-row">User Interface</th>
</tr>
<tr>
<th>Are my files backed up? *</th>
<td class="comparison-notGood">3</td>
<td class="comparison-good">4.5</td>
</tr>
</table>
<p class="emphasized">* Rating is out of 5, where 5 is best.</p>
<p><!-- == h2 =============================================================== --></p>
<h2>Details</h2>
<h4>Pricing</h4>
<p>Carbonite Home is a very good value, period.</p>
<p>CrashPlan+, although only marginally cheaper, is an excellent value considering how much more data they keep for previous versions of your files. On top of that, they&#8217;ve had awesome promotions recently that brought their prices to a fraction of Carbonite&#8217;s.</p>
<h4>Previous Versions and Retention</h4>
<p>By default, Carbonite will backup your changed file <a href="http://carbonite.custhelp.com/app/answers/detail/a_id/1457/partner/carbonite">once every 24 hours</a>. They will then keep previous versions (including deleted files) <a href="http://carbonite.custhelp.com/app/answers/detail/a_id/1402/partner/carbonite">for 30 days</a>. You can also force a changed file to be backed up again immediately using the Carbonite submenu of its Windows Explorer shell extension.</p>
<p>CrashPlan, on the other hand, will backup your changed file within 15 minutes by default, but you can change this to <a href="http://support.crashplan.com/doku.php/recipe/backup_frequency">as frequently as every minute</a>! You can also choose how many copies will be kept from the last week, three months, year, and beyond. Further, <a href="http://support.crashplan.com/doku.php/faq/backup#how_long_are_deleted_files_retained">files you delete can be kept indefinitely</a>!</p>
<p>CrashPlan is the clear winner here, allowing you to not worry at all about whether your backup will be completely there for you.<br />
<h4>Inclusion and Exclusion</h4>
<h6>Including Files on External Drives (e.g., USB)</h6>
<p>With CrashPlan, you can choose to <a href="http://support.crashplan.com/doku.php/faq/mozy#can_i_back_up_my_external_hard_drive_thumb_drive">backup files on removable drives</a>; something you <a href="http://carbonite.custhelp.com/app/answers/detail/a_id/1386/partner/carbonite">can&#8217;t do with Carbonite Home</a>. The caveat is that that the drive must be attached at least once a month so that CrashPlan can verify you still have that data that you want backed up.</p>
<p>While Carbonite HomePlus will backup files on external drives, it&#8217;s only available for Windows users and <a href="http://www.carbonite.com/en/home/online-backup-pricing">not cost competitive</a>.</p>
<h6>File Exclusion</h6>
<p>CrashPlan backs up everything &#8220;excluding temporary files and caches.&#8221; This is great as long as none of your files <a href="http://support.crashplan.com/doku.php/articles/admin_excludes">look like temporary files or caches</a>; <em>a list that you cannot override</em>. The list is not problematic for me and unlikely to be for most others.</p>
<p>Carbonite excludes <a href="http://carbonite.custhelp.com/app/answers/detail/a_id/2738/partner/carbonite/default.php/session/L2F2LzEvdGltZS8xMzI2MDcxNjA2L3NpZC8zc3plKkZOaw%3D%3D">many file-types by default</a>, many of which can easily be personal files, and there&#8217;s no central place to change this. This is a significant annoyance to me because everything I keep in directories I&#8217;ve chosen for backup are files of mine that I want to keep and want backed up. The average user is likely not to learn of this before installation and may even not notice that some of their files aren&#8217;t backed up until it&#8217;s too late. At least it&#8217;s apparent within Windows Explorer which files are being excluded (more on this in the <a href="#user-interface">User Interface section</a>, below) and from each one you find you can remove that type from exclusion.</p>
<p><a href="https://getsatisfaction.com/carbonite/topics/warning_carbonite_ignores_files_at_random">Over many years, others have expressed the same sentiment</a>, yet Carbonite hasn&#8217;t changed this behavior and maintains minimal disclosure of this behavior. While not a big obstacle for me, it&#8217;s enough to make me think twice about recommending Carbonite to others.</p>
<p>Again, CrashPlan is the clear winner here. You still don&#8217;t have to worry at all about whether your backup will be completely there for you.</p>
<h4>Scheduling, Throttling, Pausing, Prioritization</h4>
<p>To me, these factors are mostly just important during the initial backup period, which could just be a matter of days, or several months.</p>
<p id="file-prioritizing">&#x2020; <span class="emphasized">Although Carbonite scores better here, Carbonite caps the backup speed, which means that your backup may take significantly longer. So, they need better configurability here more than CrashPlan does. More on this in the <a href="#carbonite-capping">Carbonite&#8217;s Capping</a> section, below.</span></p>
<h6>Scheduling</h6>
<p>When it comes to choosing when backups are allowing to run, both pretty much have just the essentials: create a daily time window (beginning and end hours) and choose the days of the week the window will be open. Carbonite was a little more thoughtful by adding an option that is essentially: &#8220;start at a particular time each day and run until finished.&#8221;</p>
<p>It would be nice to choose that backups simply go slower rather than not at all during the off hours. Maybe even give us advanced users a weekly grid by the hour (the seven days of the week on the y-axis, the 24 hours of the day on the x-axis) and let us choose &#8216;on&#8217;, &#8216;off&#8217;, or &#8216;throttled&#8217; for each hour.</p>
<h6>Throttling</h6>
<p>CrashPlan allows you to cap your sending rate, allowing you to choose a rate for while you&#8217;re &#8220;present&#8221; and another for while you&#8217;re &#8220;away&#8221; (although they don&#8217;t communicate what those mean very well).</p>
<p>Carbonite&#8217;s approach is to give you the ability to easily set it into &#8220;low priority&#8221; mode from the tray icon (but you can&#8217;t configure it and only <a href="http://www.carbonite.com/CustomerSupport/BrowseCategory.aspx?forumid=29#10">on their website</a> do they explain what &#8220;low priority&#8221; actually does, and even then it&#8217;s not very clear). I turn this on when I know there&#8217;s other browsing that may be going on that I don&#8217;t want to adversely affect too much.</p>
<p class="emphasized">However, Carbonite will also cap your rate of backup more the further along you get (more on this, <a href="#carbonite-capping">below</a>)! At some point, you may not even need to throttle yourself.</p>
<h6>Pausing</h6>
<p>The ability to pause is important to me because I make Skype and VOIP calls fairly frequently. Others may find it important for playing games or uploading photos and videos.</p>
<p>Carbonite edges out here slightly because it has some nice small periods to choose from, like 10 and 30 minutes. It&#8217;s too bad neither allow you to enter a specific amount of time.</p>
<h6>Prioritizing</h6>
<p>Carbonite allows you to choose specific files to be backed up before others. Simply right-click on it and choose &#8216;Back up this file as soon as possible&#8217; in the Carbonite shell-extension submenu. I use this often to backup my newest files first; the ones that haven&#8217;t made it onto my external hard-drive backup, yet. The UI to do so can be a little quirky, though.</p>
<p>In order to prioritize some files to be backed up before others in CrashPlan, you need to use <a href="http://support.crashplan.com/doku.php/recipe/creating_backup_sets?">Backup Sets</a>. While Backup Sets is great for grouping files to be backed up to different destinations (viz., CrashPlan&#8217;s servers vs external storage vs a friend), I don&#8217;t see this as a reasonable way to prioritize files backup up to CrashPlan&#8217;s servers</p>
<h4 id="user-interface">User Interface / User Experience</h4>
<p>Here&#8217;s what&#8217;s important to me in an realtime backup User Interface :</p>
<ul>
<li>Are the files that I want to be backed up backed up?</li>
<li>Can I get to the backed-up copies of my files?</li>
</ul>
<p>What I like most about Carbonite is that they place a small indicator on every file and folder that is backed up (a green circle) or will be backed up (a yellow circle indicating in-progress). Just while browsing your own files you know that your files are (or will be) backed up.</p>
<p>Further, you can get to information about a file&#8217;s backup by right-clicking on it, and choosing &#8216;Properties&#8217; within the Carbonite sub-menu. There you can see when it was last backed-up, and choose to back it up first if it needs to be.</p>
<p>When it comes to CrashPlan, if want assurance that your files are backed up, you&#8217;ll have to audit the file restore area.</p>
<p>Overall, both seem to barely get the job done. The UI works enough, full of quirks and not short of annoyances. Both have shown wrong information; CrashPlan has said &#8220;Less than a minute remaining&#8221; when it obviously has much more to go (probably hadn&#8217;t finished determining what files need to be backed up), while with Carbonite I&#8217;ve seen it say both &#8220;backup is up-to-date&#8221; and &#8220;backup is pending&#8221; at the same time.</p>
<h6>Cosmetic</h6>
<p>You&#8217;ll rarely win points with me creating a custom-skin for your app. It&#8217;s difficult to deviate from standard UI of the OS and create something that looks and feels professional. More importantly, such apps usually have usability shortcomings that would not have been present had effort been directed to making a more usable UI than a custom one.</p>
<p>For example, Carbonite&#8217;s Restore UI can&#8217;t be resized, nor can the upper area be given more space within the UI. So, you&#8217;re only able to see about 11 files in the Search Results at a time.</p>
<p>On a couple occassions, CrashPlan&#8217;s UI failed to clean up the canvas, resulting in a view with overlapping elements.</p>
<p><!-- == h2 =============================================================== --></p>
<h2 id="carbonite-capping">Carbonite&#8217;s Capping</h2>
<p>Carbonite Home users&#8217; <a href="http://carbonite.custhelp.com/app/answers/detail/a_id/1440/partner/carbonite">backup speed is capped</a> to 2 mbps for the first 35 GB, 512 kbps for the next 165 GB (200 GBs total), and then 100kbps for all data beyond 200 GB. At best, 250 GB would take over 11 weeks for the initial backup to complete. Add roughly 1 day per gigabyte and 300 GB would take over four months.</p>
<p>With their contempt for the safety our data that we&#8217;re paying them to protect, I have a hard time feeling anything more positive than animosity toward Carbonite for their bandwidth capping. The little money they&#8217;re saving in bandwidth and storage in the short term is costing them in rapport.</p>
<p><!-- == h2 =============================================================== --></p>
<h2>A couple notes about CrashPlan</h2>
<h4>Backup to Friends</h4>
<p>This is a nice bonus to an already-great value! Instead of or in addition to backing up to CrashPlan&#8217;s servers, you can <a href="http://support.crashplan.com/doku.php/getting_started/back_up_to_a_friend">securely backup data to friends and family</a> that have CrashPlan installed.</p>
<p>For my mom who has a very small amount of data, we use CrashPlan Free and have her data backed up to a couple of us rather than buying another subscription for her.</p>
<h4>The Family Plan</h4>
<p>The Family plan could have made a great value an unbelievable one, but there&#8217;s a caveat: <a href="http://support.crashplan.com/doku.php/recipe/backing_up_your_family">Everyone in the plan shares one login, and everyone can access everyone else&#8217;s backed-up files</a>. We love each other, but that doesn&#8217;t mean we are all okay with each other being able to read all of our files! I opted for us to each have our own subscription.</p>
<h4>Impact on computer performance</h4>
<p>It&#8217;s difficult to be sure about this type of thing, but it <em>seemed</em> like my computer performance was slower with CrashPlan installed, and was better when I uninstalled it. Further, the CrashPlan service managed to rack up the most CPU Time (according to Process Explorer) despite that:</p>
<ul>
<li>I only had CrashPlan set up as a backup destination for my mom&#8217;s data; it wasn&#8217;t even backing up my data, and</li>
<li>as a software developer, I have a lot of other demanding software running on my computer.</li>
</ul>
<h4>Comfort</h4>
<p>CrashPlan has built a well-featured service at an excellent price, but if the program&#8217;s UI, the website, and unsigned executables are a hint at what&#8217;s going on under the hood and at the data center side, it&#8217;s a little hard to feel completely comfortable that our data are in good hands with them.</p>
<p>The website overuses javascript, slowing down the site on mobile devices and causes it to be just about completely broken in Opera. I had a bit of discomfort going through the amateurish-feeling purchase path, and then once in the account console, certain actionable &#8220;hyperlinked&#8221; items don&#8217;t do anything.</p>
<p><!-- == h2 =============================================================== --></p>
<h2>Recommendation</h2>
<p>Simply put, I&#8217;d recommend CrashPlan over Carbonite.</p>
<p>The one thing I really like and that&#8217;s clearly better about Carbonite is it&#8217;s shell integration, which gives a lot of peace-of-mind that each file is backed up. That peace of mind can take a long while to arrive with their capping, though. Right now, that capping is limiting Carbonite to less than 5% of my upload bandwidth, forcing me to keep my laptop on 24/7 for several additional months to complete the initial backup so that they can save a little money. Further, having to override excluded file-types one-by-one is another significant annoyance to me and not something I think most people should have to worry about and work around. Those make me averse to recommending them.</p>
<p>CrashPlan, meanwhile, offers tremendously more value by storing all your files longer with less hassle while also throwing in features like backing up to friends. Their user interfaces makes me a little less comfortable with them, but not enough that I&#8217;m worried that they won&#8217;t deliver when it comes to what&#8217;s most important: a complete restore in the event of a drive failure or loss. Which brings me to &#8230;</p>
<h4>&#8230; one final note</h4>
<p>With both services, I can only assume that our data is as secure as it&#8217;s supposed to be (that they&#8217;re doing what they say they&#8217;re doing, and that their implementation doesn&#8217;t have security flaws). And at this point, I can also only assume that a full backup would be a smooth process (I hope Carbonite doesn&#8217;t limit restore bandwidth!).</p>
]]></content:encoded>
			<wfw:commentRss>http://robertlathanh.com/2012/01/my-experience-with-carbonite-home-and-crashplan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logging Levels</title>
		<link>http://robertlathanh.com/2011/09/333/</link>
		<comments>http://robertlathanh.com/2011/09/333/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 16:15:11 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://robertlathanh.com/?p=333</guid>
		<description><![CDATA[Trace/Verbose Use this logging level to help you develop or find bugs in something you&#8217;re currently working on, and when the information being logged is not useful once the current task is done. So, trace logging should usually be removed &#8230; <a href="http://robertlathanh.com/2011/09/333/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>Trace/Verbose</h3>
<p>Use this logging level to help you develop or find bugs in something you&#8217;re currently working on, and when the information being logged is not useful once the current task is done. So, trace logging should usually be removed when the task is done, which often means that it should not be committed. Pair this with &#8216;<a href="http://robertlathanh.com/2011/09/a-system-for-getting-the-most-out-of-todo-comments-in-code/">TODO-XXXX</a>&#8216; to help prevent accidental commits.</p>
<h3>Debug</h3>
<p>Debug logging provides information that might be useful to developers while they&#8217;re working on other tasks (related or unrelated). Examples might include &#8220;The client&#8217;s session has been cleared because they logged out,&#8221; or &#8220;A feature has been hidden because a camera was not detected on this device.&#8221;<br />
<span id="more-333"></span></p>
<h3>Info</h3>
<p>Info provides information that is likely to be useful in a production environment, or in the case of client apps, information that might be useful to developers of other apps. Info logging might tell us that initialization has been completed, help identify that a particular web server is misbehaving (perhaps by the lack of certain info statements appearing), or help look into issues that are only happening in production.</p>
<p>In a web application, info might tell us about the things we want to know are occurring during normal operation, such as the user accounts being created or 3rd-party account connections being created.</p>
<p>In a client application (such as one on Android or iPhone), info might help others understand what&#8217;s going on in your application when they interact with it. For example, &#8220;A request was made by application &#8216;Example Application&#8217; for user authentication, but the user denied it.&#8221;</p>
<h3>Warn</h3>
<p>Warn indicates that an abnormal condition occurred, but it&#8217;s not necessarily unexpected or unreasonable. It could indicate something like a bad ID was provided in the URL or that a call to a 3rd-party API failed. Such occurrences are not usually the result of a bug or coding error. Logging them is often to help us see when people, their browsers, or other websites are misbehaving, or to help us identify where we might want to add some more friendly error-handling.</p>
<h3>Error</h3>
<p>Error indicates a bug. For example, an if/else block might have handled all four possible values for a variable, a developer added a fifth possible value elsewhere, but didn&#8217;t add code to the if/else block to handle that value here.</p>
]]></content:encoded>
			<wfw:commentRss>http://robertlathanh.com/2011/09/333/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A system for getting the most out of &#8220;TODO&#8221; comments in code</title>
		<link>http://robertlathanh.com/2011/09/a-system-for-getting-the-most-out-of-todo-comments-in-code/</link>
		<comments>http://robertlathanh.com/2011/09/a-system-for-getting-the-most-out-of-todo-comments-in-code/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 15:57:44 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://robertlathanh.com/?p=316</guid>
		<description><![CDATA[Annotating code with &#8220;TODO&#8221; can help remind us what code needs attention. It&#8217;s easy, however, for them to build up, get out of hand, and no longer be useful. Below is a system I came up with to keep TODOs &#8230; <a href="http://robertlathanh.com/2011/09/a-system-for-getting-the-most-out-of-todo-comments-in-code/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style>
h3 { padding-bottom: 6px; }
h5 { padding-bottom: 6px; font-weight: bold; text-decoration: underline; }
ul { padding-top: 2px }
.todo { font-weight: bold; text-decoration: underline; }
</style>
<p>Annotating code with &#8220;TODO&#8221; can help remind us what code needs attention. It&#8217;s easy, however, for them to build up, get out of hand, and no longer be useful.</p>
<p>Below is a system I came up with to keep TODOs useful. Some of what I like about it are that:</p>
<ul>
<li>It is based on the basic use of the &#8220;todo&#8221; string in comments. By retaining the use of the &#8220;todo&#8221; string, all uses are automatically highlighted for those who environments are set up to by default (including many or most IDEs)</li>
<li>When searching or filtering, the search or filter will also automatically include higher urgency items.</li>
</ul>
<p><span id="more-316"></span></p>
<h3 class="todo" style="color: #0000ff;">TODO</h3>
<p>The plain vanilla TODO, this simply indicates something that should be improved or optimized, but low priority. Fix this if you happen to be working on something related or nearby.</p>
<p><em>Impact on user experience:</em> minimal to no impact.</p>
<h5>Examples</h5>
<ul>
<li>reducing from three non-I/O-bound iterations to one.</li>
<li>a hacky use of HTML to lay things out</li>
</ul>
<p>Whether or not this level of TODO is actually useful may vary from team to team. At Goodreads, we have a policy that all TODOs should have a ticket in our bug tracker (more on that below), so the question becomes &#8220;If it&#8217;s not worth creating a ticket for, there shouldn&#8217;t be a TODO here cluttering the code.&#8221;</p>
<h3 class="todo" style="color: #0000ff;">TODO-X</h3>
<p>Something that should be improved or optimized, with a bit more urgency</p>
<p><em>Impact on user experience:</em> theoretically-noticeable (e.g., could impact site performance) to minor impact</p>
<h5>Examples</h5>
<ul>
<li>code that should do one bulk operation instead of many single operations</li>
<li>too much whitespace on the page</li>
</ul>
<h3 class="todo" style="color: #cccc33">TODO-XX</h3>
<p>Code that I don&#8217;t like but has to be that way for now because of time constraints.<br />
<em>-or-</em><br />
Code that needs to be kept around temporarily for compatibility and should be removed/adjusted after the next release (and should have minimal to no impact if it doesn&#8217;t get removed right away).</p>
<p><em>Impact on user experience:</em> May be noticed/experienced or impact performance</p>
<h5>Examples</h5>
<ul>
<li>the code lacks graceful error handling (that occurs often enough to matter)</li>
</ul>
<h3 class="todo" style="color: red">TODO-XXX</h3>
<p><em>Code that should not go live!</em> I only commit this code when I just want my incomplete work &#8216;saved&#8217; or I want to commit it so others can work with what I&#8217;ve got so far, <em>and</em>:</p>
<ul>
<li>I can fix it before it gets released, or </li>
<li>I know that it will not impact users (i.e., undiscoverable / soft launch) if it ends up going out.</li>
</ul>
<h5>Examples</h5>
<p>I&#8217;ve started writing a new API call, and it will be someone else who finishes it, tests it, and writes the client code that will hit it. Nobody else will hit this code until he&#8217;s done, so I&#8217;ll mark this code with TODO-XXX, commit it, and let him know to take care of the &#8216;TODO-XXX&#8217; before it goes live.</p>
<h5>Notes</h5>
<p>IntelliJ can be configured to warn you if you try to commit code containing this pattern (which also includes the next pattern). More on this below.</p>
<h3 class="todo" style="color: red">TODO-XXXX</h3>
<p><em>Code that should not be commited!</em> Use this to mark unfinished code that would impact the user experience or to mark code that you&#8217;ve modified temporarily just for development/testing (I also put files with such code into a &#8216;NO COMMIT&#8217; <a href="http://svnbook.red-bean.com/en/1.6/svn.advanced.changelists.html">SVN changelist</a> if it only contains no-commit changes)</p>
<h5>Notes</h5>
<p>Use a <a href="http://svnbook.red-bean.com/en/1.6/svn.ref.reposhooks.pre-commit.html">pre-commit hook</a> to disallow this pattern from being committed.</p>
<h2>Some More Notes</h2>
<ul>
<li>When searching/filtering, you get higher urgency items for free! e.g., a search for &#8220;TODO-XX&#8221; will also show you TODO-XXX and TODO-XXXX items.</li>
<li>While I always check for &#8216;XXX&#8217; or higher before I commit, I also often go through the &#8216;XX&#8217; ones, too. &#8220;Is there anything I should be taking care of with this commit?&#8221;</li>
<li>For the first three (TODO through TODO-XX) I don&#8217;t think it&#8217;s easy or valuable to put much effort<br />
into making formal rules &#8212; it&#8217;s more about how bad you feel about releasing that code =)</li>
<li>I&#8217;ve set up IntelliJ to highlight &#8216;XXX&#8217; and &#8216;XXXX&#8217; in comments as colored above (with colored marks in my scrollbar), so that such lines look like compiler/interpreter warnings and errors.</li>
</ul>
<h2>Issue Tracking</h2>
<p>To further abate the number of TODOs growing out of hand, you can also require a TODO to also have a issue-tracker ticket number, and have that be part of the TODO markup. For example, &#8220;TODO-512-XX&#8221;. So, again, &#8220;If it&#8217;s not worth creating a ticket for, there shouldn&#8217;t be a TODO here cluttering the code.&#8221; A pre-commit script could disallow TODOs that don&#8217;t have a ticket number in it.</p>
<h2>Using this TODO system with IntelliJ</h2>
<p>Two easy changes to IntelliJ configuration will allow us to:</p>
<ul>
<li>Easily filter for &#8220;XXX&#8221; TODOs</li>
<li>be warned when trying to commit files with &#8220;TODO-XXX&#8221;</li>
</ul>
<ol>
<li>Open up the &#8216;TODO&#8217; window by press ALT-6 or COMMAND-6.</li>
<li>Click on the &#8216;Filter&#8217; icon (which looks like a funnel), and choose &#8220;Edit Filters&#8221;</li>
<li>Click &#8216;Add&#8217; in the &#8216;Patterns&#8217; panel</li>
<li>For the &#8216;Pattern&#8217;, enter &#8220;XXX+&#8221;</li>
<li>Uncheck &#8220;Use color scheme TODO default colors&#8221; and choose red or purple for the &#8216;Foreground&#8217; and &#8216;Error Stripe Mark&#8217; colors, and then click &#8216;OK&#8217;</li>
<li>Click &#8216;Add&#8217; in the &#8216;Filters&#8217; panel</li>
<li>For the &#8216;Name&#8217;, enter &#8220;XXX&#8221; and choose the &#8220;XXX+&#8221; pattern</li>
</ol>
<p>Next time in the &#8216;Commit Changes&#8217; menu, under the &#8220;Before Commit&#8221; options:</p>
<ul>
<li>Check the &#8216;Check TODO&#8217; checkbox</li>
<li>Choose the &#8220;XXX&#8221; filter</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://robertlathanh.com/2011/09/a-system-for-getting-the-most-out-of-todo-comments-in-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing the Google Android USB driver to work with the NOOK Color ADB on Windows</title>
		<link>http://robertlathanh.com/2011/08/fixing-the-google-android-usb-driver-to-work-with-the-nook-color-adb-on-windows/</link>
		<comments>http://robertlathanh.com/2011/08/fixing-the-google-android-usb-driver-to-work-with-the-nook-color-adb-on-windows/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 02:38:23 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://robertlathanh.com/?p=297</guid>
		<description><![CDATA[Symptoms When attaching a Barnes &#038; Noble NOOK Color to a Windows computer for app development, Windows is not able to automatically install a device driver that allows ADB to communicate with the NOOK Color. You may see a message &#8230; <a href="http://robertlathanh.com/2011/08/fixing-the-google-android-usb-driver-to-work-with-the-nook-color-adb-on-windows/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style>
  h2 {
    border-bottom: medium double #333333;
  }
  h5 {
    font-weight: bold;
  }
  .commandPrompt {
    padding: 8px;
    margin: 16px;
    border: medium solid #cccccc;
    background-color: black;
    color: white;
    font-family: Consolas, monospace;
    font-size: x-small;
  }
  .quotedCode {
    background-color: #e7e7e7;
  }
  .quotedCode:before {
    content: "'";
    background-color: white;
  }
  .quotedCode:after {
    content: "'";
    background-color: white;
  }
</style>
<h2>Symptoms</h2>
<p>When attaching a Barnes &#038; Noble NOOK Color to a Windows computer for app development, Windows is not able to automatically install a device driver that allows ADB to communicate with the NOOK Color.</p>
<p>You may see a message similar to the following:</p>
<blockquote><p>&#8220;Device driver software was not successfully installed&#8221; (with details: &#8220;No driver found&#8221;)</p></blockquote>
<p>Further, once the driver is installed, the NOOK Color may not show up in the ADB list of devices.</p>
<h2>Resolution</h2>
<p>With a small amount of driver hacking, you can get the standard Google Android USB driver to work with the NOOK Color. The modification you&#8217;ll make is clear; no downloading and installing of driver packages or batch files from spurious sources.<br />
<span id="more-297"></span></p>
<h3>Prerequisites</h3>
<ul>
<li>You have Google Android SDK and the Google USB Driver.<br/><br />
Directions for downloading the Google USB driver are here: <a href="http://developer.android.com/sdk/win-usb.html">http://developer.android.com/sdk/win-usb.html</a> (Do not follow the instructions for &#8220;Installing the USB Driver&#8221;, yet!)</li>
</ul>
<h3>Steps</h3>
<p>Assuming your Android SDK is at <code>C:\android-sdk-windows\</code>&#8230;</p>
<h5>1. Modify the USB Driver INF to recognize the NOOK Color</h5>
<ol>
<li>Open the USB Driver INF, <code>C:\android-sdk-windows\extras\google\usb_driver\android_winusb.inf</code>, in a text editor.</li>
<li>Add the following lines anywhere in both of the &#8220;<code>[Google.NTx86]</code>&#8221; and &#8220;<code>[Google.NTamd64]</code>&#8221; sections (yes, add these lines twice):<br />
<code><br />
<blockquote>;B &#038; N Nook Color<br />
%SingleAdbInterface%        = USB_Install, USB\VID_2080&#038;PID_0002<br />
%CompositeAdbInterface%     = USB_Install, USB\VID_2080&#038;PID_0002&#038;MI_01</p></blockquote>
<p></code></li>
<li>Save the file</li>
</ol>
<h5>2. Tell Windows to use this driver for your NOOK Color</h5>
<p>Follow the &#8220;Installing the USB Driver&#8221; directions at: <a href="http://developer.android.com/sdk/win-usb.html">http://developer.android.com/sdk/win-usb.html</a>, with the following adjustments&#8230;</p>
<ul>
<li>If you&#8217;re following steps where it says to locate the device (such as &#8220;Android Phone&#8221;), you should find the device as &#8220;NookColor&#8221; under &#8220;Other Devices.&#8221;</li>
<li>Windows will show a warning along the lines of &#8220;Windows can&#8217;t verify the publisher of this driver software.&#8221; Click to &#8220;Install this driver software anyway&#8221;; this is simply because we modified the driver slightly to recognize the NOOK Color as an Android device. (You can find a similar message about this warning on the above Android page that corroborates this.)</li>
</ul>
<p>Your NOOK Color should now be recognized by Windows!</p>
<h5>3. Getting ADB to recognize your NOOK Color</h5>
<p>We simply need to add the B&#038;N vendor ID to the list of IDs that ADB recognizes as vendors that make Android devices.</p>
<p>In the &#8216;<code>.android</code>&#8216; directory at the root of your home directory (e.g., &#8220;<code>C:\Users\rlathanh\.android\</code>&#8221; create a file named &#8216;<code>adb_usb.ini</code>&#8216; with the following text (or add the text on a new line):<br />
<code><br />
<blockquote>0x2080</p></blockquote>
<p></code></p>
<p>Your NOOK Color should now be recognized by ADB!</p>
]]></content:encoded>
			<wfw:commentRss>http://robertlathanh.com/2011/08/fixing-the-google-android-usb-driver-to-work-with-the-nook-color-adb-on-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error 1327 &#8220;Invalid Drive&#8221; while installing or updating applications in Windows</title>
		<link>http://robertlathanh.com/2011/01/error-1327-invalid-drive-while-installing-or-updating-applications-in-windows/</link>
		<comments>http://robertlathanh.com/2011/01/error-1327-invalid-drive-while-installing-or-updating-applications-in-windows/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 20:14:56 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Windows Tech Support]]></category>

		<guid isPermaLink="false">http://robertlathanh.com/?p=217</guid>
		<description><![CDATA[Symptoms When trying to install or update an application, you receive an error message similar to the following: Error 1327. Invalid Drive: Z: I&#8217;ve encountered this error installing Google Earth and another application, and it also apparently happens with many &#8230; <a href="http://robertlathanh.com/2011/01/error-1327-invalid-drive-while-installing-or-updating-applications-in-windows/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<style>
  h2 {
    border-bottom: medium double #333333;
  }
  .commandPrompt {
    padding: 8px;
    margin: 16px;
    border: medium solid #cccccc;
    background-color: black;
    color: white;
    font-family: Consolas, monospace;
    font-size: x-small;
  }
  .quotedCode {
    background-color: #e7e7e7;
  }
  .quotedCode:before {
    content: "'";
    background-color: white;
  }
  .quotedCode:after {
    content: "'";
    background-color: white;
  }
</style>
<h2>Symptoms</h2>
<p>When trying to install or update an application, you receive an error message similar to the following:</p>
<div style="background-color: #ccccff; border: thin solid#9999cc; color: #000033; padding: 8px; margin: 16px">
Error 1327. Invalid Drive: Z:
</div>
<p>I&#8217;ve encountered this error installing Google Earth and another application, and it also apparently happens with many others including Microsoft and Adobe applications.</p>
<h2>Cause</h2>
<p>These installers/updaters are failing to access the drive that one of your shell folders is on &#8212; probably your Personal folder, &#8216;My Documents&#8217;. This could be because:<span id="more-217"></span></p>
<ol>
<li>the hard drive is no longer attached or isn&#8217;t recognized by the system, or the drive was a mapped network drive that is no longer mapped,</li>
<li>it&#8217;s a network folder / mapped drive on a computer or server that is not currently available, or</li>
<li>it&#8217;s a network folder / mapped drive that the installer/updater doesn&#8217;t have access to.</li>
</ol>
<h2>Resolutions</h2>
<h3>Cause 1: the drive is no longer attached or mapped</h3>
<p>Reattach the hard drive or map the folder back to the drive. If you need help with these, ask your administrator or local geek.</p>
<p>Alternatively, update the registry to point your shell folder to a location that exists on a drive that exists. You may follow the directions at either <a href="http://support.microsoft.com/kb/327763">Microsoft</a> or <a href="http://kb2.adobe.com/cps/404/kb404946.html">Adobe</a> for updating your registry (they are essentially identical).</p>
<h3>Cause 2: The network folder is on a computer or server that is not currently available</h3>
<p>Try again when the server is available (or see #1 above).</p>
<h3>Cause 3: The installer/updater doesn&#8217;t have access to the network folder / mapped drive</h3>
<div style="background-color: #ccffcc; border: thin solid #99cc99; color: #003300; padding: 8px; margin: 16px">
Ok, so this is really why I wrote this article. The second time I encountered this problem I had forgotten that this was the cause and how to fix it. It&#8217;s seldom mentioned, and it took me a little while to find the solution even the second time around&#8230;
</div>
<p>The drive that your shell folder (again, probably &#8216;My Documents&#8217;) is on is a mapped network drive and is connected using your own user account. However, the application installer/updater is running as the Administrative user, which does not have access to your mapped network drives (even if you are an administrative user).</p>
<p>The way to resolve this is simple, seamless, and temporary. Let&#8217;s say that the network folder is <code class="quotedCode">\user\Robert LaThanh</code> on a server named <code class="quotedCode">FileServer</code> (so the full path would be <code class="quotedCode">\\FileServer\user\Robert LaThanh</code>), and it&#8217;s mapped to the <code class="quotedCode">Z:</code>&#8216;drive. We&#8217;ll confirm these first (step #2)&#8230;</p>
<ol>
<li>Run the Command Prompt as Administrator.
<ol>
<li>Click on the Windows Logo (Start Menu)</li>
<li>Type &#8216;Command Prompt&#8217;</li>
<li>Right-click on the &#8216;Command Prompt&#8217; shortcut and choose &#8220;Run as administrator&#8221;</li>
<li>Click &#8220;Yes&#8221; in the User Account Control security dialog to allow the Command Prompt to run</li>
</ol>
</li>
<li>Let&#8217;s verify that the drive is mapped but unavailable to the Administrator by typing <code class="quotedCode">net use</code> at the command prompt. If this is the case, your output will look like this:
<pre class="commandPrompt" style="font-size: smaller; line-height: 100%">
C:\Windows\system32&gt;net use
New connections will be remembered.

Status       Local  Remote                            Network
-------------------------------------------------------------------------------
Unavailable  Z:     \\FileServer\user\Robert LaThanh  Microsoft Windows Network
The command completed successfully.</pre>
</li>
<li>Remap the network folder as Administrator by typing <code class="quotedCode">net use Z: "\\FileServer\user\Robert LaThanh"</code>. (The double-quotes aren&#8217;t necessary if the network path does not contain any spaces.)
<pre class="commandPrompt" style="font-size: smaller; ">
C:\Windows\system32&gt;net use Z: "\\FileServer\user\Robert LaThanh"
The command completed successfully.
</pre>
</li>
</ol>
<h4>That&#8217;s it!</h4>
<p>Your installer/updater should now work. This won&#8217;t affect your ability to use that drive, and once you reboot, you&#8217;re back to normal.</p>
]]></content:encoded>
			<wfw:commentRss>http://robertlathanh.com/2011/01/error-1327-invalid-drive-while-installing-or-updating-applications-in-windows/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>AT&amp;T U-verse for the Curious Consumer &#8211; The Residential Gateway and Wiring Options</title>
		<link>http://robertlathanh.com/2011/01/att-u-verse-for-the-curious-consumer-the-residential-gateway-and-wiring-options/</link>
		<comments>http://robertlathanh.com/2011/01/att-u-verse-for-the-curious-consumer-the-residential-gateway-and-wiring-options/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 09:55:03 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Personal Technology]]></category>

		<guid isPermaLink="false">http://robertlathanh.com/?p=162</guid>
		<description><![CDATA[AT&#38;T U-verse is an Internet, TV (IPTV), and phone (VOIP) service delivered primarily by fiber and existing copper. This article is targeted at consumers who would like a little bit of light shed on the in-home hardware (what it does, &#8230; <a href="http://robertlathanh.com/2011/01/att-u-verse-for-the-curious-consumer-the-residential-gateway-and-wiring-options/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>AT&amp;T U-verse is an Internet, TV (IPTV), and phone (VOIP) service delivered primarily by fiber and existing copper. This article is targeted at consumers who would like a little bit of light shed on the in-home hardware (what it does, how it works, and the different ways it can be set up) and wiring options.<br />
<span id="more-162"></span></p>
<div style="background-color: #cccccc; border: thin solid#666666; color: #333333; padding: 8px; margin: 16px;">If instead you&#8217;re looking to learn more about &#8230;</p>
<ul>
<li>&#8230; the U-verse offering, visit the <a href="http://www.att.com/u-verse">AT&amp;T U-verse website</a></li>
<li>&#8230; the technology behind U-verse, see the <a href="http://en.wikipedia.org/wiki/AT%26T_U-verse">AT&amp;T U-verse article on Wikipedia</a></li>
<li>&#8230; how the 2Wire 3800HGV-B deals with public/static IP addresses on your local area network, see my other article: <a href="http://robertlathanh.com/2009/08/att-u-verse-a-network-geeks-perspective/">AT&amp;T U-verse &#8212; A Network Geek&#8217;s Perspective</a></li>
</ul>
</div>
<h3>A Quick Look at How U-verse Usually Makes it to Your Home</h3>
<p>AT&amp;T primarily uses optical fiber as the data pipeline to deliver all of these services to your neighborhood. Somewhere in your neighborhood there will be a <a href="http://en.wikipedia.org/wiki/Video_ready_access_device">VRAD</a>, a cabinet with equipment responsible for distributing the services to each of the nearby homes using the existing copper phone lines running to those homes. That is, fiber is the pipeline to the neighborhood VRAD, and then existing copper is used from there to your home. This is the most common setup and is called fiber-to-the-node (FTTN), illustrated below.<br />
<img class="alignnone size-full wp-image-23" title="AT&amp;T U-verse" src="http://robertlathanh.com/wp-content/uploads/2009/09/FTTN.png" alt="AT&amp;T U-verse" width="609" height="352" /></p>
<p>The total bandwidth over the copper between the VRAD and your home (which is usually <a href="http://en.wikipedia.org/wiki/VDSL">VDSL</a>) is up to 24Mbps down and 3 Mbps up. TV (while you&#8217;re watching or recording) will use up to 7 Mbps of that bandwidth, and phone calls use a negligible amount. Your Internet throughput may be limited by the service level you pay for or by the line quality/distance with the VRAD.</p>
<h3>Introducing the 2WIRE 3800HGV-B Residential Gateway</h3>
<p>The device they provide, a 2Wire 3800HGV-B &#8220;Residential Gateway&#8221;, is responsible for a lot:</p>
<ul>
<li><strong>VDSL/ADSL2+ modem</strong>: The built-in modem connects to and communicates with the neighborhood VRAD. TV, Internet, and phone are all IP-based and go through this modem (usually). This modem works with either the RJ-11 &#8220;Phone Line&#8221; jack or the coax &#8220;Cable Line.&#8221;</li>
<li><strong>TV</strong>: Mostly just passes IPTV through from the WAN (the outside/modem connection) to the set-top boxes. The connection to the set-top boxes may either be over coax or existing Ethernet cabling / LAN.</li>
<li><strong>Phone</strong>: Providing VOIP-based phone service to the home. Internal hardware allows plain-old-telephones to be hooked up to the device (over your existing phone wiring) and calls are made and received just as they were before.</li>
<li><strong>Internet</strong>: Much like many existing DSL and cable modems/gateways, provides Internet for your computers and other devices using your wired Ethernet network, its Wi-Fi capability, or HomePNA over coax. It may perform routing, NAT, firewalling, DHCP, DNS, and more.</li>
</ul>
<p>You might notice that there are a couple ways for U-verse service to get into this device &#8212; coax &#8220;Cable Line&#8221;, RJ-11 &#8220;Phone Line&#8221;, and the not-yet-mentioned WAN &#8220;Broadband&#8221; port. Then, there are two ways for TV to come out &#8212; coax cable and local Ethernet. And then there&#8217;s networking over Ethernet, Wi-Fi, or HomePNA. So, the device is <em>very</em> flexible; designed to make it easy to work with just about whatever current wiring you already have.</p>
<h3>A Close Look at the 3800HGV-B&#8217;s Connectors</h3>
<p><a href="http://robertlathanh.com/wp-content/uploads/2011/01/2Wire-3800HGV-B-rear.jpg"><img class="aligncenter size-full wp-image-166" title="A view of the back of the 2Wire 3800HGV-B used by AT&amp;T U-verse" src="http://robertlathanh.com/wp-content/uploads/2011/01/2Wire-3800HGV-B-rear.jpg" alt="rear of the 2Wire 3800HGV-B Residential Gateway" width="600" height="268" /></a></p>
<ol>
<li><strong>Power</strong> &#8211; Instead of the usual, plain AC/DC adapter, they&#8217;ll provide an AC/DC adapter with batteries. This helps ensure that the gateway continues to function during a power outage so that you&#8217;ll be able to make phone calls.</li>
<li><strong>Reset</strong> &#8211; A reset button to reboot the device, or to restore all settings to default.</li>
<li><strong>Cable Line</strong> &#8211; May be used for either:
<ul>
<li><em>Outbound TV</em>: If U-verse is coming in through the Phone Line or Broadband port, then this will probably be how TV is delivered to the U-verse set-top boxes (STBs), because coax cable will probably be what already runs to TV locations.</li>
<li><em>Inbound U-verse</em>: If U-verse is coming in to the home using coax cable, then this will be the DSL modem port. I think a splitter will be used if coax will also be used with the set-top boxes.</li>
</ul>
</li>
<li><strong>USB PC</strong> &#8211; A USB network interface allowing you use the Internet over USB instead of Ethernet on your PC or other devices. Very atypical.</li>
<li><strong>Local Ethernet</strong> &#8211; May be used for either or both:
<ul>
<li><em>Internet for LAN</em> &#8211; Internet to other Ethernet-capable devices (PCs, game consoles, Blu-ray players, etc.)</li>
<li><em>TV</em> &#8211; An alternative to (or in addition to) using the <strong>Cable Line (3)</strong>, TV can be delivered to the U-verse set-top boxes over Ethernet/LAN.</li>
</ul>
</li>
<li><strong>Broadband</strong> &#8211; An alternative to using the modem (<strong>Phone Line (7)</strong> or <strong>Cable Line (3)</strong> connectors). If another device is used as the modem or if U-verse broadband is delivered to the premises another way (e.g., Fiber-to-the-building in large multi-family buildings), then one may feed the broadband to the device this way, and this device acts as just a gateway instead of a modem and gateway.</li>
<li><strong>Phone Line</strong> (in) &#8211; This is the RJ-11 DSL modem port (inbound U-verse).</li>
<li>to <strong>Phones</strong> (out) &#8211; Connects to plain old telephones in the home (usually by simply plugging into the existing phone wiring).</li>
<li>(not pictured) <strong>Wi-Fi</strong> &#8211; Wireless Internet to Wi-Fi devices (PCs, game consoles, Blu-ray players, mobile phones, etc.)</li>
</ol>
<h3>My setup</h3>
<p>Here&#8217;s what you can see is hooked up to this device in the photo above:</p>
<ul>
<li><strong>7. Phone Line</strong> (in) &#8211; Pretty much wired directly to the U-verse VRAD (technically, via my jack to the demarc/MPOE, which is wired to the VRAD through a cross-connect box; or service area interface (SAI)).</li>
<li><strong>8.</strong> to <strong>Phones</strong> (out) &#8211; wired to all of the phone jacks (and thus phones themselves) in the home (using a 110 block as an oversized splitter).</li>
<li><strong>5. Local Ethernet</strong>
<ul>
<li>One to my &#8220;Internet&#8221; switch, to which some personal servers are connected (routed; I have a public/static IP block)</li>
<li>One to my &#8220;intranet&#8221; switch, to which workstations are connected (NAT&#8217;d)</li>
<li>Two go to the TVs; two U-verse set-top-boxes.</li>
</ul>
</li>
</ul>
<p>More details about this device on my LAN at: <a href="http://robertlathanh.com/2009/08/att-u-verse-a-network-geeks-perspective/">AT&amp;T U-verse &#8212; A Network Geek&#8217;s Perspective</a></p>
<p>And one last photo of it in my messy telecom closet:<br />
<img class="alignnone size-full wp-image-81" title="Telecom Closet with AT&amp;T U-Verse 2Wire 3800HGV-B" src="http://robertlathanh.com/wp-content/uploads/2009/08/telecom_closet_with_att_u-verse.jpg" alt="Telecom Closet with AT&amp;T U-Verse 2Wire 3800HGV-B" width="700" height="472" /></p>
<p><!-- background-color: #eeeeee; border: thin solid#aaaaaa; --></p>
<div style="color: #666666; font-size: smaller; padding: 8px; margin: 16px;">Some keywords to help others find this information: ATT uverse 2-Wire 3800HGVB 3800 HGVB wifi VDSL STB POTS DMARC minimum point of entry main point of entry serving area interface B-box cross box ped access point AP</div>
]]></content:encoded>
			<wfw:commentRss>http://robertlathanh.com/2011/01/att-u-verse-for-the-curious-consumer-the-residential-gateway-and-wiring-options/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bebooper</title>
		<link>http://robertlathanh.com/2010/10/bebooper/</link>
		<comments>http://robertlathanh.com/2010/10/bebooper/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 19:00:42 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[portmanteau]]></category>

		<guid isPermaLink="false">http://robertlathanh.com/?p=110</guid>
		<description><![CDATA[bebooper [bee-boo-per]: beep + boop + computer -noun Those things in movies that look like computers, but beep or boop every time something is clicked on, whir whenever there&#8217;s a progress bar, or ever show an &#8220;ACCESS DENIED&#8221; message in &#8230; <a href="http://robertlathanh.com/2010/10/bebooper/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h4><strong><em>bebooper</em></strong> [bee-boo-per]: <span style="text-decoration: underline;">be</span>ep + <span style="text-decoration: underline;">boop</span> + comput<span style="text-decoration: underline;">er</span></h4>
<p>-noun</p>
<ol>
<li>Those things in movies that look like computers, but beep or boop every time something is clicked on, whir whenever there&#8217;s a progress bar, or ever show an &#8220;ACCESS DENIED&#8221; message in a 36 pt. or greater font size. These devices are often also likely to be able to <a href="http://www.youtube.com/watch?v=Vxq9yj2pVWk" target="_blank">enhance</a> images, interpolating up to 729 pixels where there were originally only nine.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://robertlathanh.com/2010/10/bebooper/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>View Your Google Apps Calendar in Outlook 2007/2010</title>
		<link>http://robertlathanh.com/2010/08/view-your-google-apps-calendar-in-outlook-2007-2010/</link>
		<comments>http://robertlathanh.com/2010/08/view-your-google-apps-calendar-in-outlook-2007-2010/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 00:27:09 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Personal Technology]]></category>
		<category><![CDATA[Web Technology]]></category>

		<guid isPermaLink="false">http://robertlathanh.com/?p=121</guid>
		<description><![CDATA[Microsoft Outlook (2007 and 2010) and Google calendar both support the iCalendar format, which means you can view your Google calendars in Outlook. This is great if you, for example, want to be able to see your Google Apps personal &#8230; <a href="http://robertlathanh.com/2010/08/view-your-google-apps-calendar-in-outlook-2007-2010/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Microsoft Outlook (2007 and 2010) and Google calendar both support the <a href="http://en.wikipedia.org/wiki/ICalendar">iCalendar</a> format, which means you can view your Google calendars in Outlook. This is great if you, for example, want to be able to see your Google Apps personal calendar and Exchange work calendars in one place. It looks like this:</p>
<div id="attachment_122" class="wp-caption alignnone" style="width: 710px"><img class="size-full wp-image-122" title="Outlook - All calendars - Overlaid" src="http://robertlathanh.com/wp-content/uploads/2010/08/Outlook-All-calendars-Overlaid.png" alt="" width="700" height="599" /><p class="wp-caption-text">Outlook and Google Calendars overlaid in one view. The color of an item indicates which calendar it's from.</p></div>
<p>If you’re a regular Gmail user, you may follow the directions at <a href="http://www.howtogeek.com/howto/microsoft-office/view-your-google-calendar-in-outlook-2007/">How-To Geek</a>. However, if you’re using Google Apps for your domain/business (or organization, family, or whatever), you would likely run into a couple obstacles with those steps.</p>
<p>Note that this is for just <em>viewing</em> your calendar &#8212; you will not be able to add or edit events to your Google Calendar. This might be your best option when other solutions aren&#8217;t appropriate, for example:</p>
<ul>
<li>you&#8217;re not a Premium Edition user and can&#8217;t use Google Apps Sync or</li>
<li>you can&#8217;t use Google Apps Sync because you need full use of Exchange at the same time</li>
</ul>
<p>Here&#8217;s what you&#8217;ll need to do to add a Google Apps calendar to Outlook, which includes enabling this feature for your domain (needs to be done by an Administrator) and a tiny bit of URL hacking&#8230;<br />
<span id="more-121"></span></p>
<h3>1. Allow Private Calendar Access in Google Apps for Domains</h3>
<p>If you can&#8217;t see the Private Address of your calendar (next step, below), then it hasn&#8217;t been enabled for your domain. Your administrator will need to follow these steps:</p>
<ol>
<li>Go to the &#8216;Google Apps control panel&#8217; for your domain, which you can get to by clicking on &#8216;Manage this domain&#8217; at the top of your email inbox.</li>
<li>Go to Calendar settings (under Service settings)</li>
<li>Under &#8216;Sharing Options&#8217; / &#8216;Outside [Your Domain name] – set user ability&#8217;, choose: &#8220;Share all information, and outsiders can change calendars.&#8221;<br />
As documented at <a href="http://www.google.com/support/a/bin/answer.py?hl=en&amp;answer=60765">Google Apps Admin help</a>, <em>this will allow users to share their calendar information with people outside your domain. This includes guest list, location, and description</em>.</li>
</ol>
<h3>2. Get the private iCalendar URL for the calendar you want to add to Outlook</h3>
<ol>
<li>Click on the down-arrow next to the calendar that you want to Outlook, and choose &#8216;Calendar settings&#8217;:<br />
<img src="http://robertlathanh.com/wp-content/uploads/2010/08/Google-Apps-Calendar-settings.png" alt="Getting to a Calendar&#039;s settings" title="Google Apps - Getting to a Calendar&#039;s settings" width="337" height="263" class="alignnone size-full wp-image-126" /></li>
<li>At the bottom of the page will be a &#8216;Private Address&#8217; section. Click on &#8216;ICAL&#8217;:<br />
<img src="http://robertlathanh.com/wp-content/uploads/2010/08/Google-Apps-Calendar-settings-Private-Address.png" alt="Calendar&#039;s Private Address" title="Google Apps - Calendar settings - Private Address" width="600" height="92" class="alignnone size-full wp-image-125" /></li>
<li>A dialog will appear with the private iCalendar URL that looks like this:<br />
<code>https://www.google.com/calendar/ical/you%40example.com/private-9a7b3ff028c79ea79aa8927bcb9dd810/basic.ics</code></li>
<li>Copy that URL to your clipboard by right-clicking on it and choosing &#8216;Copy Shortcut&#8217;, &#8216;Copy Link Location&#8217;, or &#8216;Copy Link Address&#8217;</li>
</ol>
<h3>3. Add to Outlook</h3>
<p>If you tried to add the calendar to Outlook the regular way (add new Internet Calendar within Outlook), you might have gotten a message like this:</p>
<blockquote><p>Cannot verify or add the Internet Calendar in Outlook. Verify the link is a valid calendar link:</p></blockquote>
<p>We need to do a tiny bit of URL hacking and Internet Explorer&#8217;s help to add this to Outlook.</p>
<ol>
<li>Paste the URL into Internet Explorer. Before pressing Enter or clicking Go, change &#8216;https&#8217; to &#8216;webcals&#8217; at the beginning of the URL:<br />
<img src="http://robertlathanh.com/wp-content/uploads/2010/08/Internet-Explorer-ICal-webcals-in-address-bar.png" alt="iCal address in IE address bar" title="Internet Explorer - ICal webcals in address bar" width="605" height="100" class="alignnone size-full wp-image-127" /></li>
<li>Press enter or click Go.</li>
<li>You should get one or two security confirmation dialogs; click &#8216;Allow&#8217; in both of them<br />
<img src="http://robertlathanh.com/wp-content/uploads/2010/08/Internet-Explorer-Security-allow.png" alt="" title="Internet Explorer - Security - allow" width="411" height="284" class="alignnone size-full wp-image-128" /><br />
<img src="http://robertlathanh.com/wp-content/uploads/2010/08/Internet-Explorer-Security-2-allow.png" alt="" title="Internet Explorer - Security 2 - allow" width="467" height="284" class="alignnone size-full wp-image-129" /></li>
<li>Outlook will also ask you to confirm that you want to add the calendar. Click &#8216;Yes&#8217;:<br />
<img src="http://robertlathanh.com/wp-content/uploads/2010/08/Outlook-Add-Internet-Calendar-Confirm.png" alt="Outlook - Add Internet Calendar - Confirm" title="Outlook - Add Internet Calendar - Confirm" width="374" height="166" class="alignnone size-full wp-image-133" /></li>
</ol>
<h3>Done!</h3>
<p>Now, when you go to your calendar view, you can choose to view your Google Apps calendar at the same time as your Outlook/Exchange calendar by checking the box next to each:<br />
<img src="http://robertlathanh.com/wp-content/uploads/2010/08/Outlook-All-calendars-Side-by-side.png" alt="Outlook - All calendars - Side-by-side" title="Outlook - All calendars - Side-by-side" width="700" height="609" class="alignnone size-full wp-image-134" /></p>
<p>If you want all of your calendar items to show up on one calendar in the Calendar view instead of having several calendars side-by-side (like in the first screenshot at the top of this article), you can use &#8216;Overlay Mode&#8217;. Click on the tab of the calendar that you want to join with the others then choose &#8216;View in Overlay Mode&#8217; in the &#8216;View&#8217; menu:<br />
<img src="http://robertlathanh.com/wp-content/uploads/2010/08/Oulook-menu-View-View-in-Overlay-Mode.png" alt="Oulook - menu - View - View in Overlay Mode" title="Oulook - menu - View - View in Overlay Mode" width="191" height="334" class="alignnone size-full wp-image-135" /></p>
]]></content:encoded>
			<wfw:commentRss>http://robertlathanh.com/2010/08/view-your-google-apps-calendar-in-outlook-2007-2010/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>s3nukem &#8211; Delete large Amazon S3 buckets</title>
		<link>http://robertlathanh.com/2010/07/s3nukem-delete-large-amazon-s3-buckets/</link>
		<comments>http://robertlathanh.com/2010/07/s3nukem-delete-large-amazon-s3-buckets/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 23:13:40 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Web Technology]]></category>

		<guid isPermaLink="false">http://robertlathanh.com/?p=111</guid>
		<description><![CDATA[s3nukem is a slightly improved version of s3nuke, a Ruby script by Steve Eley that relatively quickly deletes an Amazon Web Services (AWS) Simple Storage Service (S3) bucket with many objects (millions) by using multiple threads to retrieve and delete &#8230; <a href="http://robertlathanh.com/2010/07/s3nukem-delete-large-amazon-s3-buckets/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://github.com/lathanh/s3nukem">s3nukem</a> is a slightly improved version of <a href="http://github.com/SFEley/s3nuke">s3nuke</a>, a Ruby script by <a href="http://extraneous.org/past/2009/9/10/s3nuke_delete_those_large_buckets/">Steve Eley</a> that relatively quickly deletes an Amazon Web Services (AWS) Simple Storage Service (S3) bucket with many objects (millions) by using multiple threads to retrieve and delete the individual objects.</p>
<p>Improvements include:</p>
<ul>
<li>The key retrieval thread will pause when the queue contains <code>1000 * thread_count</code> items. The original script&#8217;s queue would grow unabated, eating up memory unnecessarily.</li>
<li>All output is automatically flushed, which ensures you can keep an eye on progress in real-time.</li>
<li>Added the number of seconds elapsed since the start of the script to the output so you can calculate the rate at which items are being deleted.</li>
</ul>
<p><span id="more-111"></span></p>
<h3>Background</h3>
<p>I, <a href="http://extraneous.org/past/2009/9/10/s3nuke_delete_those_large_buckets/">like</a> <a href="http://echeng.com/journal/2008/07/14/how-to-delete-an-s3-bucket-with-lots-of-files-in-it/">many</a> <a href="http://www.google.com/search?q=s3+delete+bucket">others</a>, have needed to delete an S3 bucket with many items, but, as you may know, you first have to delete all the objects in the bucket &#8212; not a quick task if the bucket has hundreds of thousands or millions of objects.</p>
<p>The bucket I needed to delete had 99 <em>million</em> objects. Attempts to delete the bucket through <code>S3fox</code> and even through the AWS Management Console would fail!</p>
<p><code>s3cmd</code>, which deletes with a single thread, was deleting objects at a rate of about 1,800/minute (2.5 million / day). At that rate, the deletion would have taken about 40 days.</p>
<p><code>s3nuke</code>/<code>s3nukem</code>, which I ran with the default 10 threads, deleted objects at a rate of about 9,000/minute (13 million / day), reducing the job to about 7-1/2 days.</p>
<p>Since my deletion was a bit larger than Steve&#8217;s (his was about 260,000), I had to make a couple improvements to <code>s3nuke</code> (listed above) so that it wouldn&#8217;t slow down and crash and so that I could keep an eye on its progress. You can find my fork at <a href="http://github.com/lathanh/s3nukem">http://github.com/lathanh/s3nukem</a></p>
<p>Quick download: <a href="http://github.com/lathanh/s3nukem/raw/master/s3nukem">http://github.com/lathanh/s3nukem/raw/master/s3nukem</a></p>
]]></content:encoded>
			<wfw:commentRss>http://robertlathanh.com/2010/07/s3nukem-delete-large-amazon-s3-buckets/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

