<?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>mypod.me</title>
	<atom:link href="http://blog.mypod.me/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.mypod.me</link>
	<description>iPhone hackery and networkery with chewy BSD goodness!</description>
	<lastBuildDate>Sun, 18 Apr 2010 09:39:56 +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>Byteside 2.06: Augmented Reality</title>
		<link>http://blog.mypod.me/?p=129</link>
		<comments>http://blog.mypod.me/?p=129#comments</comments>
		<pubDate>Sun, 18 Apr 2010 09:39:56 +0000</pubDate>
		<dc:creator>Mark Pesce</dc:creator>
				<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[AR]]></category>
		<category><![CDATA[Byteside]]></category>
		<category><![CDATA[Pesce]]></category>
		<category><![CDATA[Sydney]]></category>

		<guid isPermaLink="false">http://blog.mypod.me/?p=129</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><embed src="http://blip.tv/play/hLFsgdXyRwI%2Em4v" type="application/x-shockwave-flash" width="480" height="300" allowscriptaccess="always" allowfullscreen="true"></embed></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mypod.me/?feed=rss2&amp;p=129</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ARG: Augmented Reality Google</title>
		<link>http://blog.mypod.me/?p=77</link>
		<comments>http://blog.mypod.me/?p=77#comments</comments>
		<pubDate>Tue, 06 Oct 2009 05:28:31 +0000</pubDate>
		<dc:creator>Mark Pesce</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[ARG]]></category>
		<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[Geolocation]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[RobotVision]]></category>
		<category><![CDATA[Wikitude]]></category>

		<guid isPermaLink="false">http://blog.mypod.me/?p=77</guid>
		<description><![CDATA[The next big phase of the Web is now here</strong>, the one we can <em>finally</em> call Web 3.0: the geolocative Web.]]></description>
			<content:encoded><![CDATA[<p>This is all <a href="http://lachstock.com.au/">Lachlan Hardy</a>&#8216;s fault.  He told me that I couldn&#8217;t come to <a href="http://webjam.com.au/webjam10">WebJam 10 </a>unless I presented.  And, because I was a bozo and didn&#8217;t get a ticket within <em>four hours</em> after they were announced, well, I reckoned I was out of luck.</p>
<p>Unless I presented.</p>
<p>At the start of last week I gave Vodafone and Apple a whole bunch of money to upgrade my wimpy 8GB iPhone 3G to a supercharged, &#8216;roid-raged 32GB iPhone 3GS.  The reasons for this upgrade were many and varied, but mostly centered on one thing: <a href="http://en.wikipedia.org/wiki/Augmented_reality">AR</a>.  </p>
<p>From my earliest days doing research into virtual reality (way back in 1990), I knew the best way to use the virtual world was to marry it intimately to the real world.  Hence <a href="http://www.webearth.org/">WebEarth</a>, which I coded up in a weekend in 1996.  Since then, Google Earth has come along to steal my thunder (heh), and we&#8217;ve seen a lot of other apps visualize and virtualize the real.  But, just in the past few months &#8211; since the release of high-powered Android phones and iPhone 3GS &#8211; we&#8217;ve started to see some real, handheld AR apps, like <a href="http://robotvision-ar.com/">RobotVision</a> and <a href="http://www.wikitude.org/">Wikitude</a>.</p>
<p>Both of them suck.</p>
<p>I say this out of love: they&#8217;re both technical tour-de-forces, but neither were designed by anyone who knows anything about UI/UX.  The fact that you look like a complete wanker when you&#8217;re using AR should have been the first tip off.  The fact that half the time you can&#8217;t trigger the AR content &#8211; because it&#8217;s too small, too far, too jiggly, too <em>something</em> &#8211; should have been another.</p>
<p><strong>The concept of AR is fantastic.  The execution is flawed.  It&#8217;s time to step back and do a re-think. </strong> </p>
<p><a href="http://mypod.me/arg/index.html">ARG</a> is my version of a rethought Augmented Reality application.  It is entirely text-based. (Yes, that may seem perverse coming from someone who spent a decade working in virtual reality, but there it is.)  It&#8217;s not just mere perversion &#8211; I&#8217;m making a point: you can visualize your AR data however you please, and <strong>it need not be visualized through a camera</strong>.  We&#8217;ve confused augmented reality with overlaid reality.  We need to separate these two until they can get their interface issues sorted out.  Right now, and for the rest of us, there&#8217;s the simplicity and versatility of text.</p>
<p>In a hundred lines of JavaScript and HTML, ARG uses the new whiz-bang <a href="http://en.wikipedia.org/wiki/HTML_5">HTML 5</a> <a href="http://dev.w3.org/geo/api/spec-source.html">Geolocation API</a> to access to coordinates of the device&#8217;s location, then passes them along to a Google Local search, displays the results, and repeats the process every minute.  That&#8217;s all it does &#8212; and why it only requires a hundred lines of code.  (Download the code by right-clicking <a href="http://mypod.me/arg/index.html">here</a>.)</p>
<div class="wp-caption aligncenter" style="width: 330px"><a href="http://www.flickr.com/photos/hyperpeople/3988331409/"><img alt="ARG on iPhone OS" src="http://farm3.static.flickr.com/2427/3988331409_f3ca739298_o_d.jpg" title="ARG on iPhone OS" width="320" height="480" /></a><p class="wp-caption-text">ARG on iPhone OS</p></div>
<p>I&#8217;m doing a Google Local search on everything &#8211; literally.  My search term is &#8216;*&#8217;.  The thing I learned immediately is that search results are not returned by proximity, but rather by relevance, which is a very different metric.  Objects further away show up higher in the list because they&#8217;re (presumably) more important.</p>
<p>I understand why Google does this, but it&#8217;s broken.  When you give Google precise coordinates, it should rank its responses proximally: closer items have a higher priority than items further away.  Otherwise, well, what&#8217;s the point?  You haven&#8217;t actually sorted anything &#8211; or, at best, kinda-sorta sorted them.  Really, you&#8217;ve handed me a pile of results that you&#8217;ve ranked according to some thoroughly opaque standard of relevance.  Not very helpful.  Google will need to be fixing that, because (drum roll) <strong>the next big phase of the Web is now here</strong>, the one we can <em>finally</em> call Web 3.0: the geolocative Web.</p>
<p>The world is the database of itself.  That database needs to be mirrored, in its dynamic entirety, online.  Right now, we&#8217;ve barely started to populate that database.  We&#8217;ve got a few buildings in there, and some streets, but very little of the material stuff of our lives.  A lot of that stuff doesn&#8217;t move around very much, or only moves around in a very limited proximity: all of that belongs in this database.  The things that move around, those need to go into this database too, and we need to develop ways for those moving things to report where they are to keep that database up-to-date.  And we need to have information in depth on every one of these things.  Not just what <a href="http://www.amazon.com/">Amazon</a> or <a href="http://imdb.com/">IMDB</a> or <a href="http://en.wikipedia.org/">Wikipedia</a> might tell us, but what we want to tell ourselves.  Every bit of our stuff, located in space, has its own tag cloud associated with it &#8211; though we&#8217;ve yet to make that explicit.  It&#8217;s time to begin. <strong> It&#8217;s time to build the web of the real.</strong></p>
<p>***</p>
<p>Just a few practical notes:</p>
<ol>
<li>ARG has been tested and runs fine under iPhone OS 3.0+, Firefox 3.5+, Google Chrome for Windows, and on Firefox 3.0+ and MSIE 6+ if they have <a href="http://gears.google.com/">Google Gears</a> installed.  There is no support for Safari 4.x at present (weirdly), though Safari 3.x with Gears should work.   If it says &#8220;FAKE&#8221; in the coordinate readout, it isn&#8217;t working.  Finally, ARG should work on Android phones, but in an initial test it failed.  I may have fixed that, but I haven&#8217;t had time (or a phone) for testing.  <a href="mailto:mpesce AT GOOGLE MAIL DOT COM">Let me know</a>.</li>
<li>Make sure to include the file gears_init.js in whatever directory you&#8217;re serving ARG from.  That&#8217;s a required Google Gears initialization file.  You can get it <a href="http://code.google.com/apis/gears/tools.html">here</a>.</li>
<li>Sometimes the geolocation query fails on Firefox 3.5, particularly when ARG is first starting up.  I have no idea why this happens.</li>
<li>ARG has a companion, <a href="http://mypod.me/arg/feen.html">Feen</a>, which runs a search on &#8220;coffee&#8221;.  It returns results which are more location-specific than a general query.</li>
<li>My very few slides from the WebJam presentation can be found <a href="http://mypod.me/arg/slides/">here</a>.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.mypod.me/?feed=rss2&amp;p=77</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>WpTouch</title>
		<link>http://blog.mypod.me/?p=62</link>
		<comments>http://blog.mypod.me/?p=62#comments</comments>
		<pubDate>Sat, 16 Aug 2008 23:08:45 +0000</pubDate>
		<dc:creator>Mark Pesce</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[WpTouch]]></category>

		<guid isPermaLink="false">http://blog.mypod.me/?p=62</guid>
		<description><![CDATA[Thanks to this nifty new WordPress plugin, this blog (and my other blogs) now looks very pretty when accessed via iPhone or iPod Touch. Give it a try. And if anyone wants to access this blog using another WebKit based mobile browser (Nokia N95 or equivalent), I&#8217;d be interested in hearing about your user experience.]]></description>
			<content:encoded><![CDATA[<p>Thanks to <a href="http://www.bravenewcode.com/wptouch/">this</a> nifty new WordPress plugin, this blog (and my <a href="http://blog.futurestreetconsulting.com/">other</a> <a href="http://blipvert.markpesce.com/">blogs</a>) now looks very pretty when accessed via iPhone or iPod Touch.  Give it a try.</p>
<p>And if anyone wants to access this blog using another WebKit based mobile browser (Nokia N95 or equivalent), I&#8217;d be interested in hearing about your user experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mypod.me/?feed=rss2&amp;p=62</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Simplify Media &amp; the Death of Radio</title>
		<link>http://blog.mypod.me/?p=58</link>
		<comments>http://blog.mypod.me/?p=58#comments</comments>
		<pubDate>Fri, 15 Aug 2008 13:00:40 +0000</pubDate>
		<dc:creator>Mark Pesce</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[3G]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iTunes]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[radio]]></category>
		<category><![CDATA[Simplify Media]]></category>
		<category><![CDATA[streaming]]></category>

		<guid isPermaLink="false">http://blog.mypod.me/?p=58</guid>
		<description><![CDATA[A just released app from Simplify Media now allows me to stream my iTunes library to my iPhone and my iPod Touch. From anywhere. It&#8217;ll work within the house over the wifi, but &#8211; far more significantly &#8211; it allows me to stream my iTunes library over the 3G network. So now, my music is [...]]]></description>
			<content:encoded><![CDATA[<p>A just released app from <a href="http://www.simplifymedia.com/">Simplify Media</a> now allows me to stream my iTunes library to my iPhone and my iPod Touch.  From anywhere.  It&#8217;ll work within the house over the wifi, but &#8211; far more significantly &#8211; it allows me to stream my iTunes library over the 3G network.</p>
<p>So now, my music is entirely portable.  And yes, that sound you heard was commercial radio, dying.</p>
<p>The iPhone app is <a href="http://www.appleinsider.com/articles/08/08/14/new_iphone_app_streams_itunes_collections_anywhere.html">free for the first 100,000 downloads</a>.  So if you have an iPhone, <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284941327&#038;mt=8">get it</a> now!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mypod.me/?feed=rss2&amp;p=58</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Qik</title>
		<link>http://blog.mypod.me/?p=54</link>
		<comments>http://blog.mypod.me/?p=54#comments</comments>
		<pubDate>Thu, 14 Aug 2008 10:34:51 +0000</pubDate>
		<dc:creator>Mark Pesce</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[hyperconnectivity]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Qik]]></category>
		<category><![CDATA[streaming]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.mypod.me/?p=54</guid>
		<description><![CDATA[Qik, the streaming video shot out for jailbroken iPhone 3G. Which is yet another reason to jailbreak. Probably the best one so far.]]></description>
			<content:encoded><![CDATA[<p>Qik, the streaming video shot <a href="http://qik.com/">out</a> for jailbroken iPhone 3G.  Which is yet another reason to jailbreak.  Probably the best one so far.</p>
<p><object width="425" height="319"><param name="movie" value="http://qik.com/swfs/qik_player.swf?streamname=8011b257c17841d58d4771e95a3ca760&#038;vid=164146&#038;playback=false&#038;polling=false&#038;user=mpesce&#038;displayname=mpesce&#038;safelink=mpesce&#038;userlock=true&#038;islive=&#038;username=anonymous" ></param><param name="wmode" value="transparent" ></param><param name="allowScriptAccess" value="always" ><embed src="http://qik.com/swfs/qik_player.swf?streamname=8011b257c17841d58d4771e95a3ca760&#038;vid=164146&#038;playback=false&#038;polling=false&#038;user=mpesce&#038;displayname=mpesce&#038;safelink=mpesce&#038;userlock=true&#038;islive=&#038;username=anonymous" type="application/x-shockwave-flash" wmode="transparent" width="425" height="319" allowScriptAccess="always"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mypod.me/?feed=rss2&amp;p=54</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iServe 0.01 &#8211; Come and Play!</title>
		<link>http://blog.mypod.me/?p=49</link>
		<comments>http://blog.mypod.me/?p=49#comments</comments>
		<pubDate>Mon, 04 Aug 2008 13:37:33 +0000</pubDate>
		<dc:creator>Mark Pesce</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod Touch]]></category>
		<category><![CDATA[iServe]]></category>

		<guid isPermaLink="false">http://blog.mypod.me/?p=49</guid>
		<description><![CDATA[After two days of hackery, a very basic version of iServe is up and running and available for all of you to play with here. Please be nice, don&#8217;t upload anything too large (and be prepared to wait during the bigger uploads) and if you upload anything other than the stated file types, you won&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>After two days of hackery, a <em>very</em> basic version of iServe is up and running and available for all of you to play with <a href="http://webearth.org:8086/iserve/">here</a>.  Please be nice, don&#8217;t upload anything too large (and be prepared to wait during the bigger uploads) and if you upload anything other than the stated file types, you won&#8217;t see it.  But please do upload &#8211; and download.  It&#8217;s all running on my iPod Touch.</p>
<p>There are lots of implementation details and scripts to share, and I&#8217;ll be doing that tomorrow.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mypod.me/?feed=rss2&amp;p=49</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iServe</title>
		<link>http://blog.mypod.me/?p=37</link>
		<comments>http://blog.mypod.me/?p=37#comments</comments>
		<pubDate>Sun, 03 Aug 2008 11:45:51 +0000</pubDate>
		<dc:creator>Mark Pesce</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iServe]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[ubiquitous computing]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.mypod.me/?p=37</guid>
		<description><![CDATA[Let me explain why you really do need a web server on your iPhone. When I mentioned this on Twitter and thereabouts, a few days ago, I was greeted with incredulity. After all, the web is big and wide &#8211; why would you also need a web server that you can carry around in your [...]]]></description>
			<content:encoded><![CDATA[<p>Let me explain why you really <em>do</em> need a web server on your iPhone. </p>
<p>When I mentioned this on <a href="http://twitter.com/mpesce">Twitter</a> and thereabouts, a few days ago, I was greeted with incredulity.  After all, the web is big and wide &#8211; why would you also need a web server that you can carry around in your pocket?</p>
<p>The answer is simple, and so very obvious that I&#8217;m now shocked Apple didn&#8217;t think of this themselves.</p>
<p>Let me present my latest invention: <strong>iServe</strong>.</p>
<p>iServe leverages the ubiquitous technology of the World Wide Web with the fast-becoming-ubiquitous technology of <a href="http://en.wikipedia.org/wiki/ZeroConf">ZeroConf</a> (known as <a href="http://en.wikipedia.org/wiki/Bonjour_%28software%29">Bonjour</a> in the Apple universe).  When you put these two technologies together into a jailbroken iPod Touch or iPhone, you get a portable and fully scalable document viewing platform.  Let me explain&#8230;</p>
<p>I have been using my iPhone to read PDF files &#8211; specifically, I&#8217;ve been reading Apple&#8217;s <em>Safari Web Content Guide for iPhone OS</em>.  It&#8217;s useful &#8211; and came in handy for iServe &#8211; but it&#8217;s a book-style PDF file, which means that the pages are too big to be comfortably read on the iPhone&#8217;s screen.  Silly for Apple to make a mistake like this, but they&#8217;re still thinking of a &#8220;book&#8221; as something that&#8217;s printed on 8 1/2 x 11&#8243; or A4 size pages.  It isn&#8217;t, not really, but PDF format (or rather, the viewers for PDF format) don&#8217;t take this into account.  So, I read the Apple PDF in landscape mode on my iPhone, but, even with the 480 pixel-width screen, I had to constantly swipe a finger across the screen to see the end of the line I was reading.  Not at all pleasant.  (Yes, I could shrink the document to fit across the display, but I can not read 4-point font sizes.  Reading should not be an optometric exam.)</p>
<p>iServe provides an elegant solution to this problem.  Using the <code>lighttpd</code> web server I installed this morning, which has a document root at <code>/var/www</code>, I created a new subdirectory, <code>/var/www/iserve</code>.  Into this directory I place whatever PDF, DOC and XLS files I might want to view.   I then wrote a Python script, <code><a href="http://www.mypod.me/iserve/index.py.script">index.py</a></code>, placed into this directory, so it is executed whenever a request for the iserve directory contents is received.  This script simply reads the contents of the directory and gives a nicely-formatted HTML output in response.  This script either works directly from Mobile Safari on the iPhone (where it&#8217;s accessed at <code>http://localhost/iserve/</code>), or, because of Bonjour services which are always running on the iPhone, it can be accessed at <code>http://lugh.local/iserve/</code> from any machine residing on the same physical network as my iPhone.  And that&#8217;s the magic of it: if I want to read a PDF on my iPhone, I can do it, using Mobile Safari as a launchpad.  If I want to read it from, say, my MacBook Pro, I can do that too, using Safari (or Firefox) as a launchpad.</p>
<p>Suddenly I have a scaleable, ubiquitous display capability for any of the documents on my iPhone.</p>
<p>A few pictures might help.  Here&#8217;s the icon for iServe on my iPhone:</p>
<p><a href="http://www.flickr.com/photos/hyperpeople/2727208207/" title="iServe icon by mpesce, on Flickr"><img src="http://farm4.static.flickr.com/3178/2727208207_59a421eb6a.jpg" width="320" height="480" alt="iServe icon" /></a></p>
<p/>
When I tap on that icon, I launch Mobile Safari, and this is what I see:</p>
<p/>
<a href="http://www.flickr.com/photos/hyperpeople/2728036284/" title="iServe by mpesce, on Flickr"><img src="http://farm4.static.flickr.com/3211/2728036284_3a9dd3007c_o.jpg" width="320" height="480" alt="iServe" /></a></p>
<p/>
I can scroll through and tap on any of these documents, launching the appropriate viewer.</p>
<p/>
Now, if I should wander into my flat, I can walk up to my MacBookPro, and do precisely the same thing:</p>
<p/>
<a href="http://www.flickr.com/photos/hyperpeople/2728040260/" title="iServe Desktop by mpesce, on Flickr"><img src="http://farm4.static.flickr.com/3025/2728040260_a2f7c87fe3.jpg" width="500" height="478" alt="iServe Desktop" /></a></p>
<p/>
Voila.  Portability and scalability.  This is more than a convenience.  I could perhaps be carrying documents to a client for review.  I can review them on the train as I travel to the meeting, then, when I arrive in the client&#8217;s offices, I can simply present my iPhone, connect to the client&#8217;s network, and browse the documents.  The client can do a &#8220;Save As&#8230;&#8221; command on their browser, should they want their own copy of these documents.</p>
<p>It&#8217;s all very simple, and very elegant.  And it makes me very confused that Apple overlooked this.  Now perhaps some enterprising entrepreneur is putting together something in the App Store which does this.  In some sense, FileMagnet (an iPhone app which I own) does this.  But it&#8217;s entirely proprietary and requires a client program to be installed on a Mac or PC.  Using standard web technologies makes this much easier.  Web browsers are everywhere.  Wireless networks are everywhere.  Shouldn&#8217;t an iPhone or iPod Touch put those ubiquitous resources to work?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mypod.me/?feed=rss2&amp;p=37</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>A web server on an iPhone?</title>
		<link>http://blog.mypod.me/?p=31</link>
		<comments>http://blog.mypod.me/?p=31#comments</comments>
		<pubDate>Sat, 02 Aug 2008 20:35:48 +0000</pubDate>
		<dc:creator>Mark Pesce</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.mypod.me/?p=31</guid>
		<description><![CDATA[Yes, and there are some very good reasons why you&#8217;d want a webserver running on your iPhone. Those reasons come later. First comes the webserver. To install lighttpd, a tiny and insanely full-featured HTTP server, either use the Cydia GUI, or use the command apt-get install lighttpd. Now a few more steps of manual configuration [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, and there are some very good reasons why you&#8217;d want a webserver running on your iPhone.  Those reasons come later.  First comes the webserver.</p>
<p>To install <code>lighttpd</code>, a tiny and insanely full-featured HTTP server, either use the Cydia GUI, or use the command <code>apt-get install lighttpd</code>.  Now a few more steps of manual configuration will complete the installation:</p>
<ul>
<li>Create the directory <code>/var/log/lighttpd </code>to store the log files;</li>
<li>Create the directory <code>/var/www</code> as the document root for your web site;</li>
<li>Create a configuration file in <code>/etc/lighttpd.conf</code> for server configuration.</li>
</ul>
<p>Mine looks like this:</p>
<p><code>server.document-root = "/var/www/"<br />
server.port = 80 # Default<br />
server.modules = ( "mod_cgi","mod_indexfile","mod_dirlisting", "mod_accesslog" )<br />
server.tag = "iPhone lighttpd"<br />
server.name = "Aiode.webearth.org"</p>
<p>server.pid-file = "/var/run/lighttpd.pid"<br />
dir-listing.activate = "enable"<br />
dir-listing.external-css = "/.dirlist/iphonedirlist.css"<br />
accesslog.filename = "/var/log/lighttpd/access.log"<br />
server.errorlog = "/var/log/lighttpd/error.log"</p>
<p>index-file.names = ( "index.php", "index.py", "index.pl", "index.cgi", "index.html", "default.html", "/.dirlist/dir-generator.py" )<br />
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".cgi", ".py" )</p>
<p>cgi.assign = ( ".pl"  => "/usr/bin/perl", ".py" => "/usr/bin/python", ".rb" => "/usr/local/bin/ruby", ".cgi" => "", ".sh" => "", ".php" => "/opt/iphone/bin/php-cgi" )</p>
<p>mimetype.assign             = (<br />
  ".pdf"          =>      "application/pdf",<br />
  ".sig"          =>      "application/pgp-signature",<br />
  ".spl"          =>      "application/futuresplash",<br />
  ".class"        =>      "application/octet-stream",<br />
  ".ps"           =>      "application/postscript",<br />
  ".torrent"      =>      "application/x-bittorrent",<br />
  ".dvi"          =>      "application/x-dvi",<br />
  ".gz"           =>      "application/x-gzip",<br />
  ".pac"          =>      "application/x-ns-proxy-autoconfig",<br />
  ".swf"          =>      "application/x-shockwave-flash",<br />
  ".tar.gz"       =>      "application/x-tgz",<br />
  ".tgz"          =>      "application/x-tgz",<br />
  ".tar"          =>      "application/x-tar",<br />
  ".zip"          =>      "application/zip",<br />
  ".mp3"          =>      "audio/mpeg",<br />
  ".m3u"          =>      "audio/x-mpegurl",<br />
  ".wma"          =>      "audio/x-ms-wma",<br />
  ".wax"          =>      "audio/x-ms-wax",<br />
  ".ogg"          =>      "application/ogg",<br />
  ".wav"          =>      "audio/x-wav",<br />
  ".gif"          =>      "image/gif",<br />
  ".jpg"          =>      "image/jpeg",<br />
  ".jpeg"         =>      "image/jpeg",<br />
  ".png"          =>      "image/png",<br />
  ".xbm"          =>      "image/x-xbitmap",<br />
  ".xpm"          =>      "image/x-xpixmap",<br />
  ".xwd"          =>      "image/x-xwindowdump",<br />
  ".css"          =>      "text/css",<br />
  ".html"         =>      "text/html",<br />
  ".htm"          =>      "text/html",<br />
  ".js"           =>      "text/javascript",<br />
  ".asc"          =>      "text/plain",<br />
  ".c"            =>      "text/plain",<br />
  ".cpp"          =>      "text/plain",<br />
  ".log"          =>      "text/plain",<br />
  ".conf"         =>      "text/plain",<br />
  ".text"         =>      "text/plain",<br />
  ".txt"          =>      "text/plain",<br />
  ".dtd"          =>      "text/xml",<br />
  ".xml"          =>      "text/xml",<br />
  ".mpeg"         =>      "video/mpeg",<br />
  ".mpg"          =>      "video/mpeg",<br />
  ".mov"          =>      "video/quicktime",<br />
  ".qt"           =>      "video/quicktime",<br />
  ".avi"          =>      "video/x-msvideo",<br />
  ".asf"          =>      "video/x-ms-asf",<br />
  ".asx"          =>      "video/x-ms-asf",<br />
  ".wmv"          =>      "video/x-ms-wmv",<br />
  ".bz2"          =>      "application/x-bzip",<br />
  ".tbz"          =>      "application/x-bzip-compressed-tar",<br />
  ".tar.bz2"      =>      "application/x-bzip-compressed-tar",<br />
  # default mime type<br />
  ""              =>      "application/octet-stream",<br />
)</code></p>
<p>In order to make sure that the web server launches every time the iPhone reboots, we need to add a <code>launchd</code> control file.   This file, <code>com.lighttpd.plist</code> is placed into the <code>/Library/LaunchDaemons</code> directory, where the launchd process will start it and keep it running if it should crash or be killed.</p>
<p>And once I can figure out how to get tags into WordPress, well, then I&#8217;ll show you the contents of that file.  Sigh.  The launchd control file is an XML property list, which means that WordPress (and other web tools) attempt to parse it, rather than display it.  </p>
<p>When iPhone is rebooted, <code>lighttpd</code> will be running as one the background processes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mypod.me/?feed=rss2&amp;p=31</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>IP forwarding not implemented in the kernel?</title>
		<link>http://blog.mypod.me/?p=17</link>
		<comments>http://blog.mypod.me/?p=17#comments</comments>
		<pubDate>Sat, 02 Aug 2008 14:01:48 +0000</pubDate>
		<dc:creator>Mark Pesce</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.mypod.me/?p=17</guid>
		<description><![CDATA[Twitter has been quite helpful. This post, from one of the iPhone boards, seems to be echoing the outcome of today&#8217;s research: I believe that the iPhone OS kernel lacks the capability to perform IP forwarding. If that truly is the case, I&#8217;m not sure what can be done &#8211; short of writing a kernel [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/Ycros">Twitter</a> has been quite helpful.  <a href="http://www.hackint0sh.org/forum/showthread.php?t=46613&#038;page=2">This</a> post, from one of the iPhone boards, seems to be echoing the outcome of today&#8217;s research: I believe that the iPhone OS kernel lacks the capability to perform IP forwarding.</p>
<p>If that truly is the case, I&#8217;m not sure what can be done &#8211; short of writing a kernel module &#8211; to make the iPhone route the way any normal *NIX box would.  I don&#8217;t really know enough to write a kernel module, and I have better things to do with my time than learn.  Since the demand is there for something along these lines, I strongly suspect that someone else out in the wilds of this totally anarchic community of iPhone hackers is working on it.</p>
<p>This is odd.  IP forwarding is pretty much bog-standard stuff.  Perhaps they left it out of the kernel compilation for space reasons.  It&#8217;s hard to say.  Or, perhaps, somewhat more conspiratorially, ï£¿ did this to prevent the kind of tethering that iPhone is truly capable of.</p>
<p>I don&#8217;t have any answers.  I do have a lot of data, and I&#8217;ve learned a huge amount about the iPhone.  It&#8217;s basically a very stripped-down BSD boxen, running &#8220;SpringBoard&#8221; as its interface &#8211; the equivalent of the OSX Finder.  There are lots of services running, but they&#8217;re mostly geared to the iPhone as media device.  </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mypod.me/?feed=rss2&amp;p=17</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Drama!  Excitement!  Childish behaviour!</title>
		<link>http://blog.mypod.me/?p=5</link>
		<comments>http://blog.mypod.me/?p=5#comments</comments>
		<pubDate>Sat, 02 Aug 2008 03:22:45 +0000</pubDate>
		<dc:creator>Mark Pesce</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.mypod.me/?p=5</guid>
		<description><![CDATA[Update: I did manage to buy NetShare while it was briefly available through the Australian iTunes App Store. And it certainly does seem to work nicely. It&#8217;s only a web proxy, and therefore of limited utility (Twitter would work, but Mail wouldn&#8217;t).Another update: I have been informed that I may be wrong about this, and [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="" src="http://farm4.static.flickr.com/3274/2724326814_d1eb74bed4.jpg" class="alignnone" width="500" height="483" /></p>
<p><strong>Update:</strong> I did manage to buy NetShare while it was briefly available through the Australian iTunes App Store.  And it certainly does seem to work nicely.  It&#8217;s only a web proxy, and therefore of limited utility (Twitter would work, but Mail wouldn&#8217;t).<em>Another update: I have been informed that I may be wrong about this, and will investigate.</em>  Will be best to see if <code>routed</code> can be configured to make the iPhone a true router.  It clearly already has a full routing implementation &#8211; that&#8217;s just part of the kernel.  And the <code>route</code> command is there.  So it may be rather less complicated than people are making it out to be.</p>
<p><strong>Another update:  </strong>As has been pointed out by people who actually do these sorts of things for a living, routed isn&#8217;t important.  IP Forwarding is.  That&#8217;s done with the <code>ipfw</code> tool, which is part of iPhone OS, but may be lacking all sorts of internal goodness which actually makes it, well, useful to do packet forwarding.  Research continues&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mypod.me/?feed=rss2&amp;p=5</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
