
<?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>IT Know-It-All &#187; IT Know-It-All</title>
	<atom:link href="http://itkia.com/author/it-know-it-all/feed/" rel="self" type="application/rss+xml" />
	<link>http://itkia.com</link>
	<description>Applications, OS, Networking, Data</description>
	<lastBuildDate>Thu, 02 Aug 2012 07:19:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Resetting My Android Phone Part 4: Did It Help?</title>
		<link>http://itkia.com/resetting-my-android-phone-part-4-did-it-help/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=resetting-my-android-phone-part-4-did-it-help</link>
		<comments>http://itkia.com/resetting-my-android-phone-part-4-did-it-help/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 15:00:23 +0000</pubDate>
		<dc:creator>IT Know-It-All</dc:creator>
				<category><![CDATA[How To ...]]></category>

		<guid isPermaLink="false">http://itkia.com/?p=646</guid>
		<description><![CDATA[Due to some really annoying issues and change in use habits I decided to factory reset my HTC Droid Incredible with Android 2.3.4. Did it help? Let&#8217;s review my issues: Searches insist on changing my search query &#8211; I cannot<span class="ellipsis">&#8230;</span> <a href="http://itkia.com/resetting-my-android-phone-part-4-did-it-help/"><div class="read-more">Read more &#8250;</div><!-- end of .read-more --></a>]]></description>
			<content:encoded><![CDATA[<p>Due to some really annoying issues and change in use habits I decided to factory reset my HTC Droid Incredible with Android 2.3.4. Did it help? Let&#8217;s review my issues:</p>
<ul>
<li>Searches insist on changing my search query &#8211; I cannot search for e.g. &#8220;Home Depot&#8221; because search substitutes the nearest home depot location for my search query. I am often not looking for the closest location, and sometimes autocomplete misses what I mean entirely</li>
<li>Gallery can&#8217;t find my photos I&#8217;ve taken before the last reboot, even though they are still in storage</li>
<li>Netflix app does not work, it freezes on a black screen when I start it</li>
<li>Calendar quit syncing with Exchange</li>
</ul>
<p>I am very angry to say that <strong>the reset has not fixed the search problem</strong>. I turned off Google search suggestions in Settings -&gt; Search -&gt; Searchable Items, but freakin&#8217; Maps insists on not letting me search for what I want to search for. Sooner or later I will break my phone in anger over this. Now I am live-blogging my search for a fix: Settings -&gt; Language &amp; Keyboard -&gt; Touch Input -&gt; Text input: uncheck Prediction and Word completion. I try &#8220;home depot&#8221; and &#8220;fedex&#8221; in maps and in both cases it searches for what it thinks I want instead of what I typed. <strong>&gt;:(</strong> This phone may not survive the rest of this blog post. I go into settings and clear data from the app. No help. Time to go scream bloody murder on some Google/Android help forums.</p>
<p>Okay, next issue: I fire up <strong>Gallery</strong>. WTF?!?! There are images here. I suppose the fact that camera shots from before the factory reset indicate the index problem is solved, but I clearly told it to wipe all phone storage and SD card, and clearly it didn&#8217;t. It has my camera photos, my videos and some photos that were attached to SMS messages. It is not showing the icons and other non-gallery stuff it was showing before the reset. I wonder if it only wiped its own private storage areas and left the rest of the browseable storage alone? Well, I am confused, but I will call this issue fixed.</p>
<p>The <strong>Netflix app</strong> works after the reset. I was able to log in and start a movie.</p>
<p>My <strong>calendar</strong> wouldn&#8217;t sync with my last employer&#8217;s Exchange for the past couple of months even though it used to do so, but since I just left that job I can&#8217;t test to see if it works now.</p>
<p>So in summary <strong>the most infuriating issue is still with me</strong>, so it is apparently the way the search software is written, or perhaps there is a third place to look for how to change autocomplete/autocorrect. I find it very <strong>curious and unexpected that my files (including music, movies, documents and photos) are still on the phone and SD storage</strong> after all the warnings that all storage would be wiped out.</p>
]]></content:encoded>
			<wfw:commentRss>http://itkia.com/resetting-my-android-phone-part-4-did-it-help/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resetting My Android Phone Part 3: Restore</title>
		<link>http://itkia.com/resetting-my-android-phone-part-3-restore/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=resetting-my-android-phone-part-3-restore</link>
		<comments>http://itkia.com/resetting-my-android-phone-part-3-restore/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 15:00:25 +0000</pubDate>
		<dc:creator>IT Know-It-All</dc:creator>
				<category><![CDATA[How To ...]]></category>

		<guid isPermaLink="false">http://itkia.com/?p=634</guid>
		<description><![CDATA[I backed up and then factory reset my HTC Droid Incredible Android 2.3.4 phone. It has been activated and assigned the same Google account I used before the reset. I will now restore my data and see where I goofed<span class="ellipsis">&#8230;</span> <a href="http://itkia.com/resetting-my-android-phone-part-3-restore/"><div class="read-more">Read more &#8250;</div><!-- end of .read-more --></a>]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://itkia.com/resetting-my-android-phone-backup/">backed up</a> and then factory reset my HTC Droid Incredible Android 2.3.4 phone. It has been activated and assigned the same Google account I used before the reset. I will now restore my data and see where I goofed up. <a href="http://itkia.com/resetting-my-android-phone-backup/">Read my backup article to see how I backed up my phone data</a> before I performed the factory reset.</p>
<p>I now realize <strong>I did not even think to backup my call history</strong>. Probably not important, but with my last employer I used this phone for work a lot, and it was occasionally very useful to use call history to seen when I last spoke with someone. And now if I get a missed call that I don&#8217;t recognize, I can&#8217;t see if I have spoken with that number in the past. This might be a bigger deal if I weren&#8217;t changing employers right now.</p>
<p>I will not restore my old <strong>SMS messages</strong> by choice, but they are backed up in an XML file in Google docs if I need them.</p>
<p>Restoring <strong>bookmarks</strong> was pretty easy. I just searched for the &#8220;easy&#8221; sites (e.g. NOAA Weather, ESPN) and then read my email to click the links I emailed myself as backup, then bookmarked those (longer URL) links (e.g. Weather for my area, ESPN Dallas). Of course the &#8220;favorite&#8221; section is not populated yet, but that will restore itself over time. I didn&#8217;t care to back up or restore browser history or any passwords or cookies I had.</p>
<p>I took photos of my <strong>home screen layout</strong>, and I will manually set it back up as I use each app. I might look at the photos, or I might just icons and widgets where I feel like it at the time. Since my phone and app use is changing, my placement priority may change, too.</p>
<p>I backed up my <strong>files</strong> manually, and I don&#8217;t see a pressing need to copy any back to the phone just now. I had some music and movies on there before, but I usually use another device for playing media. I&#8217;ll probably load some entertainment on it for my next vacation, but for now I&#8217;ll only copy files when I need them. My documents were related to my old job, so no need to put those back on the phone.</p>
<p>Since I used the same Google account on the phone as I did before the reset, my <strong>Maps saved locations/My Places</strong> are back with no further action on my part.</p>
<p>I noticed some of my built-in apps are out-of-date after the reset, so before reinstalling my <strong>downloaded apps</strong> I am updating the built-in apps. Interesting: Amazon MP3 is installed; I didn&#8217;t think it was a built-in app. After updates I go to <a href="https://play.google.com/apps">My Android Apps on Google Play</a> (formerly Android Market) and start clicking the seemingly misinformed &#8220;installed&#8221; link and directing each app to install on my phone. I skipped a few that I no longer need or trust. They are installing to my phone with no further action on my part. Cool!</p>
<p>I will manually set up my <strong>Tweetdeck settings</strong> today and add my <strong>WiFi encryption keys and passphrases</strong> as I revist my WiFi spots.</p>
<p>Now for the real question: Did this fix my issues?</p>
]]></content:encoded>
			<wfw:commentRss>http://itkia.com/resetting-my-android-phone-part-3-restore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resetting My Android Phone Part 2</title>
		<link>http://itkia.com/resetting-my-android-phone-part-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=resetting-my-android-phone-part-2</link>
		<comments>http://itkia.com/resetting-my-android-phone-part-2/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 15:00:46 +0000</pubDate>
		<dc:creator>IT Know-It-All</dc:creator>
				<category><![CDATA[How To ...]]></category>

		<guid isPermaLink="false">http://itkia.com/?p=625</guid>
		<description><![CDATA[The backups are done. The moment of truth is here. Settings -&#62; SD &#38; phone storage -&#62; Factory data reset -&#62; check &#8220;Erase SD card&#8221; and click &#8220;Reset phone &#38; internal storage&#8221;. Confirm with &#8220;Erase everything&#8221;. After a minute or<span class="ellipsis">&#8230;</span> <a href="http://itkia.com/resetting-my-android-phone-part-2/"><div class="read-more">Read more &#8250;</div><!-- end of .read-more --></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://itkia.com/resetting-my-android-phone-backup/">The backups are done</a>. The moment of truth is here. Settings -&gt; SD &amp; phone storage -&gt; Factory data reset -&gt; check &#8220;Erase SD card&#8221; and click &#8220;Reset phone &amp; internal storage&#8221;. Confirm with &#8220;Erase everything&#8221;.</p>
<p>After a minute or so a &#8220;Sorry!&#8221; dialog came up about a service running and asked me if I wanted to wait or force close. While I was pondering the conundrum it started to reboot itself. For a while a rather interesting icon of some green arrows in a circle above an image of a droid with light coming out of it appears, but it went away and rebooted before I could get the webcam set up to take a photo.</p>
<p>The next reboot looks normal but is taking longer than usual.</p>
<p>After only 4-5 minutes it asks me which language and then tries to activate itself. It is unable to do so, then I recall I have a network extender, so I unplug it in case activation can&#8217;t be completed through the extender. Sure enough, now that the extender is off the activation call goes through, I complete activation and the phone reboots. (I have good signal, but I bought a network extender because my last residence had poor signal.)</p>
<p>It asks again for my language, offers a tutorial on use and starts asking questions about settings, eventually getting to Google account and all the features that require all the companies in the world to track me everywhere I go.</p>
<p>Now it&#8217;s time to restore data!</p>
]]></content:encoded>
			<wfw:commentRss>http://itkia.com/resetting-my-android-phone-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resetting My Android Phone: Backup</title>
		<link>http://itkia.com/resetting-my-android-phone-backup/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=resetting-my-android-phone-backup</link>
		<comments>http://itkia.com/resetting-my-android-phone-backup/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 15:00:03 +0000</pubDate>
		<dc:creator>IT Know-It-All</dc:creator>
				<category><![CDATA[How To ...]]></category>

		<guid isPermaLink="false">http://itkia.com/?p=610</guid>
		<description><![CDATA[My HTC Droid Incredible Android phone has been mostly great.  But after the last major update to Android v2.3.4 it has picked up some really annoying issues. Even though I have autocomplete turned off, the phone will always substitute what<span class="ellipsis">&#8230;</span> <a href="http://itkia.com/resetting-my-android-phone-backup/"><div class="read-more">Read more &#8250;</div><!-- end of .read-more --></a>]]></description>
			<content:encoded><![CDATA[<p>My <strong>HTC Droid Incredible</strong> Android phone has been mostly great.  But after the last major update to <strong>Android v2.3.4</strong> it has picked up some really annoying issues.</p>
<p>Even though I have autocomplete turned off, the phone will always substitute what it thinks I meant when searching. This really makes me angry when searching maps and the internet. If I search for &#8220;Home Depot&#8221; it for some reason substitutes the name and address of the nearest Home Depot when I hit enter, when those results are almost always different than what I wanted. It does the same thing for internet search; <strong>I cannot search for what I type in, I can only search for what it thinks I meant.</strong> The other big issue is that it does not index any photos I took since the phone last rebooted. They are all still in storage, but Gallery does not show them. I tried moving all the photos off, deleting the thumbnails and any index-looking files I found, but that has not helped. <strong>As far as Gallery knows the only camera photos that exist were taken since last reboot.</strong> It does go and find all the random images, icons and photos elsewhere in storage, though.</p>
<p>A couple of other issues are that the Netflix app quit working and the calendar stopped syncing with Exchange. But I didn&#8217;t use the phone for Netflix much, and changing jobs removes the need to sync the work calendar. I&#8217;m not sure if these issues coincided with the last Android update or if they happened at a different time.</p>
<p>I have done some internet searching and tried some things, but I have been unable to fix it. In the corporate PC world the fix for all desktop software issues is to reimage the PC, so I figured this would eventually require a <strong>factory reset of the phone which would make me lose all my apps, contacts, bookmarks, settings, SMS messages and home screen layout.</strong> I have been dreading the thought.</p>
<p>This weekend I am between jobs as I just finished my employment Friday and will start with my new employer Monday, so now my phone can forget all the data and sync settings for my old company&#8217;s email and saved documents. My new company will issue me a company phone, so <strong>my personal Android phone usage will now change greatly</strong>. Also, I traveled a lot in the old job but will travel very little in the new job, so the application use pattern for my Droid will change a lot.</p>
<p>Changing jobs and roles doesn&#8217;t require me to reset the phone; I could just delete the data and accounts associated with the old company. But give that I already have problems, <strong>why not do the factory reset now and start fresh?</strong></p>
<p>In the Windows PC world, when you migrate or reimage a user&#8217;s PC you generally catch everything the user wants by backing up My Documents, Favorites and Desktop from their profile, and then ensuring their local email is backed up which for Outlook is usually under application data or local settings and for Notes is usually under C:\Notes. (Bonus points for hunting down and backing desktop wallpaper, Outlook signature/proof/stationery files, email autocomplete settings and quicklaunch bar shortcuts.) So, I organized my thoughts about <strong>what I want to back up from my Android</strong> and worked on doing so:</p>
<ul>
<li><strong>SMS Messages</strong> &#8211; Not critical, but I have occasionally found myself referring to old texts</li>
<li><strong>Contacts</strong> &#8211; Gotta have these backed up or I wouldn&#8217;t know how to get hold of anyone!</li>
<li><strong>Bookmarks</strong> &#8211; Not critical, but annoying to not keep them</li>
<li><strong>Home screen layout</strong> &#8211; This sounds whiny, but you really do get used to a layout, and 20-40 icons and widgets are a pain to recreate</li>
<li><strong>Files</strong> &#8211; I have photos, music downloads, movie downloads, eBooks and a lot of document downloads.</li>
<li><strong>Maps saved locations</strong> &#8211; I would rather back up and keep my starred locations</li>
<li><strong>Downloaded apps</strong> &#8211; I would like to have a list of apps I downloaded so I know to reinstall them again</li>
<li><strong>Tweetdeck settings</strong> &#8211; I want my Tweetdeck to look the same</li>
<li><strong>WiFi encryption keys and passphrases</strong> &#8211; I thought about this right before resetting my phone. I can reenter the phrases manually, but a couple of them are a pain on the on-screen keyboard. I don&#8217;t see an immediate and easy way to view or copy them for backup, though.</li>
<li><strong>What I forgot</strong> &#8211; I&#8217;m adding this after restoring my phone: My <strong>phone call history</strong> would have been nice to keep if I thought about it beforehand. I don&#8217;t care about the following items, but others might: <strong>browser &#8220;favorites&#8221; sites, media playlists, browser history, downloaded-but-later-deleted apps </strong>(Google Play shows all previously downloaded apps whether they&#8217;ve been deleted or not).</li>
</ul>
<p>So there is what I would like to back up and, in some cases, restore. Now, how am I going about doing this? <strong>There seems to be no built-in, catch-all backup for all these things.</strong> But since some are provided by the phone manufacturer, some by the service carrier, some by Google and some by third parties, I guess that makes sense. There are many backup apps, specialized and broad, free and for-pay. I&#8217;m not going to review all of them. Heck, I didn&#8217;t even look at more than two or three. <strong>I&#8217;m just going to write about what I did.</strong></p>
<p>You would think <strong>SMS messages</strong> would be found somewhere on the phone storage or sandisk storage and be accessible when hooking the droid up to a PC and browsing. But I never found them. So I found and used a free app <a href="https://play.google.com/store/apps/details?id=com.riteshsahu.SMSBackupRestore">SMS Backup &amp; Restore</a> to back up my text messages to an XML file and then uploaded the XML file to Google Docs. I could have emailed the file, copied over USB or one of many other transfers. I don&#8217;t intend to restore my SMS messages after the reset, but the app will let you read a backup file just like it was your main SMS messages, so I will be able to read the messages without restoring. There is probably a way to view the XML messages on the PC, but I haven&#8217;t even bothered to try yet.</p>
<p>There are many options for <strong>contacts</strong>, so many that any given user may already have theirs unknowingly backed up. First, note that <strong>contacts are a combined list of contacts from multiple possible sources</strong>: phone contacts, Google account contacts and mail app contacts. Google account contacts sync automatically by default and therefore are already &#8220;backed up&#8221; to Google. (These contacts are viewable online in Google Mail / GMail.) Mail app contacts should be synced and therefore &#8220;backed up&#8221; with the mail server, in my case my old company&#8217;s Exchange server, but I deleted that account on my last day. <strong>The phone contacts need to be backed up, though.</strong> There is a &#8220;Backup Assistant&#8221; under settings -&gt; Accounts and Sync that runs automatically by default, but as far as I can tell you have to pay the cell phone service provider a fee to restore that data using Backup Assistant. <strong>I used <a href="http://www.htc.com/www/help/">HTC Sync</a></strong> which is installable when I plug my phone in via USB, but that version didn&#8217;t work anymore so I downloaded the one from HTC&#8217;s site. It allowed me to sync my contacts with Outlook. The old version said it could sync to Windows 7 Contacts, but it wouldn&#8217;t sync and the new version didn&#8217;t offer to sync to Windows 7 Contacts. Oh well.</p>
<p>I don&#8217;t have many <strong>bookmarks</strong> in my Android browser, but there were a few I wanted to be sure to keep. I didn&#8217;t want to install an app to back them up, I couldn&#8217;t find the bookmarks while browsing through phone storage and I saw no option to export the list. So I just wrote down what I had bookmarked (ESPN Dallas, NOAA Weather, other easy-to-recreate bookmarks), but there were a couple of links to articles I wanted to refer back to. Instead of writing those down, <strong>I touched-and-held the bookmarked, chose &#8220;share&#8221; and emailed the link to myself</strong> so I can later read the email, click the link and bookmark it. It&#8217;s not as simple as export-import, but it&#8217;s simple enough for as few bookmarks as I have, and I don&#8217;t have to install an app to do it.</p>
<p><strong>Home screen layout</strong>: I think what I am going to do is use a webcam and just take a photo of each screen and then recreate it manually. Since my app use will change with the job changes, it might make sense to rearrange things, anyway.</p>
<p>I back up all the <strong>files</strong> by hooking the phone to my PC via USB, enabling drive access and just copying everything over in Windows Explorer. All photos, music, documents and videos are locatable with browsing and searching, but phone settings, app settings and app data don&#8217;t seem to be represented in the copied files. But I have a lot of data files, so this is definitely worth doing. I won&#8217;t need all the files after the reset, so I&#8217;ll selectively restore individual files. <strong>It should be noted that I manage my music and video files myself.</strong> If you are using an application to organize them and make playlists you may want to be sure those things are backed up.</p>
<p>Perhaps the easiest backup for me was to realize that my <strong>Maps saved locations/starred places</strong> are already synced in my Google Maps with the Google account I use on the phone. (My Places -&gt; Starred in <a href="http://maps.google.com/">Google Maps.</a>) Assuming I use the same Google account after resetting the phone, these places will be &#8220;restored&#8221;.</p>
<p>Getting a list of <strong>downloaded apps</strong> was also easier than expected. Google Play (formerly Android Market) has <a href="https://play.google.com/apps">My Android Apps</a> which shows all the apps I&#8217;ve ever downloaded. But it currently shows them as &#8220;installed&#8221; even if I have uninstalled them on the phone. No biggie, because if I click on &#8220;installed&#8221; the next screen knows whether or not it&#8217;s actually installed and lets me install it there. So my plan is to reinstall apps using this web page.</p>
<p>For my <strong>Tweetdeck</strong> settings I think I&#8217;ll just list the columns I have and recreate them manually. I do not use a Tweetdeck account, just Twitter accounts, otherwise it might remember my accounts for me.</p>
<p>So there we go. I&#8217;ve backed up my data as best as I think I can (or am willing to do), I&#8217;ve blogged about it, so now I&#8217;ll <a href="http://itkia.com/resetting-my-android-phone-part-2/">perform the factory reset</a>. And write another blog about that.</p>
]]></content:encoded>
			<wfw:commentRss>http://itkia.com/resetting-my-android-phone-backup/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What IPv6 Can&#8217;t Do…Yet</title>
		<link>http://itkia.com/what-ipv6-cant-do/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-ipv6-cant-do</link>
		<comments>http://itkia.com/what-ipv6-cant-do/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 19:46:11 +0000</pubDate>
		<dc:creator>IT Know-It-All</dc:creator>
				<category><![CDATA[IPv6]]></category>

		<guid isPermaLink="false">http://itkia.com/?p=143</guid>
		<description><![CDATA[Here are some things you can&#8217;t yet do with IPv6: PXE Boot: There is no Preboot eXecutable Environment boot standard for IPv6 yet, but there are some developments towards this goal. PXE v2.1 is a 1999 non-open standard, and it<span class="ellipsis">&#8230;</span> <a href="http://itkia.com/what-ipv6-cant-do/"><div class="read-more">Read more &#8250;</div><!-- end of .read-more --></a>]]></description>
			<content:encoded><![CDATA[<p>Here are some things you can&#8217;t yet do with IPv6:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Preboot_Execution_Environment">PXE</a> Boot: There is no Preboot eXecutable Environment boot standard for IPv6 yet, but there are some developments towards this goal. PXE v2.1 is a 1999 non-open standard, and it appears to me the momentum to move away from the PXE standard and add other abilities to network boot such as HTTP, iSCSI and other alternative file transport and the ability for one network boot standard to work with multiple architectures.</li>
<ul>
<li><a href="http://www.intel.com/support/network/sb/CS-028553.htm">Intel&#8217;s response to this subject</a> indicates they expect network IPv6 booting to be done via <a href="http://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface">UEFI</a>. I am seeing UEFI BIOS in newer business x86-64 workstations, but I do not know if they are currently capable of IPv6 remote boot. UEFI options I&#8217;ve seen are disabled by default in BIOS.</li>
<li>What used to be <strong>etherboot—</strong>an open-source network boot firmware / chain-loadable boot program—became gPXE, and in 2010 it forked into <a href="http://etherboot.org/wiki/index.php">gPXE</a> and <a href="http://ipxe.org/">iPXE</a>. iPXE&#8217;s site says all new development is being done on iPXE, but there was a <a href="http://comments.gmane.org/gmane.network.etherboot.gpxe/1668">Google Summer of Code project to add IPv6 boot to gPXE</a>, so I am currently confused as to which project to try first if I were prototyping IPv6 network booting.</li>
<li>In my view, dual-stack IPv6-IPv4 networking will be a reality for at least several years, so I expect IPv4 PXE boot to be the norm until IPv6 network boot standards are mature.</li>
</ul>
<li><a href="http://en.wikipedia.org/wiki/Network_address_translation">NAT</a>: Network Address Translation was created to slow down IPv4 address exhaustion, so it is not needed for IPv6. However, many users seem to think that NAT enhances security (I largely disagree), and some have tried to develop a form of NAT during the IPv4-to-IPv6 transition phase so a group of IPv4-only hosts might communicate over a NAT device with IPv6-only hosts. But the transition NAT attempts have run into problems and aren&#8217;t considered general-purpose transition solutions. Ideally all hosts on the internet can directly address each other, so NAT should disappear when IPv4 does.</li>
<li><a href="http://en.wikipedia.org/wiki/Windows_Internet_Name_Service">WINS</a>: Windows Internet Name Service maps NetBIOS names to IPv4 addresses, but Microsoft has moved to DNS for client-server name resolution and is developing PNRP for peer name resolution. Do not expect WINS to be implemented for IPv6 name resolution or to use IPv6 to transport queries.</li>
</ul>
<p>Original article published February 1, 2010, 10:00 AM, later edited for updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://itkia.com/what-ipv6-cant-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPv6 Policy Routing Linux Gotchas</title>
		<link>http://itkia.com/ipv6-policy-routing-linux-gotchas/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ipv6-policy-routing-linux-gotchas</link>
		<comments>http://itkia.com/ipv6-policy-routing-linux-gotchas/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 11:51:32 +0000</pubDate>
		<dc:creator>IT Know-It-All</dc:creator>
				<category><![CDATA[IPv6]]></category>

		<guid isPermaLink="false">http://itkia.com/?p=557</guid>
		<description><![CDATA[I have two IPv6 tunnels with subnets, one from SixXS and one from Hurricane Electric. (Why? Eh, I&#8217;m a tinkerer.) I had them both active and responding to tunnel broker pings on my Cisco E2000 with DD-WRT v24-sp2 rev 14929 firmware, but<span class="ellipsis">&#8230;</span> <a href="http://itkia.com/ipv6-policy-routing-linux-gotchas/"><div class="read-more">Read more &#8250;</div><!-- end of .read-more --></a>]]></description>
			<content:encoded><![CDATA[<p>I have two IPv6 tunnels with subnets, one from SixXS and one from Hurricane Electric. (Why? Eh, I&#8217;m a tinkerer.) I had them both active and responding to tunnel broker pings on my Cisco E2000 with DD-WRT v24-sp2 rev 14929 firmware, but <strong>I couldn&#8217;t route from both my subnets</strong> at the same time.</p>
<p>My SixXS tunnel won&#8217;t accept packets from my HE subnet, and my HE tunnel won&#8217;t accept packets from my SixXS subnet, but I can <strong>only route by destination</strong>&#8230;with normal routing.</p>
<p>The answer—besides living happily with one subnet and tunnel—is policy routing. <strong>With policy routing I can set up more than one routing table</strong> and choose which routing table to use based on the source of the packet, so I should be able to send SixXS-subnet-sourced packets to the SixXS tunnel and HE-subnet-sourced packets to the HE tunnel.</p>
<p><strong>Unfortunately my DD-WRT version doesn&#8217;t support policy routing for IPv6</strong>. So I designated my Linux server as the DMZ host under the DMZ tab under the NAT / QoS tab and set up my tunnels and routing on the Linux box.</p>
<p>Instead of setting up a piece at a time and testing it as I go, I brazenly typed up my whole configuration before trying any of it out on the Linux box. That cost me a few hours of troubleshooting, but the funny part is I mostly had it right the first time. The problem was that <strong>policy rule flushing works slightly differently with IPv4 and IPv6</strong>, at least on Ubuntu Lucid 10.04.2.</p>
<p>The default rules are as shown:</p>
<pre>$ /sbin/ip -6 rule show
0: from all lookup local
32766: from all lookup main</pre>
<p>The &#8220;gotcha&#8221; is that I decided to flush the rules before adding my own. I did this because I was duplicating rules when I brought the interface down and up again.</p>
<pre>$ /sbin/ip -6 rule flush
$ /sbin/ip -6 rule show
0: from all lookup local</pre>
<p>Flush works a little too well as it <strong>takes away the rule that uses the main routing table</strong>! Flushing the IPv4 rules puts the default rules back, but not so with IPv6. So when flushing IPv6 rules remember to add the main rule back:</p>
<pre>$ /sbin/ip -6 rule flush
$ /sbin/ip -6 rule add priority 32766 from all table main</pre>
<p>Here is my working policy routing setup that routes to the proper tunnel based on the source address. I have chosen to set up the HE tunnel and subnet as normal and make policy routing decisions for the SixXS tunnel. Other things I did to make this work was to enable IPv6 routing in sysctl and add &#8220;200 sixxs&#8221; to /etc/iproute2/rt_tables so I could have a routing table named &#8220;sixxs&#8221;, but I could have used a numbered table instead. Ubuntu/Debian /etc/network/interfaces file (partial):</p>
<pre>auto he-ipv6
iface he-ipv6 inet6 v4tunnel
        endpoint 216.218.224.42
        address 2001:470:1f0e:b56::2
        netmask 64
        ttl 64
          # Null route HE /48 to prevent sending back to internet
        post-up /sbin/ip -6 route add unreachable 2001:470:b967::/48 || true
          # Null route HE /64 to prevent sending back to internet
        post-up /sbin/ip -6 route add unreachable 2001:470:1f0f:b56::/64 || true
          # Global unicast range route (effective default)
        post-up /sbin/ip route add 2000::/3 dev he-ipv6 src 2001:470:1f0e:b56::2 || true

auto sixxs
iface sixxs inet6 v4tunnel
        endpoint 216.14.98.22
        address 2001:4978:f:178::2
        netmask 64
        ttl 64
        # doesn't work: mtu 1280
        post-up /sbin/ip link set $IFACE mtu 1280 || true
          # Null route SixXS /48 to prevent sending back to internet
        post-up /sbin/ip -6 route add unreachable 2001:4978:192::/48 || true
          # Set up SixXS routing table
        post-up /sbin/ip -6 route flush table sixxs || true
        post-up /sbin/ip -6 route add 2000::/3 dev $IFACE src 2001:4978:f:178::2 table sixxs || true
          # Set up routing table rules, he-ipv6 is default, sixxs is sixxs-sourced
        post-up /sbin/ip -6 rule flush || true
          # To local prefixes, use main routing table
        post-up /sbin/ip -6 rule add priority 100 to 2001:4978:192::/48 table main || true
        post-up /sbin/ip -6 rule add priority 200 to 2001:470:b967::/48 table main || true
        post-up /sbin/ip -6 rule add priority 300 to 2001:470:1f0f:b56::/64 table main || true
          # To nonroutable "global" prefixes, use main routing table
            # 6to4. Uncomment this if I implement local 6to4 conversion
        #post-up /sbin/ip -6 rule add priority 400 to 2002::/16 table main || true
            # Teredo. Uncomment this if I implement local Teredo conversion
        #post-up /sbin/ip -6 rule add priority 500 to 2001::/32 table main || true
            # Documentation: range reserved for dummy addy's in documentation
        post-up /sbin/ip -6 rule add priority 600 to 2001:db8::/32 table main || true
          # From SixXS subnet addr to global unicast (last rule), use sixxs routing table
        post-up /sbin/ip -6 rule add priority 32000 from 2001:4978:192::/48 to 2000::/3 table sixxs || true
          # Need the default main; flushing seems to delete the ip6 main rule
        post-up /sbin/ip -6 rule add priority 32766 from all table main || true
          # Flush routing cache to enable new routing info
        post-up /sbin/ip -6 route flush cache || true
          # Flush rules and re-add main table rule
        post-down /sbin/ip -6 rule flush || true
        post-down /sbin/ip -6 rule add priority 32766 from all table main || true</pre>
<p>I null-route my assigned prefixes/subnets to avoid sending inappropriate traffic back into the internet which will just get routed right back to me. When I add routes for my /64 prefixes they will override the null route because they more specifically match the destination addresses. I am also routing to 2000::/3 (all currently assigned global unicast addresses) instead of a default route so I don&#8217;t send out multicasts or other address ranges I don&#8217;t intend.</p>
<p>If you&#8217;re wondering about &#8220;|| true&#8221;, if I don&#8217;t have that and the command generates an error code, the interface set-up would stop. The<strong> &#8220;|| true&#8221; causes the command to return a &#8220;success&#8221; code</strong> to the ifup/ifdown scripts even if the command fails so that the ifup/ifdown script can continue with the rest of the setup.</p>
<p>My plan is that the main routing table will handle all cases except from the SixXS subnet to  the SixXS tunnel, in my case from the subnet to external global unicast addresses. I could just make sure each table has all the routes I need, but in my case I think it&#8217;s easier this way. Here are the <strong>resulting rules from the above configuration</strong>:</p>
<pre>$ ip -6 rule
0:      from all lookup local
100:    from all to 2001:4978:192::/48 lookup main
200:    from all to 2001:470:b967::/48 lookup main
300:    from all to 2001:470:1f0f:b56::/64 lookup main
600:    from all to 2001:db8::/32 lookup main
32000:  from 2001:4978:192::/48 to 2000::/3 lookup sixxs
32766:  from all lookup main</pre>
<p>Rules 100, 200 and 300 are my local prefixes. They don&#8217;t need to go out the SixXS tunnel, so I divert them to the main routing table. Rule 600 is the reserved documentation prefix. I think I may try to use that address range when making how-to videos, so I want to divert that to the main routing table and null route it there to prevent sending invalid traffic out to the Internet. Rule 32000 catches all remaining packets from my SixXS subnet that are to the global unicast address range and tells Linux to use the routing table I named &#8220;sixxs&#8221;. The last rule is what sends everything else to the main routing table. The last rule should exist by default, but &#8220;ip -6 rule flush&#8221; deletes it, and that&#8217;s the &#8220;gotcha&#8221; that cost me a few hours&#8217; troubleshooting.</p>
<p>The sixxs routing table as configured above:</p>
<pre>$ ip -6 route show table sixxs
2000::/3 dev sixxs  metric 1024  mtu 1280 advmss 1220 hoplimit 4294967295</pre>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://itkia.com/ipv6-policy-routing-linux-gotchas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>View HTTP Headers With Chrome</title>
		<link>http://itkia.com/view-http-headers-with-chrome/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=view-http-headers-with-chrome</link>
		<comments>http://itkia.com/view-http-headers-with-chrome/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 03:45:57 +0000</pubDate>
		<dc:creator>IT Know-It-All</dc:creator>
				<category><![CDATA[How To ...]]></category>

		<guid isPermaLink="false">http://itkia.com/?p=548</guid>
		<description><![CDATA[I&#8217;ve been looking at my headers the old-fashioned way with curl -I and wget --save-headers, but I notice Chrome and IE have some pretty advanced site diagnostics built-in now. Here I am using Chrome&#8217;s F12 to check my HTTP headers<span class="ellipsis">&#8230;</span> <a href="http://itkia.com/view-http-headers-with-chrome/"><div class="read-more">Read more &#8250;</div><!-- end of .read-more --></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking at my headers the old-fashioned way with <code>curl -I</code> and <code>wget --save-headers</code>, but I notice Chrome and IE have some pretty advanced site diagnostics built-in now. Here I am using Chrome&#8217;s F12 to check my HTTP headers which I just changed.</p>

			<div class='evfe'>
			<!-- ================================================ -->
			<!-- based on 'Video for Everybody' v0.4.2 by Kroc Camen of Camen Design -->
			<!-- <camendesign.com/code/video_for_everybody> -->
			<!-- ================================================ -->
			<video class='external-vfe' width='640' height='360' poster='/videos/view-http-headers-with-chrome.png' controls preload='none'>
				<source src='/videos/view-http-headers-with-chrome.mp4' type='video/mp4' />
				<source src='/videos/view-http-headers-with-chrome.webm' type='video/webm' />
				<source src='/videos/view-http-headers-with-chrome.ogv' type='video/ogg' />
				<object width='640' height='360' type='application/x-shockwave-flash' data='/flowplayer/flowplayer-3.2.7.swf'>
					<param name='movie' value='/flowplayer/flowplayer-3.2.7.swf' />
					<param name='flashvars' value='controlbar=over&amp;image=/videos/view-http-headers-with-chrome.png&amp;file=/videos/view-http-headers-with-chrome.mp4' />
					<img src='/videos/view-http-headers-with-chrome.png' width='640' height='360' alt='movie: view-http-headers-with-chrome'
						 title='No video playback capabilities, please download the video below' />
				</object>
			</video>
			</div>
			<p class='external-vfe-downloads'>Downloads: <br />
			<a class='mp4-link' href="http://itkia.com/videos/view-http-headers-with-chrome.mp4">/videos/view-http-headers-with-chrome.mp4</a><br /><a class='webm-link' href="http://itkia.com/videos/view-http-headers-with-chrome.webm">/videos/view-http-headers-with-chrome.webm</a><br />
			<a class='ogg-link' href="http://itkia.com/videos/view-http-headers-with-chrome.ogv">/videos/view-http-headers-with-chrome.ogv</a>
			</p>
		
<p>Whoops! I messed up those headers! I fixed them after I made the video, and then I used Chrome&#8217;s F12 to check them, and this time I got them right.</p>
]]></content:encoded>
			<wfw:commentRss>http://itkia.com/view-http-headers-with-chrome/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Please Allow Myself to Introduce…Myself</title>
		<link>http://itkia.com/please-allow-myself-to-introduce-myself/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=please-allow-myself-to-introduce-myself</link>
		<comments>http://itkia.com/please-allow-myself-to-introduce-myself/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 07:53:26 +0000</pubDate>
		<dc:creator>IT Know-It-All</dc:creator>
				<category><![CDATA[Weekly Live Streaming Video Production Notes]]></category>

		<guid isPermaLink="false">http://itkia.com/?p=387</guid>
		<description><![CDATA[I am going to blog about the technical production of the weekly live webcast DBAs@Midnight, but I will be posting as midnightFreddie, the nickname and Twitter handle I adopted when joining the show. The name is based on Freddy from iCarly. Freddy<span class="ellipsis">&#8230;</span> <a href="http://itkia.com/please-allow-myself-to-introduce-myself/"><div class="read-more">Read more &#8250;</div><!-- end of .read-more --></a>]]></description>
			<content:encoded><![CDATA[<p>I am going to blog about the technical production of the weekly live webcast <a href="http://midnightdba.itbookworm.com/DBas@Midnight.aspx">DBAs@Midnight</a>, but I will be posting as midnightFreddie, the nickname and Twitter handle I adopted when joining the show. The name is based on Freddy from iCarly. Freddy tech produces the in-show iCarly webcast, so I became &#8220;the Freddy&#8221; for the DBAs@Midnight show.</p>
<p>Sean and Jen McCown, the <a href="http://MidnightDBA.com">MidnightDBA</a>s started recording a weekly video in 2009 and later started live broadcasting the show and posting the recording on their website later.</p>
<p>When I joined the show they were using Ustream.tv for live broadcast and chat while using a second webcam and Debut video capture software to record the show for republication. I was able to change to widescreen video and update the quality and features within the Ustream controls, but Ustream had a habit of frequently changing the user interface and increasing ad intrusion until <a href="http://itkia.com/streaming-a-live-webcast-%e2%80%94-exodus-from-ustream-tv/">we finally got fed up and looked for other options</a>.</p>
<p>I will write up articles on how we live stream self-hosted video as IT Know-It-All, but I decided I will also post weekly show production notes.</p>
<p>So please allow myself (IT Know-It-All) to introduce myself (midnightFreddie) as our new blogger!</p>
]]></content:encoded>
			<wfw:commentRss>http://itkia.com/please-allow-myself-to-introduce-myself/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JaguarPC, I Recommend Them</title>
		<link>http://itkia.com/jaguarpc-i-recommend-them/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=jaguarpc-i-recommend-them</link>
		<comments>http://itkia.com/jaguarpc-i-recommend-them/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 22:05:20 +0000</pubDate>
		<dc:creator>IT Know-It-All</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[ram]]></category>
		<category><![CDATA[vps]]></category>

		<guid isPermaLink="false">http://itkia.com/?p=331</guid>
		<description><![CDATA[When I don&#8217;t have the proper home internet service to run my own public servers I get an unmanaged Virtual Private Server (VPS). I&#8217;ve spent quite a few years running everything off of a VPS because I&#8217;ve been moving from<span class="ellipsis">&#8230;</span> <a href="http://itkia.com/jaguarpc-i-recommend-them/"><div class="read-more">Read more &#8250;</div><!-- end of .read-more --></a>]]></description>
			<content:encoded><![CDATA[<p>When I don&#8217;t have the proper home internet service to run my own public servers I get an unmanaged Virtual Private Server (<a href="http://www.jaguarpc.com/vps-hosting/">VPS</a>). I&#8217;ve spent quite a few years running everything off of a VPS because I&#8217;ve been moving from home to home. I am settled now, have the home internet service and servers ready and am about to cancel my VPS, but I wanted to thank <a href="http://www.jaguarpc.com/">JaguarPC</a> (<a href="http://twitter.com/JaguarPC">Twitter</a>, <a href="mailto:sales@jaguarpc.com">email</a>) for their proactive service and their equal interest in keeping existing customers and getting new customers. (JaguarPC also offers managed VPSes and other hosting products.)</p>
<p>I&#8217;ve had bad experiences with other hosting providers, both mine and for my clients. With other hosts I&#8217;ve often had host-related problems while their reporting services claim that their services are up and their support line doesn&#8217;t answer, later to find out they&#8217;ve had major problems. At least in the age of Twitter it&#8217;s easy to find other clients of the same host and verify the problem is with the hosting company and not with my or my client&#8217;s server.</p>
<p>But when I decided to leave my previous ill-behaved host who had my VPS down for 5 days and couldn&#8217;t tell me if or when it would be back up—thankfully I keep my own backups—I looked for a VPS hosting provider that had been around for many years, appeared to care about existing customers and offered a good value. I picked JaguarPC partially because of some recommendations and partially because they had a special running where I could get my umanaged VPS with 390 MB of RAM for the price of 256 MB.</p>
<p>Well, the special never ended like I thought it might. In fact, three years later they—on their own initiative—upgraded me to a new plan that had over three times more storage, three times the RAM (four times the RAM of the base plan I had) and ten times the monthly bandwidth at a lower plan cost. They explained in the email that they want to thank and retain their existing customers. The actual upgrade itself caused no issues, outages or reboots on my VPS. (This is possible due to the VPS solution they are using.)</p>
<p>I have not known of any outages or slow server issues since I&#8217;ve been with them. I haven&#8217;t had to contact them once since I opened the account. However, they proactively notified me of a DDoS issue that they were experiencing and thought might affect me, and they kept an updated status report available. I checked my server and didn&#8217;t seem to be affected, but it was very refreshing to hear from the hosting provider and having regular updates. That is vastly superior to any other host I&#8217;ve dealt with.</p>
<p>I semi-publicly shared the adventure with some online friends. I posted the following on May 10, 2008 about my leaving my previous host and starting with JaguarPC:</p>
<blockquote><p>When I suggested he [the VPS reseller] set up a new VPS for me he liked the idea at first but then asked if I wanted to go direct with the company that hosted my old server. That&#8217;s the second time he&#8217;s tried to pawn me off onto another company, and I suddenly recalled I had been concerned about performance issues, anyway, and now he suggests I go with the company who apparently lost a host server and can&#8217;t seem to get it back up? Nope, time to go with someone totally new. JaguarPC apparently has been doing this 10 years, so hopefully after 3 years they&#8217;ll still want my business. Plus they were having a sale that&#8217;s supposed to give me more RAM at the same price which should help with the concurrent requests I&#8217;ve talked about before.</p>
<p>I haven&#8217;t closed the old account yet. I don&#8217;t really expect for them to bring my VPS back up as it was, but I&#8217;d like to see how my backups restore before I totally give up on it. So far I think I&#8217;m missing a few emails, a static website I forgot to back up (no biggie) and perhaps some config info that might be handy to look at but isn&#8217;t critical.</p></blockquote>
<p>I posted the following on January 19, 2011:</p>
<blockquote><p>Well, so far I&#8217;m pleased with JaguarPC. There have been no major issues for me overall, and they emailed me an outage notice yesterday and linked to a support thread that was keeping running updates on a DDoS attack that was affecting several of their servers and networks. And as far as I can tell my server didn&#8217;t even go down, but I got the updates anyway.</p>
<p>It&#8217;s so nice to find out about a problem from the hosting company and be offered a place to find updates before I even know there is a problem.</p>
<p>The last two major host company problems I&#8217;ve had (with other host companies) usually involved no public mention of the issue for at least an hour or two after a major outage, and support lines and support system jammed and giving no information or false positive information. Here they have proactively notified me, so if I start having problems I know what&#8217;s probably going on and know where to look for updates rather than waste hours trying to troubleshoot something I have no control over.</p></blockquote>
<p>I posted the following on February 4, 2011:</p>
<blockquote><p>Wow! JaguarPC just auto-upgraded me to a new plan that is cheaper and has 3-10 times the specs the old plan has! I&#8217;ll post a redacted form of the email later when I&#8217;m not on my Droid. The jist is they want to treat existing customers as well as new ones.</p>
<p>Hoo boy, now I can increase the concurrency here and give some more cache RAM to the database.</p>
<p>So yeah, apparently JaguarPC does still want my business after nearly 3 years.</p></blockquote>
<p>This is the (redacted) email they sent me about the February 2011 upgrade:</p>
<blockquote><p>We are very pleased to inform you of an immediate upgrade of your VPS package. This free automatic update is to express gratitude to our loyal customers like yourself. We are upgrading all our VPS plans in next several weeks and today your VPS was upgraded on the new plan.</p>
<p>No action is required on your end. There is no other change to your hosting, domains, or IP.</p>
<p>&#8220;It is common in the web hosting industry to promote plans to attract new customers, but we really wanted to do something that was a way of saying thank you to our existing customers,” says Greg Landis , CEO of JaguarPC. “We could not imagine a better way to do that to give more for less. Our philosophy has always been to treat our customers with utmost respect regardless of their size, and we hope to maintain our strong customer loyalty with this movement.&#8221;</p>
<p>The upgrade details are as follows:</p>
<p>[server account name]</p>
<p>Your old VPS plan name: VPS &#8211; Freedom Plan<br />
Your old VPS plan cost: $[...] + addons<br />
Your old VPS plan specs: 15GB Disk, 256MB RAM, 300GB Bandwidth + addons</p>
<p>Your new VPS plan name: Linux VPS Pro<br />
Your new VPS plan cost: $[...] + addons<br />
Your new VPS plan specs: 50GB Disk, 1024MB RAM, 3000GB Bandwidth + addons</p>
<p>[VPS management products info]</p>
<p>We just turned 12 years old in last October and getting stronger in 13th year of business! This is a tribute to the loyalty of our clients and reflects our business concepts of good value, integrity, and honesty. It wouldn&#8217;t be possible without the ongoing trust and business from clients such as yourself. Thank you all again for your business and referrals. We wish you all the very best.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://itkia.com/jaguarpc-i-recommend-them/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Streaming a Live Webcast — Concepts and Know Your Audience&#8217;s Tech</title>
		<link>http://itkia.com/streaming-a-live-webcast-concepts-and-know-your-audiences-tech/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=streaming-a-live-webcast-concepts-and-know-your-audiences-tech</link>
		<comments>http://itkia.com/streaming-a-live-webcast-concepts-and-know-your-audiences-tech/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 09:21:44 +0000</pubDate>
		<dc:creator>IT Know-It-All</dc:creator>
				<category><![CDATA[Video Streaming]]></category>

		<guid isPermaLink="false">http://itkia.com/?p=290</guid>
		<description><![CDATA[Computer video concepts can be very confusing, and streaming adds more complexity, live streaming possibly more so. This is largely because there are competing proprietary methods for encoding, storing and transporting video. I&#8217;ll try to break it down for you<span class="ellipsis">&#8230;</span> <a href="http://itkia.com/streaming-a-live-webcast-concepts-and-know-your-audiences-tech/"><div class="read-more">Read more &#8250;</div><!-- end of .read-more --></a>]]></description>
			<content:encoded><![CDATA[<p>Computer video concepts can be very confusing, and streaming adds more complexity, live streaming possibly more so. This is largely because there are competing proprietary methods for encoding, storing and transporting video. I&#8217;ll try to break it down for you as it is in August 2011.</p>
<p>First, it should be noted that when we talk about video we usually mean video and audio together. Video and audio are different forms of information, but they have to be delivered together for the expected experience. The overall conceptual breakdown:</p>
<ul>
<li>Video source: Most likely a USB webcam for a small web show broadcast</li>
<li>Audio source: Often integrated with the webcam, but could be a discrete microphone</li>
<li>Encoder: For our small live web show this is a laptop or PC that the webcam and microphone plug into. On professional setups this could be a piece of professional hardware as part of a camera system or a standalone device. The encoder will encode the audio and video streams and multiplex them into a container format. More on these terms later, but the data stream that leaves the encoder will be readable by viewer clients.</li>
<li>Media server: The encoder sends the video/audio data stream to the media server to be delivered to all the viewer clients. It&#8217;s possible the encoder machine could also be the media server, but it&#8217;s more flexible and scalable if the media server is a separate server box.</li>
<li>Client: The viewers are looking at their PCs, Macs, tablets or phones which are pulling the video (and audio) from the media server.</li>
</ul>
<p>As the audio and video moves through the above progression, there are several properties that transform it, store it or transport it:</p>
<ul>
<li>Video codec: Codec is &#8220;coder/decoder&#8221;. It is the algorithm or language, if you will, that turns what the camera sees into computer information. At its very basic, video is a series of still photographs played after one another, but that would take up a prohibitive amount of disk space and network bandwidth to store and transmit, so there are various competing and evolving codecs to encode quality video in a small data space. The encoder you choose and configure will determine the video codec, and the media server you choose may only support certain codecs even though the media server itself doesn&#8217;t need to encode or decode the video. (Examples: h.264, VP8, VC-1, Theora)</li>
<li>Audio codec: Same concept as video, but it applies to audio instead. Your choices in components and software may dictate which audio codec you can use. (Examples: MP3, AAC, WMA)</li>
<li>MUX or multiplex: When playing video (with audio), you are playing two different types of information at the same time: audio and video. But you are playing only one data file or one live data stream. How do both audio and video get delivered in one data stream? Multiplexing. In brief, each elemental data stream (video, audio, etc.) is split into data chunks, and chunks of each individual stream take turns being delivered through the actual one data stream. There are different standards for multiplexing, and again your choice of components may dictate a particular MUX. Note also that other data may be multiplexed in your streams, like subtitles, alternate video or audio streams or metadata.</li>
<li>Container format: At its most basic, this is the file storage type, and is usually indicated by the file extension like .AVI, .MOV, .MP4 and .M4V. Conceptually this would seem to blend with MUX, but somehow in ways not completely clear to me they are different from MUX, and some container types work with different MUX types.</li>
<li>Streaming protocol: This is the method the data stream is transported or delivered over a network. (Examples: HTTP, RTP, RTSP, RTMP, MMS)</li>
</ul>
<p>So, the encoder transforms the information from the video and audio sources using particular codecs and MUX&#8217;s them into a container format, then uses a streaming protocol to deliver the container stream to the media server, and clients use a streaming protocol—not necessarily the same one used between the encoder and media server—to receive the container stream from the media server.</p>
<p>But you can&#8217;t just pick whatever codecs, MUX, container and protocols you want. They don&#8217;t all work together. The real pain of the situation is that your audience&#8217;s clients may need particular codecs, MUX, container and protocols. The really real pain is that if your audiences&#8217; clients are different, they may be incompatible with your choices <strong>and</strong> incompatible with each other.</p>
<p>I&#8217;ll remind the reader that the following are described from the point of view of a small, not-for-profit web show that wishes to grow from a viewership of 20-50 live viewers with no or minimal cost, assuming an existing 25mbps upstream connection and existing Windows 2008 Server and Linux server available. The organized portion of our show is recorded and made available for free download later, so content protection is not a concern for us. The community is rooted in Microsoft-based applications and therefore are generally assumed to have Windows, IE and Windows Media Player available, but in practice many of them own iPhones, iPads or iPods and desire to view the show on them. I also want to avoid clients having to install extra plugins or software to be able to view the live web show.</p>
<p>I&#8217;ll use a team metaphor for the types of clients the audience may have. There are three big teams, one fading team and one emerging team:</p>
<ul>
<li>Team Flash video: The ubiquitous Adobe Flash browser plugin supports video in certain formats across multiple platforms and browsers. Flash is almost assumed for general web surfing, and our existing broadcasts over Ustream require Flash, making Flash a likely choice for us since our audience already has it. There is a <a href="http://www.adobe.com/products/flashmediaserver/flashmediaencoder/">free version of the encoder</a>, limited but useful, and a <a href="http://flowplayer.org/">free Flash-based player</a> whose only restriction is an unobtrusive logo, but the Flash Media Server software costs at least $1000. I have yet to find a free and simple substitute for Flash Media Server, but I have managed with much difficulty to use VLC as encoder and media server. I will blog about that separately, and I think there are other possibilities, but the free options require a lot of tinkering and testing and time. However, the popular iPads, iPhones and iPods cannot use flash and aren&#8217;t otherwise natively compatible</li>
<li>Team Windows Media: If you&#8217;re sure all your viewers will be using Windows and Internet Explorer to view your show, this may be the option for you. Microsoft offers <a href="http://www.microsoft.com/download/en/details.aspx?id=12442">Windows 2008 Media Services</a> (media server) as a free download, and there is a free version of <a href="http://www.microsoft.com/expression/products/encoderpro_overview.aspx">Microsoft Expression Encoder</a>. I found them easy to set up and use, but with the free tools most of the touted neat features like forward error correction, smooth streaming, adaptive streaming and multi-bitrate encoding aren&#8217;t available with the free tools. Still, with the free tools I was able to easily set up a live webcast viewable by Windows/IE/Windows Media Player users. However, those using other browsers or other platforms couldn&#8217;t view the stream. There may be a Java applet that will play the streams on other platforms, but I moved on to other teams before I really tried to make this work.</li>
<li>Team Apple: Even though our web show is inseparably tied to Microsoft and Windows, a vocal number of the audience want to use their iPads and iPhones to view the show. At first glance team Apple and team Flash seem to overlap on compatible codecs, but they use different streaming protocols and possibly different muxes and containers. Since our primary target is Wintel platforms this does not seem to be the best server platform for us. However the Quicktime encoder pricing did seem to be quite reasonable, and Darwin Streaming Server is freely available and compatible with Windows, although I found the <a href="http://static.macosforge.org/dss/downloads/">download page</a> excruciatingly hard to find.</li>
<li>Team RealMedia: I consider this a fading team. That may or may not be fair, but the RealPlayer plugin or player has to be installed for clients to use this, and I don&#8217;t believe most have this installed already, so for me it was a nonstarter. I didn&#8217;t look into pricing.</li>
<li>Team HTML5: The great news: an open standard, and a choice of codecs including an open free video codec (VP8 / WebM). The bad news: this is an emerging standard, and I don&#8217;t think I can assume my viewers will be using an HTML5-compliant browser, although I could be wrong about that. And apparently the current VP8 encoder is not fast enough for live webcasts. HTML5 with its video tags brings hopes that the proprietary video format wars may be over in a few years and streaming video will be easier and cheaper, but it&#8217;s not here yet.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://itkia.com/streaming-a-live-webcast-concepts-and-know-your-audiences-tech/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
