<?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>Blogs &#187; Jon Mountjoy</title>
	<atom:link href="http://software.intel.com/en-us/blogs/author/jon-mountjoy/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/en-us/blogs</link>
	<description></description>
	<lastBuildDate>Fri, 25 May 2012 22:49:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>MarcoPolo - super context awareness for your mobile computer</title>
		<link>http://software.intel.com/en-us/blogs/2007/11/20/marcopolo-super-context-awareness-for-your-mobile-computer/</link>
		<comments>http://software.intel.com/en-us/blogs/2007/11/20/marcopolo-super-context-awareness-for-your-mobile-computer/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 18:50:49 +0000</pubDate>
		<dc:creator>Jon Mountjoy</dc:creator>
				<category><![CDATA[Mobility]]></category>
		<category><![CDATA[context awareness]]></category>
		<category><![CDATA[marcopolo]]></category>
		<category><![CDATA[mobile awareness]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[Power Efficiency]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2007/11/20/marcopolo-super-context-awareness-for-your-mobile-computer/</guid>
		<description><![CDATA[Wonderful MarcoPolo - it takes mobile awareness to a new level.  I can make my computer *context aware* - even taking into account ambient light, time of day, and wifi connectivity.  Fuzzy rule matching too.]]></description>
			<content:encoded><![CDATA[<p>As the docs say, "<a href="http://www.symonds.id.au/marcopolo/" title="MarcoPolo - Context-aware computing for Mac OS X">MarcoPolo</a>'s concept of contexts is a generalisation of a location, and encompasses more than just where your computer is. A context might represent what you are doing, or what else is going on around you."  In other words, a context is a generalization of a location - it's not just where you are, it's what you're doing with your computer too.</p>
<p>What's important here is not so much this particular application, but what it teaches about building mobile awareness into applications.</p>
<h3>Overview and Concepts</h3>
<p>The basic idea is that you have  set of <strong>contexts</strong>, determined by a fuzzy matching <strong>rules</strong> that use some <strong>evidence sources</strong>.  For example, you may have a rule that says if your IP address is 192.168.1.11, then you're in the "Home" context, or if you're running Skype then you're in a "Meeting" context, or if your power is disconnected and you don't have an IP address that you're in a "Mobile" context....you get the idea.  You can even nest contexts.  Here's a list of some of the evidence sources (add Wifi):</p>
<p><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2007/11/mp-evidence.gif" alt="evidence" /></p>
<p>Rules determine your context from these evidence sources. They're pretty smart rules too, taking into account the type of evidence, parameters and a confidence (letting them be a little fuzzy). An example from the docs is that if you have a bluetooth device connected, then you can be 80% confident that you're at home (with your bluetooth mouse ;-)).</p>
<p>Here's a rule I set up:<br />
<img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2007/11/mp-rules.gif" alt="rules" /></p>
<p>It states that if I have a particular IP address (10.63.138.*), then I know I'm in the BeanScene context (my local coffee shop).  The rules can get pretty funky.  For example, you can select contexts based on whether:</p>
<ul>
<li>your audio output is going to headphones or a monitor,</li>
<li>ambient light is below a particular threshold</li>
<li>you're connected to a power socket</li>
<li>you're running a particular application</li>
</ul>
<p>and so on.  The fact that rules have confidences, and that you can have multiple rules, leads to a very powerful context setup.  (I imagine a future release will include a rule that lets me set a threshold on the battery power level)</p>
<p>MarcoPolo periodically monitors these rules and then changes context accordingly.  That brings us to the final piece of functionality.  <strong>Actions</strong> that you can carry out when in a particular context.  Here is a list of default actions:</p>
<p><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2007/11/mp-actions.gif" alt="actions" /></p>
<p>So for example, I can mount an internal network drive as soon as I move into the "Work" context, change my network configuration, and open up my mail after a suitable delay.<br />
You can also run scripts instead of using the default actions.  Because a considerable number of applications are scriptable on OS X (Leopard ;-) ), I can pretty much get my computer to sing or dance, depending on context.  Having said that, I don't yet know how to script my Mac to put the display to sleep sooner - something I'd like to do if I'm not connected to a power source.</p>
<h3>Relationships with MPSDK</h3>
<p>The <a href="http://ossmpsdk.intel.com/">MPSDK</a> offers some functionality with which to code an application like MarcoPolo.  I love the way MarcoPolo generalizes the notion of mobile awareness to something much broader though.  The documentation for MarcoPolo states that it loops, checking resources against rules.  I know MPSDK has some event-based processing on, which may improve the operation of MarcoPolo.  Somethings are intrinsically expensive though - like scanning your wifi network.</p>
<h3>Summary</h3>
<p><a href="http://www.intel.com/software/mobile/">ISN Mobility</a> is all about mobile awareness of applications.  It seems to me that MarcoPolo offers that kind of functionality in spades.  In fact, it's a generic framework that can sit on top of your computer *and* its applications, manipulating them depending on context.  Now I really can tell my Mac to disable the virus scan if I'm not connected to the power supply.</p>
<p>I want the generic functionality that MarcoPolo offers standard, out of the box in my operating system.  It's an awesome app, which has taught me about some new aspects of being "mobile aware".</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2007/11/20/marcopolo-super-context-awareness-for-your-mobile-computer/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Connect to the internet and big brother will know your location</title>
		<link>http://software.intel.com/en-us/blogs/2007/11/02/connect-to-the-internet-and-big-brother-will-know-your-location/</link>
		<comments>http://software.intel.com/en-us/blogs/2007/11/02/connect-to-the-internet-and-big-brother-will-know-your-location/#comments</comments>
		<pubDate>Fri, 02 Nov 2007 17:12:08 +0000</pubDate>
		<dc:creator>Jon Mountjoy</dc:creator>
				<category><![CDATA[Mobility]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2007/11/02/connect-to-the-internet-and-big-brother-will-know-your-location/</guid>
		<description><![CDATA[Location aware applications and public databases mapping WiFi points to physical locations.  Imagine coupling this with your social media too - no more tweets about where you are.]]></description>
			<content:encoded><![CDATA[<p>It turns out that lots of folk are beavering away at databases that allow one to translate your IP/WiFi point to an actual physical location.   <a href="http://software.intel.com/en-us/blogs/2007/10/31/mpsdk-helps-on-location-calculation/">Bin just blogged</a> about how the MPSDK could help architect programs that calculate location, addressing the problem of what happens when you change access point (from fixed to WiFi or back again for example).</p>
<p>He points to the interesting <a href="http://www.placelab.org/">Place Lab</a> which provides software for device positioning, and via that I also found <a href="http://www.wigle.net/">WiGLE</a>, a "wireless geographic logging engine."</p>
<p>I often use <a href="http://www.istumbler.net/">iStumbler</a> to show me all access points near by, and that got me thinking.  Instead of just using information from a single access point, can't you use information from multiple access points?  For example, when I go to my coffee shop I see three access points, two are public, and using information from all of those I'd surely get a better idea of where I am.</p>
<p>Better yet, imagine coupling this with peer-to-peer, using say bluetooth (I want really close peers).  Perhaps my machine already has a physical location (I'm connected on a fixed network in Edinburgh).  Now another machine close to mine can inherit my physical location.  You'll need some kind of time-tagged system of course (I'm getting on a plane tomorrow), but this opens up interesting possibilities for other applications too (watches, PSPs, anything with a bluetooth to connect to a peer to find out where it is).</p>
<p>As the TabletBlog <a href="http://tabletblog.com/2007/10/n800-vs-n810-tableteers-have-choices.html">points out</a>,  devices such as the Nokia N810 are location aware - so imagine the possibilities of adding this to your social networking.  You can have your Facebook page automatically updated with your location, <a href="http://www.dopplr.com">Dopplr</a> too.  As <a href="http://andypiper.wordpress.com/2007/11/01/what-do-i-need-twitter-for-anyway/">Andy Piper points out</a>, it could put an end to all those tweets about "I'm in Edinburgh now, weather fine but mild, rain expected"...</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2007/11/02/connect-to-the-internet-and-big-brother-will-know-your-location/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>lesswatts.org</title>
		<link>http://software.intel.com/en-us/blogs/2007/10/08/lesswattsorg/</link>
		<comments>http://software.intel.com/en-us/blogs/2007/10/08/lesswattsorg/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 15:57:38 +0000</pubDate>
		<dc:creator>Jon Mountjoy</dc:creator>
				<category><![CDATA[Mobility]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2007/10/08/lesswattsorg/</guid>
		<description><![CDATA[Via LinuxDevices I've just come across an Intel site, LessWatts.org, which looks at "saving power with Linux on Intel Platforms." I wonder if they're looking at context-aware Linux programs as well as tweaking the kernel. This seems to have been widely publicized, though I haven't seen any mention of it here on softwareblogs. [ As [...]]]></description>
			<content:encoded><![CDATA[<p>Via <a href="http://www.linuxdevices.com/news/NS3389239055.html">LinuxDevices</a> I've just come across an Intel site, <a href="http://www.lesswatts.org/index.php">LessWatts.org</a>, which looks at "saving power with Linux on Intel Platforms."  I wonder if they're looking at context-aware Linux programs as well as tweaking the kernel.</p>
<p>This seems to have been <a href="http://www.ddj.com/linux-open-source/201807925">widely</a> <a href="http://news.zdnet.co.uk/software/0,1000000121,39289569,00.htm">publicized</a>, though I haven't seen any mention of it here on softwareblogs.</p>
<p>[ As an aside, I wonder if "lesswatts" makes sense.  Shouldn't it be "fewerwatts"?  I mean, "watts" is a <a href="http://www.llrx.com/columns/grammar2.htm">countable thing</a>.  Perhaps they can get a domain redirect? :-) ]</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2007/10/08/lesswattsorg/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Energy-aware software layers</title>
		<link>http://software.intel.com/en-us/blogs/2007/10/08/energy-aware-software-layers/</link>
		<comments>http://software.intel.com/en-us/blogs/2007/10/08/energy-aware-software-layers/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 15:56:49 +0000</pubDate>
		<dc:creator>Jon Mountjoy</dc:creator>
				<category><![CDATA[Mobility]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2007/10/08/energy-aware-software-layers/</guid>
		<description><![CDATA[UMPC Portal: the only way to produce a device with good battery life is to combine best-of-breed components and design with an energy-aware software layer. It's an interesting post, looking at battery life and what it takes to bring down energy consumption in UMPC and MID devices. ISN has just recently published an article on [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.umpcportal.com/modules/news/article.php?storyid=952">UMPC Portal</a>: <em>the only way to produce a device with good battery life is to combine best-of-breed components and design with an energy-aware software layer</em>.</p>
<p>It's an interesting post, looking at battery life and what it takes to bring down energy consumption in UMPC and MID devices.</p>
<p>ISN has just recently published an article on this subject, <a href="http://softwarecommunity.intel.com/articles/eng/1458.htm">Creating Energy-Efficient Software</a>, which looks at some of the steps that can be taken on the software side.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2007/10/08/energy-aware-software-layers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Installer for Mobile Platform SDK - description of the bits you get</title>
		<link>http://software.intel.com/en-us/blogs/2007/09/21/new-installer-for-mobile-platform-sdk-description-of-the-bits-you-get/</link>
		<comments>http://software.intel.com/en-us/blogs/2007/09/21/new-installer-for-mobile-platform-sdk-description-of-the-bits-you-get/#comments</comments>
		<pubDate>Fri, 21 Sep 2007 17:48:09 +0000</pubDate>
		<dc:creator>Jon Mountjoy</dc:creator>
				<category><![CDATA[Mobility]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2007/09/21/new-installer-for-mobile-platform-sdk-description-of-the-bits-you-get/</guid>
		<description><![CDATA[A Windows Installer for the Mobile Platform SDK is now available. Here's a quick rundown of what you get with the installer, and why the SDK says that my Core 2 Duo only has a single core...]]></description>
			<content:encoded><![CDATA[<p>As <a href="http://software.intel.com/en-us/blogs/2007/09/20/exciting-news-the-sdk-installer-for-mpsdk-is-launched/" title="Intel® Software Network Blogs » Blog Archive » Exciting News! The SDK Installer for MPSDK Is Launched!">Joe points out</a>, there's a new installer for the Intel Mobile Platform SDK. <a href="http://ossmpsdk.intel.com/file.php?fid=11" title="SDK Downloads | Files">Get it here</a>. It requires Windows XP/Vista, so I loaded it up on my VMWare XP installation this morning and gave it bash. Installation requires <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=10CC340B-F857-4A14-83F5-25634C3BF043&amp;displaylang=en" title="Microsoft .NET Framework 3.0 Redistributable Package">.NET</a> and <a href="http://www.java.com/en/download/index.jsp" title="Download Free Java Software">Java</a>, presumably because of the available language bindings to Java and .NET. After installation, I got a nice set of menu items. <img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2007/09/in_menu.gif" /> Let's run through them:</p>
<ul>
<li><em>Bandwidth</em> contains a really awesome application built on the MPSDK that allows you to control and monitor the bandwidth of applications or processes. For example, I can limit Bittorrent's to 100Kbps :-) I'll blog more about this app soon.</li>
<li><em>Document</em> contains the all-important programmer's guide. According to the doc it "provides an overview of mobilized software design, the specification and the information model used by the Platform Awareness subsystem of the Intel Mobile Platform Software Development Kit (Intel Mobile Platform SDK)." So if you're developing with the MPSDK, you want to read this. This guide should be online. I've submitted a <a href="http://ossmpsdk.intel.com/bugzilla_search.php" title="SDK Bugs">bug</a> request to that effect.</li>
<li><em>Information Viewers</em> - this folder contains the "MS.NET Information Viewer". I think this is another example of an application built using the MPSDK, though there are no docs so I'm guessing here. I used it to interrogate my hardware, and set up an event which fired when the screen size changed:<img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2007/09/in-information.gif" /></li>
<li><em>Samples</em> contains sample code that uses the MPSDK. I clicked on the "MS.NET Samples" header and this actually fired up Visual Studio 2005 which successfully imported what seems to be a Visual Studio 2003 project. They seem to compile too.</li>
</ul>
<p>I guess there's one thing missing - the source. I'm not sure if that's in this package. Hopefully Joe will leave a comment on this post and let us know! An amusing aside. I used the information viewer app to investigate hardware info. Here's what it said for my core 2 duo:</p>
<p><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2007/09/in-proc.gif" alt="proc" /></p>
<p>(I had restricted the VMWare image to a single core :-) )</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2007/09/21/new-installer-for-mobile-platform-sdk-description-of-the-bits-you-get/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SyncServer is consuming valuable network resources</title>
		<link>http://software.intel.com/en-us/blogs/2007/08/13/syncserver-is-consuming-valuable-network-resources/</link>
		<comments>http://software.intel.com/en-us/blogs/2007/08/13/syncserver-is-consuming-valuable-network-resources/#comments</comments>
		<pubDate>Mon, 13 Aug 2007 18:50:37 +0000</pubDate>
		<dc:creator>Jon Mountjoy</dc:creator>
				<category><![CDATA[Mobility]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2007/08/13/syncserver-is-consuming-valuable-network-resources/</guid>
		<description><![CDATA[I was lounging in a coffee shop yesterday, on a slow modem line (3G via my Nokia N73 mobile phone). Having recently written about connectivity and power, I thought I'd investigate why my shiny MacBook Pro was so slow at accessing the web. Bad SyncServer.]]></description>
			<content:encoded><![CDATA[<p> I was lounging in a coffee shop yesterday, on a slow modem line (via my mobile phone). Having recently written about <a href="http://software.intel.com/en-us/blogs/2007/07/23/connectivity-is-only-part-of-the-user-experience/">connectivity</a> and <a href="http://software.intel.com/en-us/blogs/2007/07/29/changing-perspective-on-extending-battery-life/">power</a>, I thought I'd investigate why my shiny MacBook Pro was so slow at accessing the web.</p>
<p>It looked as if some processes were consuming a vital resource - my network. Although the link is slow (MacBook via Bluetooth to Nokia N73 which uses 3G to Orange network - you'd think this would be fast, but it's dog slow for some reason, which has nothing to do with my computer), it was even slower than usual.</p>
<p>So I applied a little latent Unix knowledge with a lot of <code>man</code> pages and came up with the following script:</p>
<pre>
 while (true); do
 netstat -na -p tcp |grep -v "127.0.0.1" |tail -n +3 |
 cut -c45-64 |
 perl -ne '$_ =~ s/(.*).(.*)/1/;print "@" . $_;' |
 lsof -i; sleep 60;
 done</pre>
<p>It should run in a Bash shell on any good BSD system :-) <code>netstat</code> tells me what internet addresses are being used, the <code>grep</code> removes those connections to the localhost, the <code>tail</code> removes the header information, <code>cut</code> gives me the IP address column, the perl script removes the port number and adds "@" characters, needed by the awesomely magic <code>lsof</code> command which lets me know which processes are using the IP addresses. (You can make this run faster by adding the <code>-n</code> parameter to <code>lsof</code>, but that gave me a headache once).</p>
<p>Here's a typical result:</p>
<pre>
 OmniOutli 28180 jon 9u IPv4 0x3f6fba0 0t0 UDP *:65080
 OmniOutli 28180 jon 10u IPv4 0x3f6f1e0 0t0 UDP *:53752
 Adium 28212 jon 10u IPv4 0x3f6e820 0t0 UDP *:53934
 Adium 28212 jon 17u IPv4 0x5d50a8c 0t0 TCP 192.168.1.68:57221-&gt;oam-d28a.blue.aol.com:aol (ESTABLISHED)
 Adium 28212 jon 23u IPv4 0x6ab82b0 0t0 UDP *:54171
 Adium 28212 jon 24u IPv4 0x4baea8c 0t0 TCP 192.168.1.68:57223-&gt;caim-m05b.blue.aol.com:aol (ESTABLISHED)
 Adium 28212 jon 25u IPv4 0x45a5a8c 0t0 TCP 192.168.1.68:57224-&gt;64.12.31.100:aol (ESTABLISHED)
 Safari 28292 jon 17u IPv4 0x45a4228 0t0 TCP 192.168.50.101:53277-&gt;ftp.oreilly.com:http (CLOSE_WAIT)
 Vienna 29581 jon 11u IPv4 0x4b845a4 0t0 TCP 192.168.1.68:57244-&gt;feeds.feedburner.com:http (ESTABLISHED)
 Vienna 29581 jon 26u IPv4 0x45c2394 0t0 TCP 192.168.1.68:57257-&gt;macrumors.com:http (SYN_SENT)</pre>
<p>This tells me that OmniOutliner has a few connections (I don't know why), that my IM client <a href="http://www.adiumx.com/" title="Adium - Download">Adium</a> is logged on to my AIM account, my browser is connected to an FTP server (huh!), and my blog reader ([http://www.opencommunity.co.uk/vienna2.php]>Vienna</a>) is checking out some feeds.</p>
<p>Using this procedure I found out that SyncServer was the culprit in my connectivity woes. It also used to hog the CPU on my old Mac. I'm not the <a href="http://www.macosxhints.com/article.php?story=20070205125711148" title="macosxhints.com - 10.4: Reset the .Mac Sync Server with Syncrospector">only</a> <a href="http://discussions.apple.com/thread.jspa?threadID=980416&amp;tstart=30" title="Apple - Support - Discussions - SyncServer Problem ...">one</a> with this problem either it seems. But at least I now know what the problem is. What I need is for SyncServer to be <a href="http://softwarecommunity.intel.com/isn/home/Mobility.aspx">mobile aware</a> - ie. not to synchronize my calendars and dozens of Safari RSS bookmarks when I'm on a low bandwidth connection. Sigh...</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2007/08/13/syncserver-is-consuming-valuable-network-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing perspective on extending battery life</title>
		<link>http://software.intel.com/en-us/blogs/2007/07/29/changing-perspective-on-extending-battery-life/</link>
		<comments>http://software.intel.com/en-us/blogs/2007/07/29/changing-perspective-on-extending-battery-life/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 04:20:53 +0000</pubDate>
		<dc:creator>Jon Mountjoy</dc:creator>
				<category><![CDATA[Mobility]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2007/07/29/changing-perspective-on-extending-battery-life/</guid>
		<description><![CDATA[My Mac has an "Energy Saver" that allows me to determine when the computer should sleep, when the display should dim/sleep, and when the hard disks should spin down. That's great, but it's rather crude. This information doesn't seep down into the programs running on my computer. It kinda makes sense doesn't it? ]]></description>
			<content:encoded><![CDATA[<p>Bad advice on extending battery life? Via <a href="http://jkontherun.blogs.com/jkontherun/2007/07/fried-beefs-15-.html" title="Friedbeef's 15 ways to extend laptop battery life">jkOnTheRun<br />
</a> I learned about Friedbeef's <a href="http://www.friedbeef.com/2007/07/01/top-15-ways-to-extend-your-laptop-battery-life/" title="Top 15 Ways to Extend Your Laptop's Battery Life">tips on extending battery life</a> (for laptops, UMPC and other devices). I think a change of perspective needs to take placeâ€”applications need to be more introspective, not users.</p>
<p>My Mac has an "Energy Saver" that allows me to determine when the computer should sleep, when the display should dim/sleep, and when the hard disks should spin down. That's great, but it's rather crude. This information doesn't seep down into the programs running on my computer. It kinda makes sense doesn't it?</p>
<p>For example, tip 3 is "Cut down on programs running in the background". Well, fine, but how about instead of doing this have my programs behave differently whether I have battery power or not? For example, iTunes can tell me "I'm not going to continue displaying this music visualization because it's sucking all the power that you have." Right now, I'm exporting a screencast via Quicktime. It's going to take 10 minutes of heavy CPU. Wouldn't it be nice if, as soon as I unplug the power cord, Quicktime suspends that export, or lowers the process priority?</p>
<p>Or how about Quake 3 automatically lowering the resolution as soon as I unplug? (See Bonus Tip #2). Or better yet, your virus scan (don't have one of those on my Mac ;-)) postponing its daily run until you have battery power?</p>
<p>So what am I advocating? Having a service layer that exposes mobile contextual information (power, connectivity, bandwidth etc.) to all programs, and having them set up as observers to changes in this information. <a href="http://software.intel.com/en-us/blogs/2007/07/25/intel-mobile-platform-sdk-open-source-project-has-been-launched/" title="Intel® Software Network Blogs » Blog Archive » Intel® Mobile Platform SDK Open Source Project Has Been Launched!">Joe has all the details</a> on how to write such programs using the recently open sourced Mobile Platform SDK.</p>
<p>Why do people continue to write programs that don't make use of this information? Why does my Mail client still try and fetch mail even when I'm <a href="http://software.intel.com/en-us/blogs/2007/07/23/connectivity-is-only-part-of-the-user-experience/" title="Intel® Software Network Blogs » Blog Archive » Connectivity is only part of the user experience">disconnected</a>? As more and more of us move away from desktops to mobile devices, this context-awareness makes more and more sense.....</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2007/07/29/changing-perspective-on-extending-battery-life/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Connectivity is only part of the user experience</title>
		<link>http://software.intel.com/en-us/blogs/2007/07/23/connectivity-is-only-part-of-the-user-experience/</link>
		<comments>http://software.intel.com/en-us/blogs/2007/07/23/connectivity-is-only-part-of-the-user-experience/#comments</comments>
		<pubDate>Tue, 24 Jul 2007 01:14:22 +0000</pubDate>
		<dc:creator>Jon Mountjoy</dc:creator>
				<category><![CDATA[Mobility]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2007/07/23/connectivity-is-only-part-of-the-user-experience/</guid>
		<description><![CDATA[Google Gears lets you take your work offline. But working offline is a symptom of connectivity, and connectivity is a spectrum. How about programming for the spectrum, and including power too...]]></description>
			<content:encoded><![CDATA[<p>There's an awful lot of interest in <a href="http://gears.google.com/" title="Google Gears (BETA)">Google Gears</a> right now (proving offline support for web applications), and rightly so. Other frameworks are jumping on the bandwagon too. Dojo <a href="http://ajaxian.com/archives/audible-ajax-episode-21-dojo-offline-on-google-gears" title="Dojo Offline on Google Gears">can now utilize Gears</a>, Adobe's <a href="http://www.mikechambers.com/blog/2007/05/30/apollo-beta-will-include-sqlite-embedded-database/" title="Mike Chambers » Blog Archive » Apollo Beta will include SQLite Embedded Database"><del>Apollo</del>AIR</a>, and from <a href="http://scobleizer.com/2007/05/30/google-brings-developers-offline-with-gears-new-offline-reader/" title="Google brings developers offline with "Gears"; new offline Reader « Scobleizer">Scoble's blog</a>, a host of others will soon be supported too. The motivating factor behind the technology is: Hey, I'm not always connected, so let me download and cache the data I'll probably want to access so that I can navigate the web while offline. The motivation behind <em>this</em> is really: I'm not always online. And surely, the motivation behind <em>that</em> is: I'm mobile. And if you're mobile, you're probably not lugging around a desktop - you're more than likely on a laptop. This all begs the question: <em>Surely there are more aspects to being "mobile" than "online"? </em>And of course there are:</p>
<ul>
<li><strong>Power</strong> - you'll be sometimes connected (to the power socket) and sometimes not. Wouldn't it be nice if my web applications (heavy animations?!?) knew this and could react appropriately. "Hey man, don't open this Java applet as it's going to drain the battery."</li>
<li><strong>Connectivity</strong> - you're not either online or not. It's a spectrum. You're sometimes connected, but slowly. Wouldn't it be nice if my web application would automatically adjust download resolution depending on my connectivity speed? (through a proxy, say)</li>
</ul>
<p>Now imagine the mashups. You're in a dodgy coffee shop on a dodgy internet connection browsing a (dodgy?) site, and when you click a download you get your browser rendering a nice little warning: <em><strong>You don't have enough power to download this huge file given your current connectivity! </strong></em>Now <em>that</em> is Google Gears on steroids... I wonder if the Google Gears, Adobe Apollo and all the rest know about Intel's <a href="http://softwarecommunity.intel.com/articles/eng/1026.htm">Web 2.0 TDK</a> that lets you interrogate your machine to do all this...</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2007/07/23/connectivity-is-only-part-of-the-user-experience/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

