<?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>theChrisWalker.net &#187; Android</title>
	<atom:link href="http://thechriswalker.net/tag/android/feed" rel="self" type="application/rss+xml" />
	<link>http://thechriswalker.net</link>
	<description>I like Web Development</description>
	<lastBuildDate>Tue, 31 Aug 2010 07:42:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Tethering the Google G1 &#8212; at last!</title>
		<link>http://thechriswalker.net/2010-03/tethering-the-google-g1-at-last.html</link>
		<comments>http://thechriswalker.net/2010-03/tethering-the-google-g1-at-last.html#comments</comments>
		<pubDate>Fri, 26 Mar 2010 18:29:51 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Not Code]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[G1]]></category>
		<category><![CDATA[Phones]]></category>

		<guid isPermaLink="false">http://thechriswalker.net/?p=204</guid>
		<description><![CDATA[Wow, I have wanted this for such a long time and I finally found out how to do it today. In fact I have posted this entry whilst on the bus using my Android phone&#8217;s 3G capabilities with my laptop connected by USB. And you don&#8217;t have to have root access! OK, so how does [...]]]></description>
			<content:encoded><![CDATA[<p>Wow, I have wanted this for such a long time and I finally found out how to do it today. In fact I have posted this entry whilst on the bus using my Android phone&#8217;s 3G capabilities with my laptop connected by USB.</p>
<h2>And you don&#8217;t have to have root access!</h2>
<p>OK, so how does it work. There&#8217;s two parts. One on the PC (or Mac&#8230;) and one on the phone. The phone bit is easy thanks to the man behind <a href="http://code.google.com/p/proxoid/">Proxoid</a> a proxy App for Android. It&#8217;s free and available in the Marketplace. Also it&#8217;s a tiny download and has almost zero configuration!  The PC bit requires the Android SDK, which is a free download from Google. Here are the instructions:<br />
<span id="more-204"></span></p>
<h3>Phone Setup</h3>
<ol>
<li><img style="float:right" src="http://chart.apis.google.com/chart?cht=qr&#038;chs=128x128&#038;chl=market%3A%2F%2Fsearch%3Fq%3Dproxoid" alt="market://search?q=proxoid" title="market://search?q=proxoid" /> Get &#8220;Proxoid&#8221; from the marketplace (<a href="market://search?q=proxoid">market://search?q=proxoid from your phone</a> or use the QR code) </li>
<li>Enable USB Debugging  from <em>Settings > Applications > Development > USB Debugging</em></li>
<li>Run Proxoid and connect your phone to your PC by USB.</li>
<li>(optional) Choose the port you want to use (default: 8080)</li>
</ol>
<h3>PC Setup</h3>
<p>These steps are pretty generic, as they will be different for different operating systems. I&#8217;ll give full instructions for Linux Mint 8 (the distor I am using) which should work for most Ubuntu/Debian type systems.</p>
<ol>
<li>Download Android SDK from <a href ="http://developer.android.com/sdk/index.html">http://developer.android.com/sdk/index.html</a></li>
<li>Extract it somewhere.</li>
<li>Start the ADB server (more code below)</li>
<li>Start the port forwarding.</li>
<li>Change your network proxy</li>
</ol>
<p>So on Mint that goes along the lines of:</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>developer.android.com<span style="color: #000000; font-weight: bold;">/</span>sdk<span style="color: #000000; font-weight: bold;">/</span>download.html?<span style="color: #007800;">v</span>=android-sdk_r05-linux_86.tgz<br />
$ <span style="color: #c20cb9; font-weight: bold;">tar</span> xcf android-sdk_r05-linux_86.tgz<br />
$ <span style="color: #7a0874; font-weight: bold;">cd</span> android-sdk-linux_86<span style="color: #000000; font-weight: bold;">/</span>tools<br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> .<span style="color: #000000; font-weight: bold;">/</span>adb start-server<br />
<span style="color: #000000; font-weight: bold;">*</span> daemon not running. starting it now <span style="color: #000000; font-weight: bold;">*</span><br />
<span style="color: #000000; font-weight: bold;">*</span> daemon started successfully <span style="color: #000000; font-weight: bold;">*</span><br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> .<span style="color: #000000; font-weight: bold;">/</span>adb forward tcp:<span style="color: #000000;">8080</span> tcp:<span style="color: #000000;">8080</span><br />
$ gnome-network-properties</div></div>
<p>That will bring up the network proxy setup. I have a &#8220;location&#8221; set for the proxy which is a SOCKS Proxy at &#8220;localhost&#8221; on port 8080 (or whichever yort u choose).</p>
<p>Open you&#8217;re browser and bingo Internet over 3G &#8211; try http://whatismyip.com to check you&#8217;re not on your usual IP address!</p>
<p>As the SOCKS proxy pretty much only works for HTTP and web based traffic you might want to use FoxyProxy for Firefox which allows you to change proxy settings quickly and easily. Definitely a good idea for windows users, not sure how easy it is on a Mac. Also I wrapped the ADB commands into a single script that I can run to start the tethering.</p>
<p>There you go.  Tethered 3G internet access for Android phones!</p>
<p>So far not free and non-jailbroken way to do this on an iPhone (please someone prove me wrong!)&#8230;</p>
<p><strong>UPDATE: 15th May 2010</strong> I have since found that Proxoid doesn&#8217;t always work for me. However the same effect can be achieved (and more securely) using ConnectBot (or any other SSH client supporting Dynamic Port Forwarding) to setup a SOCKS proxy SSH tunnel.</p>
<p><strong>UPDATE: 31st August 2010</strong> I have now replaced the G1 with an HTC Wildfire, which tethers simply as an option when you connect by USB &#8211; no configuration necessary, my laptop just recognised it as an USB Ethernet interface. Easy!.</p>
]]></content:encoded>
			<wfw:commentRss>http://thechriswalker.net/2010-03/tethering-the-google-g1-at-last.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UPnP Wizardry</title>
		<link>http://thechriswalker.net/2010-01/upnp-wizardry.html</link>
		<comments>http://thechriswalker.net/2010-01/upnp-wizardry.html#comments</comments>
		<pubDate>Tue, 12 Jan 2010 15:18:37 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Not Code]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[UPnP]]></category>
		<category><![CDATA[xbox]]></category>

		<guid isPermaLink="false">http://thechriswalker.net/?p=167</guid>
		<description><![CDATA[You may notice an Xbox360 related theme in my current posts, as after getting one, most of my technology thought process is involved in something to do with it. Hence the Xbox Live Gamercard API I wrote about before. Now we get on to UPnP. Universal Plug and Play is used for 2 mains things [...]]]></description>
			<content:encoded><![CDATA[<p>You may notice an Xbox360 related theme in my current posts, as after getting one, most of my technology thought process is involved in something to do with it. Hence the <a href="http://thechriswalker.net/2009-12/xbox-live-gamercard-api.html">Xbox Live Gamercard API</a> I wrote about before. Now we get on to <a href="http://en.wikipedia.org/wiki/Universal_Plug_and_Play">UPnP</a>.</p>
<p>Universal Plug and Play is used for 2 mains things as far as I can tell.</p>
<ol>
<li>Dynamically opening holes in firewalls/NAT configurations for inbound connections to services. (<em>bad!</em></li>
<li>Media Discover/playback/control on a local network. (<em>good!</em>)</li>
</ol>
<p>The first is bad in my opinion. I don&#8217;t want the ability for some software behind my firewall to allow connections into my network. It might make some software function a little more smoothly, but if it&#8217;s that important that connections can be made inbound I would have set up a port-forward myself.</p>
<p>So I am only concerned with the second scenario.</p>
<p> <span id="more-167"></span></p>
<p>The situation was that the Xbox360 can Stream Music/Pictures and Video from a <a href="www.xbox.com/PCsetup">Windows based PC</a>. Great, except if you haven&#8217;t got a windows based PC, or you have all your media on a fileserver running Ubuntu Server and don&#8217;t want to have to have another PC on just to stream to your Xbox360. So I did some digging and it turns out that the Xbox360 uses a &#8220;<em>standardised</em>&#8221; UPnP discovery protocol. I say &#8220;<em>standardised</em>&#8221; because it&#8217;s not quite compliant, but close enough.</p>
<p>I look at the options available and try <a href="http://ushare.geexbox.org/">uShare </a>first. It looks good, but the Xbox won&#8217;t see it and it can&#8217;t read the ID3 info from my music &#8211; rendering the whole thing useless.</p>
<p>Next <a href="http://www.twonkyvision.de/buy_server.html">TwonkyMediaServer</a>. I read somewhere that the linux demo doesn&#8217;t expire. I hope not, because it worked beautifully pretty much out of the box. The only gripe is that there&#8217;s no nice init scripts and I have to run a shell script every time I want to start/stop/status/restart it. But it read my media and the Xbox360 recognised it and I haven&#8217;t looked back.</p>
<p>So I thought, <em>Wow, this UPnP thing is pretty cool. but it must be more than this?</em>. So I booted up a Windows7 PC. I had had trouble with this machine because Windows Media Player didn&#8217;t like the fact that all my music was on a Read-Only SMB share. That and I hate the way the Windows won&#8217;t let you connect to different shares on the host with different credentials! How rubbish!</p>
<p>Still WMP12 didn&#8217;t like my read-only filesystem. However, with Twonky running on the network, all the music just &#8220;appeared&#8221; like magic in the &#8220;Other Libraries&#8221; section. nice.</p>
<p>Then I thought of another thing that had been annoying me. <em>Why can&#8217;t I stream media from my fileserver to my Android phone over Wifi?</em></p>
<p>Well, guess what? There&#8217;s an App for that!</p>
<p><a href="http://www.andromote.de/">Andromote</a> can connect to UPnP media servers and play back the content. Also, and this is quite cool, I can specifiy the media server as Twonky, specify the Media Renderer (i.e. what plays it) as my Windows7 PC, and use the Andromote App as the Control Point &#8211; allow full media browsing, playback, skipping, seeking and volume control of the PC from my phone. Pretty neat, eh?</p>
<p>The whole time, all the servers and renderers are auto-discovered, no configuration necessary. That&#8217;s pretty cool.</p>
<p>So in summary UPnP media is in 3 distinct parts and the best bit is that each part can be on a separate physical machine, or 2 on 1, or 1 each on 3 separate physical devices. Very flexible. The parts:</p>
<p><strong>Media Server</strong> &#8212; Serves the media &#8211; duh. i.e. media is physically stored (or accessed from) here.</p>
<p><strong>Media Renderer</strong> &#8212; Plays back the media &#8211; simples.</p>
<p><strong>Media Control Point</strong> &#8212; Controls the Media. Reads media info and tells the renderer what to play.</p>
<p>So the most common configuration is the server on one machine and the renderer and control point in another. That&#8217;s how the Xbox360 works.</p>
<p>So that was my experience into UPNP. I realise now that it was slightly unecessary as my old Xbox, running <a href="http://xbmc.org/">XBMC</a>, would have (<a href="http://xbmc.org/wiki/?title=UPnP_Sharing#Compatible_UPnP_ControlPoints_and_Media-Players_.28UPnP-clients.29">according to their wiki</a>) worked as the UPNP media server out of the box and is conencted to all my shares, and isn&#8217;t a hassle to turn on as it sits right next to my Xbox360. It&#8217;ll be my fallback if Twonky does expire&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://thechriswalker.net/2010-01/upnp-wizardry.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
