<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0cBQH09fCp7ImA9WhRUE0g.&quot;"><id>tag:blogger.com,1999:blog-8825992</id><updated>2012-01-23T13:37:31.364-07:00</updated><category term="amqp" /><category term="load-balancing" /><category term="icons" /><category term="news" /><category term="twisted" /><category term="seminars" /><category term="movies" /><category term="books" /><category term="codethink" /><category term="development" /><category term="soa" /><category term="community" /><category term="hosting" /><category term="privacy" /><category term="zope3" /><category term="environments" /><category term="pycon" /><category term="deferreds" /><category term="nevow" /><category term="summer" /><category term="combinator" /><category term="video" /><category term="virtual" /><category term="email" /><category term="launchpad" /><category term="minicom" /><category term="solaris" /><category term="training" /><category term="announcements" /><category term="scripting" /><category term="scheme" /><category term="reform" /><category term="visualization" /><category term="hci" /><category term="graphics" /><category term="spore" /><category term="philosophy" /><category term="pymon" /><category term="concurrency" /><category term="uist" /><category term="networking" /><category term="graph-theory" /><category term="rest" /><category term="health care" /><category term="text" /><category term="tablets" /><category term="divmod" /><category term="vendors" /><category term="mp3" /><category term="txamqp" /><category term="pymt" /><category term="ubuntu" /><category term="blogging" /><category term="uls" /><category term="pydot" /><category term="conferences" /><category term="json" /><category term="subversion" /><category term="google" /><category term="unity" /><category term="virtualization" /><category term="partnerships" /><category term="education" /><category term="multi-touch" /><category term="technology" /><category term="smtp" /><category term="auctions" /><category term="ec2" /><category term="messaging" /><category term="alchemy" /><category term="rhythmbox" /><category term="sofware" /><category term="mplayer" /><category term="coroutines" /><category term="mobile-computing" /><category term="jsonrpc" /><category term="systems" /><category term="distributed services" /><category term="zope" /><category term="q-and-a" /><category term="metaclasses" /><category term="services" /><category term="code" /><category term="usability" /><category term="hardware" /><category term="touch" /><category term="version-control" /><category term="toolkits" /><category term="generators" /><category term="1-to-many" /><category term="psu" /><category term="rrd" /><category term="howto" /><category term="smalltalk" /><category term="cp/m" /><category term="mac os x" /><category term="gtk" /><category term="world" /><category term="txjsonrpc" /><category term="music" /><category term="libraries" /><category term="databases" /><category term="publishing" /><category term="servers" /><category term="outdoors" /><category term="holden web" /><category term="parallelism" /><category term="lamp" /><category term="qt" /><category term="management" /><category term="meetup" /><category term="finance" /><category term="documentation" /><category term="mantissa" /><category term="erlang" /><category term="web" /><category term="gestures" /><category term="storage" /><category term="projects" /><category term="open source" /><category term="occupy" /><category term="freedom" /><category term="pop3" /><category term="bazaar" /><category term="applications" /><category term="travel" /><category term="storm" /><category term="haskell" /><category term="sun" /><category term="stross" /><category term="safari" /><category term="anthropology" /><category term="lame" /><category term="serial" /><category term="business" /><category term="meego" /><category term="reviews" /><category term="rpc" /><category term="mysql" /><category term="psf" /><category term="security" /><category term="bzr" /><category term="netbooks" /><category term="pyrrd" /><category term="experiments" /><category term="camping" /><category term="cloud" /><category term="links" /><category term="natty" /><category term="pycon2009" /><category term="trac" /><category term="transparency" /><category term="genetic programming" /><category term="software" /><category term="o'reilly" /><category term="packt" /><category term="pypi" /><category term="interviews" /><category term="testing" /><category term="release" /><category term="architecture" /><category term="itunes" /><category term="ping.fm" /><category term="deployment-poetry" /><category term="articles" /><category term="cgi twisted" /><category term="greenlets" /><category term="tx" /><category term="asynchronous" /><category term="utouch" /><category term="uds" /><category term="txamqp-sinfonia" /><category term="apple" /><category term="evolutionary programming" /><category term="maverick" /><category term="spoofs" /><category term="lucid" /><category term="graphs" /><category term="wearable-computing" /><category term="graphviz" /><category term="user-interface" /><category term="gnome" /><category term="nextstep" /><category term="rrdtool" /><category term="commands" /><category term="python" /><category term="internet" /><category term="debian" /><category term="python 3" /><category term="windows" /><category term="smartphones" /><category term="ecnomics" /><category term="development frameworks" /><category term="presentations" /><category term="linux" /><category term="miniturization" /><category term="book reviews" /><category term="openstack" /><category term="research" /><category term="oscon" /><category term="vacation" /><category term="tsf" /><category term="ajax" /><category term="programming" /><category term="politics" /><category term="foundations" /><category term="games" /><category term="human-resources" /><category term="lisp" /><category term="monitoring" /><category term="rtf" /><category term="canonical" /><category term="ascii" /><category term="vde" /><category term="companies" /><category term="windowmaker" /><category term="programming methodologies" /><category term="xorg" /><category term="tcp" /><category term="comet" /><category term="zenoss" /><category term="economics" /><category term="jobs" /><category term="qa" /><category term="hacks" /><category term="entertainment" /><category term="orm" /><category term="intellectual property" /><category term="command line" /><category term="revolution" /><category term="landscape" /><category term="after-cloud" /><category term="data" /><category term="functional-programming" /><category term="utilities" /><category term="tahoe" /><title>Electric Duncan</title><subtitle type="html">S c r i b b l e s    o f    a    P y - d o n i a n    R e n e g a d e</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://oubiwann.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>296</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/ElectricDuncan" /><feedburner:info uri="electricduncan" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>39.735745</geo:lat><geo:long>-105.193374</geo:long><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><entry gd:etag="W/&quot;DEYMR305fyp7ImA9WhRQEk8.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-2095265409736546463</id><published>2011-12-06T19:21:00.001-07:00</published><updated>2011-12-06T19:49:46.327-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-06T19:49:46.327-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="openstack" /><category scheme="http://www.blogger.com/atom/ns#" term="companies" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="hosting" /><title>OpenStack at DreamHost</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-i2e1yBn68hU/Tt7Nmr3OdgI/AAAAAAAAAGk/lrjeA31S3og/s1600/logo-green.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-i2e1yBn68hU/Tt7Nmr3OdgI/AAAAAAAAAGk/lrjeA31S3og/s1600/logo-green.png" /&gt;&lt;/a&gt;&lt;/div&gt;
So I guess this is old news now, but &lt;a href="http://dreamhost.com/"&gt;DreamHost&lt;/a&gt; is really into &lt;a href="http://openstack.org/"&gt;OpenStack&lt;/a&gt; :-)&lt;br /&gt;
&lt;br /&gt;
(In fact, during recess, DreamHost asked if I would pass a note to OpenStack. I didn't look inside the note, but we can all guess what it said...)&lt;br /&gt;
&lt;br /&gt;
I was hired specifically to work on cloud stuff here at DreamHost, and we've got a new team that's super-excited about this -- they're starting to gear up for increased contributions and community engagement, gettin' themselves some cloud. We've now got our own &lt;a href="https://launchpad.net/%7Edreamhost-openstack-team"&gt;Launchpad team&lt;/a&gt;, we're working on a handful of &lt;a href="https://blueprints.launchpad.net/%7Edreamhost-openstack-team"&gt;blueprints&lt;/a&gt;, chatting it up on mail lists and IRC meetings -- you get the picture :-) Exciting times.&lt;br /&gt;
&lt;br /&gt;
For official blog posts and other news items that highlight DreamHost's interest and involvement in OpenStack, check these out:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://dreamhost.com/press-releases/dreamhost-pledges-support-to-openstack-project/"&gt;DreamHost Pledges Support to OpenStack Project&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.dreamhost.com/2011/06/23/dreamhost-and-openstack-sitting-in-a-tree/"&gt;DreamHost and OpenStack sitting in a tree...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.dreamhost.com/2011/07/28/dreamhost-uses-dells-crowbar-as-a-lever-to-raise-automation/"&gt;DreamHost uses Dell’s Crowbar as a lever to raise automation&lt;/a&gt; (more on Crowbar &lt;a href="https://github.com/dellcloudedge/crowbar"&gt;here&lt;/a&gt;)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.thewhir.com/web-hosting-news/062311_Web_Host_DreamHost_Contributing_Code_for_Ceph_File_System_to_OpenStack"&gt;Web Host DreamHost Contributing Code for Ceph File System to OpenStack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.oscon.com/oscon2011/public/schedule/detail/21174"&gt;Ceph and OpenStack at OSCON 2011&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
I'll be writing more about our OpenStack work later, but wanted to get a quick cloud-shout-out done before too much time passed...&lt;br /&gt;
&lt;br /&gt;
P.S. We're hiring Python rock-stars!&lt;br /&gt;
 &lt;br /&gt;
P.P.S. Did I mention that DH is an AWESOME place to work? We got an award for that, &lt;a href="http://www.ocregister.com/articles/leadership-327671-employees-company.html"&gt;two years in a row&lt;/a&gt; :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-2095265409736546463?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=6gKK_1bIMXY:kx1_0Grcc1U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=6gKK_1bIMXY:kx1_0Grcc1U:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=6gKK_1bIMXY:kx1_0Grcc1U:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=6gKK_1bIMXY:kx1_0Grcc1U:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=6gKK_1bIMXY:kx1_0Grcc1U:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=6gKK_1bIMXY:kx1_0Grcc1U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=6gKK_1bIMXY:kx1_0Grcc1U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=6gKK_1bIMXY:kx1_0Grcc1U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/6gKK_1bIMXY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/2095265409736546463/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2011/12/openstack-at-dreamhost.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/2095265409736546463?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/2095265409736546463?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/6gKK_1bIMXY/openstack-at-dreamhost.html" title="OpenStack at DreamHost" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-i2e1yBn68hU/Tt7Nmr3OdgI/AAAAAAAAAGk/lrjeA31S3og/s72-c/logo-green.png" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2011/12/openstack-at-dreamhost.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQGSH8zeSp7ImA9WhRSGUw.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-1965643131699265265</id><published>2011-11-21T13:37:00.001-07:00</published><updated>2011-11-21T15:08:49.181-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-21T15:08:49.181-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="world" /><category scheme="http://www.blogger.com/atom/ns#" term="occupy" /><category scheme="http://www.blogger.com/atom/ns#" term="revolution" /><category scheme="http://www.blogger.com/atom/ns#" term="reform" /><category scheme="http://www.blogger.com/atom/ns#" term="finance" /><category scheme="http://www.blogger.com/atom/ns#" term="politics" /><category scheme="http://www.blogger.com/atom/ns#" term="freedom" /><title>Occupy's Declaration of Independence</title><content type="html">&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-u3DrtSIopjk/Tsq7RPaBCcI/AAAAAAAAAGc/ol9PlZAPcOo/s1600/Revolution_by_Peter_Whitley.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-u3DrtSIopjk/Tsq7RPaBCcI/AAAAAAAAAGc/ol9PlZAPcOo/s320/Revolution_by_Peter_Whitley.jpg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Illustration by Peter Whitley&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
There's one thing I would really, really love to see under the tree this year -- under &lt;b&gt;everyone's&lt;/b&gt; tree: Occupy the World.&lt;br /&gt;
&lt;br /&gt;
For the first time in history, it seems that there might be enough momentum, enough communication, enough strength of individual convictions, and enough mass support to be able to have a world-wide, non-violent, revolution.&lt;br /&gt;
&lt;br /&gt;
Taking the US as an example in this beautiful hope: imagine 2 or 3 million people showing up on the lawns of the US law-making machinery in Washington, D.C., issuing their declaration of independence and simply stating a fact: "Things are now going to change, we will not leave until we have the government that we want."&lt;br /&gt;
&lt;br /&gt;
Far from mob rule, the 99 is intelligent, lucid, and a collection of THE overwhelming majority... regardless of old political parties. An enormous amount of discussion, insightful inspection, exploration of alternatives has been researched, written about, and promoted over the past 5 to 10 years, co-culminating in what we see around us today as the Occupy movement. I have the utmost faith in these thinkers (by which I mean everyone from Gar Alperovitz to my second cousins working in Detroit, MI automotive plants) and their (our!) ability to produce a new constitution that provides for the 99 fairly. Such a new system would stand in stark contrast to that of today's system: one that caters to policies driven by enormous, "legal" bribes or banking systems that continuously steal from the customers and shareholders, running off with the loot.&lt;br /&gt;
&lt;br /&gt;
The 99 is saying it, and has been saying it for a while: "It's time for a change."&lt;br /&gt;
&lt;br /&gt;
They've taken things further by showing an undeniable presence at the scenes of crimes (financial and governmental institutions). I say let's take the last logical step, and fix the problem: let's put a new system of government in place. Let's have radical, peaceful change. Let's do it with poise, grace, and while keeping the benefit of the entire planet foremost in our minds. Let's do it world-wide, and not stop until the job is done. Let's have a revolution.&lt;br /&gt;
&lt;br /&gt;
Let's have &lt;i&gt;the&lt;/i&gt; revolution. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-1965643131699265265?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=83tNgDUERRM:FVGDUzd5p5I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=83tNgDUERRM:FVGDUzd5p5I:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=83tNgDUERRM:FVGDUzd5p5I:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=83tNgDUERRM:FVGDUzd5p5I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=83tNgDUERRM:FVGDUzd5p5I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=83tNgDUERRM:FVGDUzd5p5I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=83tNgDUERRM:FVGDUzd5p5I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=83tNgDUERRM:FVGDUzd5p5I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/83tNgDUERRM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/1965643131699265265/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2011/11/occupys-declaration-of-independence.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/1965643131699265265?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/1965643131699265265?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/83tNgDUERRM/occupys-declaration-of-independence.html" title="Occupy's Declaration of Independence" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-u3DrtSIopjk/Tsq7RPaBCcI/AAAAAAAAAGc/ol9PlZAPcOo/s72-c/Revolution_by_Peter_Whitley.jpg" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2011/11/occupys-declaration-of-independence.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMGQn0zeip7ImA9WhZbGEo.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-3415484336119608563</id><published>2011-06-23T17:44:00.004-06:00</published><updated>2011-06-23T17:57:03.382-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-23T17:57:03.382-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="data" /><category scheme="http://www.blogger.com/atom/ns#" term="wearable-computing" /><category scheme="http://www.blogger.com/atom/ns#" term="virtual" /><category scheme="http://www.blogger.com/atom/ns#" term="usability" /><category scheme="http://www.blogger.com/atom/ns#" term="text" /><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="hci" /><category scheme="http://www.blogger.com/atom/ns#" term="books" /><category scheme="http://www.blogger.com/atom/ns#" term="anthropology" /><title>Physical Beings with Digital Lives</title><content type="html">&lt;p&gt;&lt;img style="float: left; margin-right: 10px; margin-bottom: 10px;" title="2001A Space Odyssey.jpg" src="http://lh5.ggpht.com/-g7-DWKYDV2o/TgPRbnm7ybI/AAAAAAAAAF8/hLTDvW7K400/2001A%252520Space%252520Odyssey.jpg?imgmax=800" border="0" alt="2001A Space Odyssey" width="300" height="148" /&gt;&lt;/p&gt;&lt;p&gt;There's a lot that one could say about that title. In fact, it could be the title of a high-volume collaborative blog... That aside, here's the context for this post: books. Books and Reality. And data.&lt;/p&gt;&lt;p&gt;This post got so long that I now need to add a list of sections here, just to make it more accessible. My apologies :-/&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Mini Table of Contents&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Books&lt;/li&gt;&lt;li&gt;Books in the Sky&lt;/li&gt;&lt;li&gt;Yeah, I Know: Go Social&lt;/li&gt;&lt;li&gt;Human Data History&lt;/li&gt;&lt;li&gt;Reality Merges &lt;/li&gt;&lt;li&gt;Conclusion&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Books&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I have tons of books. Actual, physical books. Walls of them. Some I use all the time (reference). Some I read once a year (good books that support multiple reads). Others I've only read once, perhaps as far back as high school (when I started collecting). My bookshelves are like a random associative memory array: reading each title or the act of pulling one from the shelf brings back a flood of memories, relived experiences, sometimes actual sense perceptions. It's a powerfully visceral activity.&lt;/p&gt;&lt;p&gt;But that's just &lt;em&gt;my&lt;/em&gt; books. When I'm at friends' homes or offices, I &lt;em&gt;cannot&lt;/em&gt; keep my eyes off their bookshelves. It's an irresistible compulsion. I linger and browse, often past any semblance of socially acceptable time limits. My conversational replies experience a rapid exponential die-off -- in duration, gaps, and semantic value -- culminating in grunts and finally silence. (My favorite offices to visit so far? friend mathematicians/maths professors!)&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Books in the Sky&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Oddly, I love books in digital format. I never really got hung up on the bit about not having the paper entity in my hands (though I have turned a digital book reader over, expecting the next page... though that was deep in the plot of a Greg Egan novel!). Traveling as much as I do, I'm in heaven with ebooks. I feel like Superman, carrying around a library with me everywhere I go.&lt;/p&gt;&lt;p&gt;But when I passed a bookshelf the other day on my way out the door and fell under the spell of a book-memory flashback, I realized what was going away as I transitioned to virtual books. And the painful question arose: How am I going to nurture future layers of book-mulch and text-humus with this new æthereal, cloud-bound library I'm building?&lt;/p&gt;&lt;p&gt;How can I share with others, my stacks of books? How will I browse friends' books in their offices, asking about author X and title Y? How will we borrow from each other? What can be done to add this and related missing richness back into our lives once we adopt the virtual versions?&lt;/p&gt;&lt;p&gt;Light-emitting walls that can display titles from your Amazon account? Virtual over-lays visible with wearable/immersive computing accessories? Whatever we end up with, a gimmick isn't going to cut it. It will need to reflect the same depth of history that stacks of physical books have come to represent to us and the collective human psyche since we first started gathers works of the written word.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Yeah, I Know: Go Social&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I'm hung up on books here, I admit it. But the same goes equally well for much of what we experience in online social media as well. Everyone's trying to make a buck on people chatting, playing games, reading, etc. Business as usual.&lt;/p&gt;&lt;p&gt;But the problem is that everyone coming up with their own little solution, one piece at a time. Google, Facebook, LinkedIn, Last.fm, etc. "We socialize X." Wow. Good for you. Now, for every activity or group I'm interested in, I've got some tiny little corner of the internet that I need to pay attention to.&lt;/p&gt;&lt;p&gt;Right.&lt;/p&gt;&lt;p&gt;Maybe I'm just an online social idiot, but this isn't working for me. Too many places and pieces. The physical analogy would be me spending all day on the road, hitting all the social hot spots in the Colorado Front Range. Ain't gonna happen. Ever.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Human Data History&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The social data scene is a big stick up my butt. I really don't like it there and I'd love to get rid of it. It's poorly engineered, primitive state makes me grumpy. I don't own a thousand hammers [1]; I don't want a thousand of anything that all do basically the same thing [2]. Most of us probably don't own hundreds of houses, either (for ourselves, that is). We keep most of our stuff in the same location or two.&lt;/p&gt;&lt;p&gt;Speaking of houses, let's talk about settlement. How did we choose where to set up camp, towns, etc.? Trade routes, availability of resources (direct physical presence or presence by virtue of trade routes). Are we doing that now on the internet? Are we looking at the analog to fertile valleys, productive rivers, and protected harbors? Whose priorities do we have in mind? As we set up virtual presences, are we in locations that benefit businesses? Or ourselves?&lt;/p&gt;&lt;p&gt;If we choose the latter, the businesses will come because the people are there. If we do it the other way around, we'll be looking for new virtual homes if the businesses close shop or change the rules too much.&lt;/p&gt;&lt;p&gt;Coming back to data (but on the same anthropological note), historically we've had distinct divisions of our data:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;the secure location of our huts/houses/castles&lt;/li&gt;&lt;li&gt;what we presented about ourselves in adornment/fashion (public data)&lt;/li&gt;&lt;li&gt;what we could carry with us in bags/crates/vehicles&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Because of their prevalence in our history, any attempt at realizing personal data in a virtual environment would do well to reflect on these. We're naturally already predisposed to such approaches; such divisions are things that anyone can intuitively grasp.&lt;/p&gt;&lt;p&gt;The problem is that we're all used to a single platform: our mutually agreed-upon reality. There's no such thing online yet. And if there were, who would own/run it? Monopolies are eventually overthrown. We hate them. So how do we get around this?&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Reality Merges&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;This very naturally led to thoughts on digital lives in general. And this is more than just a question of usability or human-computer interaction. Rather, this is a question that borders on the metaphysical: how do we solve the problem of syncing divergent realities? Reality-reality interaction.&lt;/p&gt;&lt;p&gt;The problem shouldn't be minimalized by analogy: this isn't a "simple" matter of ensuring that the data in my address book on Google is the same as what's on my iPhone. My self-perception, many reminders of self-reflection, etc., take place as a result of various interactions I have with my surroundings: both real[3] and virtual. No problem. Except that the things that remind me are also things that others can see and interact with as well. Often, they will have associations that spark a neural cascade for them too.&lt;/p&gt;&lt;p&gt;I've had many conversations take place around objects in a shared environment where the name of the object was never mentioned, it was implicitly understood. When there's no shared object (or concept), we have to name the object, define it, share some basic associations, make sure that we're talking about the same thing, etc. Thats all prelude. Only with that done, can we have genuine communication take place around the given concept.&lt;/p&gt;&lt;p&gt;Now rinse and repeat for everything you want to talk about that revolves around or is at least related to something that exists virtually for you and isn't part of your shared, physical environment.&lt;/p&gt;&lt;p&gt;I can't imagine many useful general solutions to this. In fact, I can only imagine one (given our biological wiring): use what we know (in our bones) and overlay or augment our visual reality with another.&lt;/p&gt;&lt;p&gt;With augmented shared realities, there's no platform. You just need hardware that runs it and senses that can perceive it. Just like reality. At that point, we can start sharing what we want, allowing access to data about ourselves and what we like by dumping it into a shared perceptual space, regardless of the original data source. Merged.&lt;/p&gt;&lt;p&gt;Obviously, we're not there yet. We're going to need crazy improvements in mobile technology, storage, computer vision, etc. But once the technology catches up, I think we'll see some powerful needs being filled. And we might start coming out of the internet dark ages...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;None of this is new; Pick up any number of books by Charlie Stross[4], and there's all sorts of fun to be had by exploring his ideas. But the point of this post wasn't to be new. While we're all busy enjoying the latest fad in social media, I think it's important we think about where the progressive succession of fads is taking us. At each point, there's a natural next step (more accurately, set of possible next steps). Let's look more than just one in front of us and let's not forget what our biology has made us. We may not be able to engineer truly wise decisions about our future, or even make our lives better/more efficient. But it would be nice if we could at least not make things worse :-)&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Notes&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;[1] I think I have three, actually.&lt;/p&gt;&lt;p&gt;[2] This is one of the reasons I'm a big fan of http://ping.fm.&lt;/p&gt;&lt;p&gt;[3] Here I mean "real" in the "conventional" (shared) reality sense of Mahdyamikas. Ultimate reality... well, that's a topic for an entirely different sort of post...&lt;/p&gt;&lt;p&gt;[4] Check out his Amazon page: &lt;a href="http://www.amazon.com/Charles-Stross/e/B001H6IW0Q/"&gt;http://www.amazon.com/Charles-Stross/e/B001H6IW0Q/&lt;/a&gt;. Accelerando is probably his most praised book (and likely my favorite), but the ideas touched on in this blog post are explored in other works of his, most notably Glasshouse and Halting State.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-3415484336119608563?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=Kg7-NJ8Ln8A:dZiXb9f6Ovk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=Kg7-NJ8Ln8A:dZiXb9f6Ovk:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=Kg7-NJ8Ln8A:dZiXb9f6Ovk:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=Kg7-NJ8Ln8A:dZiXb9f6Ovk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=Kg7-NJ8Ln8A:dZiXb9f6Ovk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=Kg7-NJ8Ln8A:dZiXb9f6Ovk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=Kg7-NJ8Ln8A:dZiXb9f6Ovk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=Kg7-NJ8Ln8A:dZiXb9f6Ovk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/Kg7-NJ8Ln8A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/3415484336119608563/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2011/06/physical-beings-with-digital-lives.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/3415484336119608563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/3415484336119608563?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/Kg7-NJ8Ln8A/physical-beings-with-digital-lives.html" title="Physical Beings with Digital Lives" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-g7-DWKYDV2o/TgPRbnm7ybI/AAAAAAAAAF8/hLTDvW7K400/s72-c/2001A%252520Space%252520Odyssey.jpg?imgmax=800" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2011/06/physical-beings-with-digital-lives.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQGQnw7fSp7ImA9WhZbGEo.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-1198647538638636356</id><published>2011-06-21T11:34:00.002-06:00</published><updated>2011-06-23T18:12:03.205-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-23T18:12:03.205-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tx" /><category scheme="http://www.blogger.com/atom/ns#" term="announcements" /><category scheme="http://www.blogger.com/atom/ns#" term="twisted" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="asynchronous" /><title>txStatsD Preview</title><content type="html">&lt;p&gt;&lt;a href="http://www.sidneidasilva.com/"&gt;Sidnei da Silva&lt;/a&gt; (of Plone fame) has recently created a &lt;a href="http://launchpad.net/txstatsd"&gt;Launchpad project&lt;/a&gt; for an async StatsD implementation. He's got code in place for review by any Twisted kingpins who'd like to give it a glance.&lt;/p&gt;&lt;p&gt;statsD was originally created in 2008 as a &lt;a href="https://github.com/iamcal/Flickr-StatsD"&gt;Perl implementation&lt;/a&gt; at Flickr for their statistics &lt;a href="http://code.flickr.com/blog/2008/10/27/counting-timing/"&gt;counting, timing&lt;/a&gt;, and graphing needs. Engineers at Etsy ported this work to &lt;a href="https://github.com/etsy/statsd"&gt;Node.js&lt;/a&gt; (which Sidnei based his version on). A few months ago a regular &lt;a href="https://github.com/sivy/py-statsd"&gt;Python implementation&lt;/a&gt; was created (also based on Node.js).&lt;/p&gt;&lt;p&gt;More than another (excellent) addition to the &lt;a href="https://launchpad.net/tx"&gt;tx family&lt;/a&gt;, txStatsD will provide folks with the luxury of collecting stats using a Python server without having to write any blocking code :-) Sidnei also implemented a graphite protocol and client factory for passing the messages along.&lt;/p&gt;&lt;p&gt;Enjoy, and let him know what you think!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-1198647538638636356?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=OTbSZBq8BAM:BBFzXUOpgW4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=OTbSZBq8BAM:BBFzXUOpgW4:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=OTbSZBq8BAM:BBFzXUOpgW4:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=OTbSZBq8BAM:BBFzXUOpgW4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=OTbSZBq8BAM:BBFzXUOpgW4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=OTbSZBq8BAM:BBFzXUOpgW4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=OTbSZBq8BAM:BBFzXUOpgW4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=OTbSZBq8BAM:BBFzXUOpgW4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/OTbSZBq8BAM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/1198647538638636356/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2011/06/txstatsd-preview.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/1198647538638636356?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/1198647538638636356?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/OTbSZBq8BAM/txstatsd-preview.html" title="txStatsD Preview" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2011/06/txstatsd-preview.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQBRHo7fip7ImA9WhZbGEo.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-8448689100208122747</id><published>2011-06-08T10:29:00.006-06:00</published><updated>2011-06-23T18:12:35.406-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-23T18:12:35.406-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="data" /><category scheme="http://www.blogger.com/atom/ns#" term="economics" /><category scheme="http://www.blogger.com/atom/ns#" term="databases" /><category scheme="http://www.blogger.com/atom/ns#" term="companies" /><category scheme="http://www.blogger.com/atom/ns#" term="ecnomics" /><category scheme="http://www.blogger.com/atom/ns#" term="finance" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="uls" /><category scheme="http://www.blogger.com/atom/ns#" term="privacy" /><title>The Future of Personal Data: A Followup</title><content type="html">&lt;div&gt;&lt;b&gt;The Next Step&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;A few years ago, I wrote a post about the &lt;a href="http://oubiwann.blogspot.com/2008/06/future-of-personal-data.html"&gt;Future of Personal Data&lt;/a&gt; as a result of all the ultra large-scale systems reading and exploration I was doing. Google was foremost in my mind when writing that, but Apple has since come into the spotlight here as well.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Recently, &lt;a href="http://mdzlog.alcor.net/"&gt;Matt Zimmerman&lt;/a&gt; has &lt;a href="http://mdzlog.alcor.net/2011/05/27/why-im-excited-about-joining-singly/"&gt;decided to leave Canonical&lt;/a&gt; and join forces with &lt;a href="http://www.singly.com/"&gt;Singly&lt;/a&gt;, an exciting startup company focused on secure user data storage and the socialization of (and development around) that data. In &lt;a href="http://blog.lockerproject.org/brainstorming-tlp-core-values"&gt;this blog post&lt;/a&gt;, the following core values were given about the software underlying Singly:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;I own my personal data&lt;/li&gt;&lt;li&gt;I want my data to be useful to me&lt;/li&gt;&lt;li&gt;I make the decisions to protect or share my&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;I would like to see the following added:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;I make the decisions on how my data is used&lt;/li&gt;&lt;li&gt;If my data is sold, I should get a return for this&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;This is not petulance speaking :-) This comes from a historical perspective on social and economic fairness. Witness the changes in individual rights and personal finance since the industrial revolution...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Fair Market Value&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are probably many solvent entities out there who would claim users are already getting a return for the use of their data: free email and office docs from Google, free cloud services from Apple, etc. But I would imagine that there are massive margins being made on user data, and services (as valuable as they may be) are a paltry return for such a gold mine. I cannot help but be reminded of the selling price of Manhattan Island or Alaska (in 2011 values, the Lenape Indians got around $29.61/square mile; the Russians got about $150.77/square mile).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Money makes a good point, but personal data (and this post) isn't about the almighty coin. This is about clearly defining who owns what and ensuring that those who don't want to be taken advantage of, aren't. This is about identifying exploitation, and building something better and longer-lasting in its place.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Who's Going to Pay for What?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In David Pakman's "Disruption" &lt;a href="http://www.pakman.com/2011/05/31/the-power-of-a-transformative-idea-presenting-singly/"&gt;blog post about Singly&lt;/a&gt;, he makes the following comment:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;"I cannot see consumers getting into the business of selling their data to marketers so they can see personalized advertising. Instead, I believe marketers will be encouraged to offer value to us in exchange for access to our data."&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;I have to agree with him... but I can only offer a qualified agreement. True, I find it hard to believe that users will be selling their data directly to marketers. From the user-side, the pain of inconvenience would not likely be worth the payoff; at the marketer end, individual data is useless, and munging an in-house-built collection would incur a lot of overhead not part of their core business.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, users' data stored in lockers, updated regularly, pre-processed, has enormous value in the market. Right now, Apple and Google are making eye-crossing amounts of money from data just like this. Again, I would imagine that this data is only really valuable in large quantities and for interesting, identifiable demographics&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;If users provide their data, but in exchange only get a "nicer app" or a "useful utility" I'm going to cry "foul!" (unless someone can show me the actual numbers involved and unequivocally prove that fair exchange is occurring). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;You Say Disruption, I Say Revolution&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Instead, if a service such as Singly, were to offer a co-op style dividend payment system to all of its users, that would seem to be much more fair. Not only that, it would be the beginning of a market revolution. This is not to say that co-ops are some perfect economic model, but rather that the data we, as users, generate is of immense value. The more that Singly has, the greater potential for revenue. The more buzz that builds around Singly users generating revenue from their data, the more users they get. With mass-adoption, a new sub-economy is born.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Perhaps a better model than co-op is that of a mutual fund investment firm. Each Singly user has a portfolio of data. Depending upon each user's preferences, any or all of that data could be used by Singly to generate revenue. Some groups of users will generate more than others, and users in these groups would get greater returns. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Whichever analogy you prefer, with a little exploration it seems fairly clear that opportunities for a large payout are present. For instance, I like to imagine a world where entities like Apple and Google can't harvest user data, but must go through brokers whom users have given their permission to sell their data for the most profit. I also imagine there's a lot of lawmaking that would have to take place... and even more lobbying.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Even with that, Google and Apple would still make money hand over fist (or they'd become brokers themselves) -- enough to continue providing free services. Yet at the same time, users would be in control of their data; they'd be financing (or financially augmenting) their data-consumption lives with said data.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With the right press coverage, Singly could find themselves not only swamped with a massively growing user base, but at the very center of a new economy. With the right level of negotiation and coordination, businesses could buy into this new paradigm without losing their shirts in the disruption.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;A Plea&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In summary, I applaud the goals and vision of Singly. I, for one, would deeply appreciate writing applications against their data locker (to any Facebook or any of its dubious applications), where a user's rights are clear and protected.  That being said, Sinlgy would have my eternal allegiance if they also took up the cause of rights for user data in the market place; if they helped transform the current nascent data economy into a world economy capable of achieving as-yet unimagined financial heights.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And if not Singly, my loyalty would be given to whomever &lt;i&gt;did&lt;/i&gt; do this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-8448689100208122747?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=QKHx2H_rJ2I:gEArE0uH110:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=QKHx2H_rJ2I:gEArE0uH110:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=QKHx2H_rJ2I:gEArE0uH110:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=QKHx2H_rJ2I:gEArE0uH110:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=QKHx2H_rJ2I:gEArE0uH110:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=QKHx2H_rJ2I:gEArE0uH110:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=QKHx2H_rJ2I:gEArE0uH110:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=QKHx2H_rJ2I:gEArE0uH110:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/QKHx2H_rJ2I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/8448689100208122747/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2011/06/future-of-personal-data-followup.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/8448689100208122747?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/8448689100208122747?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/QKHx2H_rJ2I/future-of-personal-data-followup.html" title="The Future of Personal Data: A Followup" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2011/06/future-of-personal-data-followup.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUDQXY6fip7ImA9WhZVEUU.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-5813412037828121948</id><published>2011-05-23T08:40:00.006-06:00</published><updated>2011-05-23T14:57:50.816-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-23T14:57:50.816-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="python 3" /><category scheme="http://www.blogger.com/atom/ns#" term="zenoss" /><category scheme="http://www.blogger.com/atom/ns#" term="packt" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="books" /><category scheme="http://www.blogger.com/atom/ns#" term="testing" /><category scheme="http://www.blogger.com/atom/ns#" term="publishing" /><category scheme="http://www.blogger.com/atom/ns#" term="book reviews" /><title>Packt: A Publishing House for the Future</title><content type="html">&lt;div&gt;Since I first heard of them several years ago, I've viewed &lt;a href="http://www.packtpub.com/"&gt;Packt&lt;/a&gt; as the underdog in the world of technical book publishing. In the past year or so, Packt seems to have gained greater and greater influence: their catalog continues to grow, they are attracting talented and knowledgeable engineers as authors, and their titles are things that I'm actually interested in.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Two examples of this are the books &lt;a href="http://oubiwann.blogspot.com/2009/03/expert-python-programming-book-review.html"&gt;Expert Python Programming&lt;/a&gt; and &lt;a href="https://www.packtpub.com/zenoss-core-network-and-system-monitoring/book"&gt;Zenoss Core Network and System Monitoring&lt;/a&gt;. I received a copy of the former and blogged about my take on it. For the Zenoss book, last year I agreed to be a technical reviewer and am currently preparing a blog post on my pre- and post-publishing experiences. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In both cases, I agreed to work with Packt based solely on the technical merits of their works. However, my experience as a technical reviewer with them was so positive (I have had consistently excellent experiences with their staff over extended periods of time and on long-running conversations) that I have not only agreed to review more titles, but have read up on Packt themselves a bit. Here are some highlights from their &lt;a href="http://en.wikipedia.org/wiki/Packt"&gt;wikipedia article&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;They published their first book in 2004 (the same year Ubuntu started!).&lt;/li&gt;&lt;li&gt;Packt offers PDF versions of all of their books for download.&lt;/li&gt;&lt;li&gt;When a book written on an open source project is sold, Packt pays a royalty directly to that project.&lt;/li&gt;&lt;li&gt;As of March 2008,  Packt's contributions to open source projects surpassed US $100,000 (I would love an updated stat on this, if anyone has a newer figure).&lt;/li&gt;&lt;li&gt;They went DRM-free in March 2009.&lt;/li&gt;&lt;li&gt;Packt supports and publishes books on smaller projects and subjects that standard publishing companies cannot make profitable.&lt;/li&gt;&lt;li&gt;Their stream-lined business model aims to give authors high royalty rates and the opportunity to write on topics that standard publishers tend to avoid.&lt;/li&gt;&lt;li&gt;Bonus: they also run the Open Source Content Management System Award.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;These guys have some keys things going for them:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;They've got what appears to be a lean approach to business.&lt;/li&gt;&lt;li&gt;They know how to effectively crowd-source, keeping their overhead low.&lt;/li&gt;&lt;li&gt;They are rewarding both the authors &lt;b&gt;as well as&lt;/b&gt; the open source projects.&lt;/li&gt;&lt;li&gt;Their titles continue to grow in diversity and depth.&lt;/li&gt;&lt;li&gt;The have an outstanding staff.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Oh, and I really like the user account management in their website! When I log in, I see a list of owned books, source code links for them, clear/clean UI, very easy to navigate. I can't emphasize this enough to vendors, service providers, etc.: if you want a loyal user base:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;make a good product that lasts a long time;&lt;/li&gt;&lt;li&gt;make simple and great tools that enhance the experience of those products, that truly improve the experience of your users.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All in all, Packt really appear to be leaders in publishing innovation, taking lessons learned from the frontier of open source software and applying that to the older industry of publication production. I would encourage folks to evaluate Packt for themselves: if you like what you see, support them in readership &lt;i&gt;and&lt;/i&gt; authorship :-)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I, for one, will continue to review titles that appeal to me personally and that I think others would enjoy as well. I have two books in the queue and three pending blog posts for the following titles:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.packtpub.com/zenoss-core-network-and-system-monitoring/book"&gt;Zenoss Core Network and System Monitoring&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.packtpub.com/python-testing-cookbook/book"&gt;Python Testing Cookbook&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.packtpub.com/python-3-web-development-beginners-guide/book"&gt;Python 3 Web Development Beginner's Guide&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;And who knows, if I feel like writing a technical book at some point, you may see me in the Packt catalog, too ;-)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-5813412037828121948?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zi8zoJOqLs4:EEZXZbyIM3k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zi8zoJOqLs4:EEZXZbyIM3k:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=zi8zoJOqLs4:EEZXZbyIM3k:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zi8zoJOqLs4:EEZXZbyIM3k:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=zi8zoJOqLs4:EEZXZbyIM3k:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zi8zoJOqLs4:EEZXZbyIM3k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=zi8zoJOqLs4:EEZXZbyIM3k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zi8zoJOqLs4:EEZXZbyIM3k:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/zi8zoJOqLs4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/5813412037828121948/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2011/05/packt-publishing-house-for-future.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/5813412037828121948?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/5813412037828121948?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/zi8zoJOqLs4/packt-publishing-house-for-future.html" title="Packt: A Publishing House for the Future" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2011/05/packt-publishing-house-for-future.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIMRXkyeSp7ImA9WhZTEkU.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-2685475661658345943</id><published>2011-03-16T07:33:00.001-06:00</published><updated>2011-03-16T07:36:24.791-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-16T07:36:24.791-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="video" /><category scheme="http://www.blogger.com/atom/ns#" term="qa" /><category scheme="http://www.blogger.com/atom/ns#" term="graphics" /><category scheme="http://www.blogger.com/atom/ns#" term="testing" /><category scheme="http://www.blogger.com/atom/ns#" term="natty" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>Call for Testing: nVidia Cards in Ubuntu Natty</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-tZyqoLNo0Qg/TYC50doJEYI/AAAAAAAAAFU/FBpIJIwZf0s/s1600/natty-narwhal-square.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 200px;" src="http://1.bp.blogspot.com/-tZyqoLNo0Qg/TYC50doJEYI/AAAAAAAAAFU/FBpIJIwZf0s/s200/natty-narwhal-square.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5584667848896745858" /&gt;&lt;/a&gt;I was supposed to write this blog post early yesterday morning, since the first results from community testing are going to be examined today... but we're still going to need on-going data. So not all is lost :-)&lt;br /&gt;&lt;br /&gt;We're working very hard with chip vendors to make sure folks are getting the best  experience possible running Unity in the forth-coming release of Ubuntu (Natty). Jean-Baptiste Lallement has posted to the QA mail list, asking for committed volunteers to test the nVidia drivers in Unity on a weekly basis. You can read his email here:&lt;div&gt;&lt;a href="https://lists.ubuntu.com/archives/ubuntu-qa/2011-March/001484.html"&gt;&lt;/a&gt;&lt;blockquote&gt;&lt;a href="https://lists.ubuntu.com/archives/ubuntu-qa/2011-March/001484.html"&gt;https://lists.ubuntu.com/archives/ubuntu-qa/2011-March/001484.html&lt;/a&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;Jean-Baptiste links to detailed instructions in his email. The QA Tracker for this effort is here (but please be sure to read his email and follow the instructions that he links to):&lt;/div&gt;&lt;div&gt;&lt;a href="http://xorg.qa.ubuntu.com/qatracker/test/5154"&gt;&lt;/a&gt;&lt;blockquote&gt;&lt;a href="http://xorg.qa.ubuntu.com/qatracker/test/5154"&gt;http://xorg.qa.ubuntu.com/qatracker/test/5154&lt;/a&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;We look forward to hearing from you!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Photo Credits&lt;/b&gt;: &lt;a href="http://www.flickr.com/photos/jackyalcine/5380808235/"&gt;jackyalcine&lt;/a&gt; (slightly modified)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-2685475661658345943?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=m6LWi1HUgas:aPt9XLh8OAU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=m6LWi1HUgas:aPt9XLh8OAU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=m6LWi1HUgas:aPt9XLh8OAU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=m6LWi1HUgas:aPt9XLh8OAU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=m6LWi1HUgas:aPt9XLh8OAU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=m6LWi1HUgas:aPt9XLh8OAU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=m6LWi1HUgas:aPt9XLh8OAU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=m6LWi1HUgas:aPt9XLh8OAU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/m6LWi1HUgas" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/2685475661658345943/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2011/03/call-for-testing-nvidia-cards-in-ubuntu.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/2685475661658345943?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/2685475661658345943?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/m6LWi1HUgas/call-for-testing-nvidia-cards-in-ubuntu.html" title="Call for Testing: nVidia Cards in Ubuntu Natty" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-tZyqoLNo0Qg/TYC50doJEYI/AAAAAAAAAFU/FBpIJIwZf0s/s72-c/natty-narwhal-square.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2011/03/call-for-testing-nvidia-cards-in-ubuntu.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEICSXY7eCp7ImA9Wx9WFk8.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-4933840305969618066</id><published>2011-01-21T07:08:00.004-07:00</published><updated>2011-01-21T08:09:28.800-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-21T08:09:28.800-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jobs" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="canonical" /><category scheme="http://www.blogger.com/atom/ns#" term="multi-touch" /><title>Uncle Canonical Wants U!</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://launchpadlibrarian.net/53491455/UncleCanonical_x192.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 192px; height: 192px;" src="https://launchpadlibrarian.net/53491455/UncleCanonical_x192.png" border="0" alt="" /&gt;&lt;/a&gt;you and &lt;a href="https://launchpad.net/utouch"&gt;uTouch&lt;/a&gt;, that is. And &lt;a href="https://launchpad.net/canonical-multitouch"&gt;more&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Do you love &lt;a href="https://wiki.ubuntu.com/Multitouch"&gt;Ubuntu&lt;/a&gt;? Are you an &lt;a href="http://en.wikipedia.org/wiki/Human%E2%80%93computer_interaction"&gt;HCI&lt;/a&gt; freak? Are you an X hacker, kernel driver maintainer, Linux input enthusiast, Qt or GTK application developer, C/C++ hacker? &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Do you enjoy being part of online technical communities? Are you actively involved in open source projects? Do you enjoy advocating for software?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Do you love test-driven development and thirst for high-quality open source software running on devices with touch interfaces?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Does the idea of working from home in your own time-zone, on cutting-edge, strategic projects at Canonical have you sitting on the edge of your seat?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If so, then please &lt;a href="mailto:duncan@canonical.com"&gt;send me&lt;/a&gt; your resumé/CV! I'm looking for a few brilliant engineers as we grow our Product Strategy teams (DX, Design, and others).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-4933840305969618066?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zwUysCnou04:iiN1ac6F1NI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zwUysCnou04:iiN1ac6F1NI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=zwUysCnou04:iiN1ac6F1NI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zwUysCnou04:iiN1ac6F1NI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=zwUysCnou04:iiN1ac6F1NI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zwUysCnou04:iiN1ac6F1NI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=zwUysCnou04:iiN1ac6F1NI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zwUysCnou04:iiN1ac6F1NI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/zwUysCnou04" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/4933840305969618066/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2011/01/uncle-canonical-wants-u.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/4933840305969618066?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/4933840305969618066?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/zwUysCnou04/uncle-canonical-wants-u.html" title="Uncle Canonical Wants U!" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2011/01/uncle-canonical-wants-u.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQCQ388eip7ImA9Wx5aEUg.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-6456852798326716132</id><published>2010-11-07T09:54:00.008-07:00</published><updated>2010-11-07T10:19:22.172-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-07T10:19:22.172-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="touch" /><category scheme="http://www.blogger.com/atom/ns#" term="codethink" /><category scheme="http://www.blogger.com/atom/ns#" term="gtk" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="testing" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="gestures" /><category scheme="http://www.blogger.com/atom/ns#" term="canonical" /><category scheme="http://www.blogger.com/atom/ns#" term="multi-touch" /><category scheme="http://www.blogger.com/atom/ns#" term="conferences" /><title>Canonical and Codethink at Bostom GNOME Summit</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DhwcjOWryJU/TNba-7m-2fI/AAAAAAAAAFA/_2olRTlCnXs/s1600/GNOME-GNOMEFootMatrix_1024x768.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_DhwcjOWryJU/TNba-7m-2fI/AAAAAAAAAFA/_2olRTlCnXs/s320/GNOME-GNOMEFootMatrix_1024x768.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5536853566586542578" /&gt;&lt;/a&gt;Today is the second day of the &lt;a href="http://live.gnome.org/BostonSummit"&gt;Boston GNOME Summit&lt;/a&gt;, and the second day of &lt;a href="http://www.canonical.com/"&gt;Canonical&lt;/a&gt; providing morning sustenance for the hackers here. &lt;a href="http://www.codethink.co.uk/"&gt;Codethink&lt;/a&gt; and Canonical coordinated these efforts, with Codethink sponsoring food later today. It warms my heart that we can do this sort of thing. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yesterday Cody Russell and I held a session about getting a gesture API into GTK 3.x. There were a great many questions about the uTouch framework, how we're handling multi-touch in the absence of MT support in X (coming in XInput 2.1), and what sort of dependencies would be needed (none! if GEIS is present on the system, gesture support will be added at build-time). At the end of the session, there was a consensus for Cody to present his plans to the GTK developers list and then to start getting branches reviewed for merge. We're hoping to make it for GTK 3.2.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In this vein, Cody and I have been hacking on &lt;a href="https://launchpad.net/libgrope"&gt;libgrope&lt;/a&gt; for GTK compatibility, and this is serving as the sandbox for the GTK 3 gesture API development. My efforts have been focused on creating the GTK 2 Python C extension for grope. Given that the last time I coded C was in 1989 (and then a bit later in the mid-90s, when I had to hack a slackware driver to get ethernet working), this has been quite an effort. However, after a night and morning of hacking, I've got a handle on C extensions and am using the example code I wrote as the basis for &lt;a href="https://bugs.launchpad.net/libgrope/+bug/671558"&gt;pygrope&lt;/a&gt;. I've even managed to rope &lt;a href="http://barry.warsaw.us/"&gt;Barry Warsaw&lt;/a&gt; into reviewing the C extension code for us, to be sure we're not doing anything too crazy :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Python C extension will be of immediate use to us in our test harness for gestures and exercising the stack. We will be creating a GTK app for recording user gestures for later playback and inclusion in test suites.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-6456852798326716132?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=i72vYfY20cg:3BroH7sXmOo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=i72vYfY20cg:3BroH7sXmOo:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=i72vYfY20cg:3BroH7sXmOo:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=i72vYfY20cg:3BroH7sXmOo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=i72vYfY20cg:3BroH7sXmOo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=i72vYfY20cg:3BroH7sXmOo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=i72vYfY20cg:3BroH7sXmOo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=i72vYfY20cg:3BroH7sXmOo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/i72vYfY20cg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/6456852798326716132/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2010/11/canonical-and-codethink-at-bostom-gnome.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/6456852798326716132?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/6456852798326716132?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/i72vYfY20cg/canonical-and-codethink-at-bostom-gnome.html" title="Canonical and Codethink at Bostom GNOME Summit" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_DhwcjOWryJU/TNba-7m-2fI/AAAAAAAAAFA/_2olRTlCnXs/s72-c/GNOME-GNOMEFootMatrix_1024x768.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2010/11/canonical-and-codethink-at-bostom-gnome.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAHR3w7fSp7ImA9Wx5UFUw.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-7002942821288647257</id><published>2010-10-19T12:10:00.003-06:00</published><updated>2010-10-19T12:42:16.205-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-19T12:42:16.205-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="research" /><category scheme="http://www.blogger.com/atom/ns#" term="hci" /><category scheme="http://www.blogger.com/atom/ns#" term="uds" /><category scheme="http://www.blogger.com/atom/ns#" term="multi-touch" /><title>Probabilistic Input for uTouch?</title><content type="html">&lt;div&gt;&lt;br /&gt;Well, it seems to be the season for a flurry of multi-touch posts. Guess that's helped along by the release of uTouch in Maverick and next week's Ubuntu Developer Summit multi-touch buffet :-)&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the talks that John, Mark and I enjoyed greatly at UIST was &lt;a href="http://juliaschwarz.net/"&gt;Julia Schwartz&lt;/a&gt;'s presentation on  "A Framework for Probabilistic Input". Julia's an HCI PhD student at &lt;a href="http://www.hcii.cmu.edu/"&gt;Carnegie-Mellon&lt;/a&gt; and works in their exciting &lt;a href="http://devlaboratory.com/"&gt;dev lab&lt;/a&gt;. The UIST paper was written by Julia, &lt;a href="http://www.cs.cmu.edu/~hudson/"&gt;Professor Hudson&lt;/a&gt;, &lt;a href="http://www.cs.cmu.edu/~jmankoff"&gt;Professor Mankoff&lt;/a&gt;, and &lt;a href="http://research.microsoft.com/en-us/um/people/awilson/"&gt;Andrew Wilson&lt;/a&gt; (the latter of Microsoft Research). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the reasons I was personally so deeply appreciative of the paper was that when we were building the uTouch framework, Henrik Rydberg and Chase Douglas brought up issues around input uncertainty, and started proposing ways that might be employed to counter this. Getting plugged into folks who are working on this actively and thoroughly is phenomenal.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since UIST 2010, the uTouch team has been in contact with Julia, sharing ideas and asking questions. Today we had a call with her and Professor Scott Hudson; as such, we have now started exploring possible avenues of development for probabilistic input support in uTouch. Scott and Professor Jen Mankoff will be attending part of UDS this year, and we've &lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/appdevs-dx-n-probabilistic-input"&gt;set up a session&lt;/a&gt; where they can share their research with us and engage in discussions, Q&amp;amp;A, etc., about it, and explore ways in which we can start moving forward on this in Ubuntu (and Linux in general).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The UIST talk slides and related paper are available here:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: 11.8056px; "&gt;&lt;a href="https://wiki.ubuntu.com/Multitouch#Probabilistic%20Input"&gt;https://wiki.ubuntu.com/Multitouch#Probabilistic%20Input&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-7002942821288647257?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=CKW0AYxC5rc:qBwDHzblfms:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=CKW0AYxC5rc:qBwDHzblfms:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=CKW0AYxC5rc:qBwDHzblfms:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=CKW0AYxC5rc:qBwDHzblfms:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=CKW0AYxC5rc:qBwDHzblfms:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=CKW0AYxC5rc:qBwDHzblfms:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=CKW0AYxC5rc:qBwDHzblfms:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=CKW0AYxC5rc:qBwDHzblfms:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/CKW0AYxC5rc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/7002942821288647257/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2010/10/probabilistic-input-for-utouch.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/7002942821288647257?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/7002942821288647257?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/CKW0AYxC5rc/probabilistic-input-for-utouch.html" title="Probabilistic Input for uTouch?" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2010/10/probabilistic-input-for-utouch.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MBQ3Y4fyp7ImA9Wx5UFEs.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-3917895384649725780</id><published>2010-10-18T14:04:00.004-06:00</published><updated>2010-10-18T23:17:32.837-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-18T23:17:32.837-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="tablets" /><category scheme="http://www.blogger.com/atom/ns#" term="netbooks" /><category scheme="http://www.blogger.com/atom/ns#" term="vendors" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="uds" /><category scheme="http://www.blogger.com/atom/ns#" term="multi-touch" /><title>A Visit with System76</title><content type="html">&lt;div&gt;&lt;br /&gt;&lt;a src="http://www.flickr.com/photos/oubiwann/sets/72157625195427324/show/"&gt;&lt;img src="http://farm5.static.flickr.com/4149/5095361003_601f45a792_m.jpg" align="left" style="padding-right: 10px; padding-bottom: 10px; border: 0px none;" border="0" /&gt;&lt;/a&gt;Earlier today, I had the pleasure of visiting Carl Richell and part of the &lt;a href="http://www.system76.com/"&gt;System76&lt;/a&gt; crew in their Denver offices today. Pictured to the left is their very sweet &lt;a href="http://www.system76.com/product_info.php?cPath=28&amp;amp;products_id=105"&gt;Starling NetBook&lt;/a&gt;. I became an instant fan, due to the sleek good looks, a &lt;i&gt;fantastic&lt;/i&gt; keyboard, and a flawless installation of Ubuntu. Carl also showed me the &lt;a href="http://www.system76.com/product_info.php?cPath=28&amp;amp;products_id=103"&gt;Starling EduBook&lt;/a&gt;, which I completely fell in love with. There's a charter school in Colorado that bought a whole mess of these guys, and the kids at school adore them... and how could they not? A rugged, easy-to-use Linux netbook with Edubuntu installed on it? Total win.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Before getting a device, personnel, and facilities tour, Carl and I talked shop: uTouch, the future of multi-touch in Linux, Unity, Ubuntu on a plethora of devices. You know, the usual good stuff. I asked him what he'd like to see in Ubuntu that he feels would be necessary to totally rock out the tablet experience. His list of top picks echoes the sentiments of many people with whom I have had similar conversations.  In no particular order, the list goes something like this:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;fully-working auto-rotate&lt;/li&gt;&lt;li&gt;a great on-screen keyboard&lt;/li&gt;&lt;li&gt;browser, music, video, photo, and document apps -- all with a user interface designed for touch&lt;/li&gt;&lt;li&gt;the ability to deliver and play games&lt;/li&gt;&lt;li&gt;a sweet note taking app that integrates with email&lt;/li&gt;&lt;li&gt;TV remote control support&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Much of this is &lt;a href="https://blueprints.edge.launchpad.net/ubuntu/?searchtext=hci-n"&gt;already scheduled&lt;/a&gt; for discussions in UDS sessions next week :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Carl's excited about UDS and the continued conversations that will take place there. As am I. But I also can't stop thinking about that Starling NetBook... I'm going to be replacing my ailing AspireOne with System76's gorgeous offering...&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-3917895384649725780?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=htwBQInKGi8:umbT3IpRZrw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=htwBQInKGi8:umbT3IpRZrw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=htwBQInKGi8:umbT3IpRZrw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=htwBQInKGi8:umbT3IpRZrw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=htwBQInKGi8:umbT3IpRZrw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=htwBQInKGi8:umbT3IpRZrw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=htwBQInKGi8:umbT3IpRZrw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=htwBQInKGi8:umbT3IpRZrw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/htwBQInKGi8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/3917895384649725780/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2010/10/visit-with-system76.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/3917895384649725780?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/3917895384649725780?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/htwBQInKGi8/visit-with-system76.html" title="A Visit with System76" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm5.static.flickr.com/4149/5095361003_601f45a792_t.jpg" height="72" width="72" /><thr:total>7</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2010/10/visit-with-system76.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYAQ30-eyp7ImA9Wx5UFEg.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-227988612057213615</id><published>2010-10-16T14:17:00.011-06:00</published><updated>2010-10-18T19:35:42.353-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-18T19:35:42.353-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="unity" /><category scheme="http://www.blogger.com/atom/ns#" term="hci" /><category scheme="http://www.blogger.com/atom/ns#" term="qt" /><category scheme="http://www.blogger.com/atom/ns#" term="utouch" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="uds" /><category scheme="http://www.blogger.com/atom/ns#" term="toolkits" /><category scheme="http://www.blogger.com/atom/ns#" term="multi-touch" /><title>Multitouch and Qt</title><content type="html">&lt;div&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/oubiwann/sets/72157625051901187/with/5087232732/" border="0"&gt;&lt;img src="http://farm5.static.flickr.com/4104/5087232732_a8947542aa_m.jpg" style="padding-right: 10px; padding-bottom: 10px; border: 0px none;" align="left" border="0" /&gt;&lt;/a&gt;It's been 11 days since &lt;a href="http://labs.qt.nokia.com/2010/10/05/getting-in-touch-with-qt-quick-gestures-and-qml/"&gt;the Qt announcement&lt;/a&gt; of new gesture support, and I wanted to blog about it right away... but alas, now will have to do. The folks at Qt have been working on multi-touch support for a while now. They blogged about &lt;a href="http://labs.qt.nokia.com/2009/04/02/mouse-gestures-in-qt-apps-to-be-or-not-to-be/"&gt;gestures&lt;/a&gt;, &lt;a href="http://labs.qt.nokia.com/2009/04/20/multi-touch-support-in-qt/"&gt;multi-touch&lt;/a&gt;, &lt;a href="http://labs.qt.nokia.com/2009/06/23/multi-touch-on-mac/"&gt;Mac support&lt;/a&gt;, &lt;a href="http://blog.qt.nokia.com/2009/12/02/multi-touch-goodness/"&gt;Windows support&lt;/a&gt;, and then at UDS in Brussels (May 2010), they shared their 4.8 plans for multi-touch with the Ubuntu community.&lt;br /&gt;&lt;br /&gt;Until &lt;a href="http://www.markshuttleworth.com/archives/455"&gt;recently&lt;/a&gt;, there has been no MT stack for Linux. The great news is that the folks at Qt are very interested in getting Qt to work with &lt;a href="https://edge.launchpad.net/canonical-multitouch/"&gt;uTouch&lt;/a&gt;. Stephen Bregma has been working on the &lt;a href="https://launchpad.net/utouch-geis"&gt;GEIS API&lt;/a&gt; that toolkits will have the option of taking advantage of, and we were delighted to hear from &lt;a href="http://www.albisser.org/"&gt;Zeno&lt;/a&gt; and &lt;a href="http://twitter.com/DDENIS"&gt;Denis&lt;/a&gt; that the Qt API they have envisioned and planned is very similar to GEIS, and should make for an excellent match. They are going to be talking with the community about this at &lt;a href="http://uds.ubuntu.com/"&gt;UDS two weeks from now&lt;/a&gt;, in fact :-)&lt;br /&gt;&lt;br /&gt;In support of Qt's commitment to multi-touch and gestures, I wanted to encourage folks to take a look at their post about &lt;a href="http://labs.qt.nokia.com/2010/10/05/getting-in-touch-with-qt-quick-gestures-and-qml/"&gt;Qt Quick, Qml, and Gestures&lt;/a&gt;. The source code is &lt;a href="http://qt.gitorious.org/+qt-developers/gestures"&gt;now available for viewing&lt;/a&gt;, and we've started to dive into it ourselves, and it seems that others are as well (I know some GTK guys who are double-checking their own plans by looking at what Qt has done so far).&lt;br /&gt;&lt;br /&gt;Also, if you haven't taken &lt;a href="http://qt.nokia.com/products/developer-tools/"&gt;Qt Creator&lt;/a&gt; for a drive yet, do so; it's an impressive GUI editor/IDE for Qt, and I've really enjoyed it so far. You can enable GUI visual design for Qml projects by going to the "Help" menu and selecting "About Plugins..." after which, you will need to check the box next to "QmlDesigner" (under "Qt Quick"). Also, a nice cherry on top: the Qt Quick design interface &lt;a href="http://www.flickr.com/photos/oubiwann/sets/72157625051901187/show/"&gt;looks stunning&lt;/a&gt; with the Ambiance theme in Ubuntu -- the color scheme is a perfect match :-)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-227988612057213615?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=bet4tXmYI5A:3-V2Rj1RQLc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=bet4tXmYI5A:3-V2Rj1RQLc:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=bet4tXmYI5A:3-V2Rj1RQLc:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=bet4tXmYI5A:3-V2Rj1RQLc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=bet4tXmYI5A:3-V2Rj1RQLc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=bet4tXmYI5A:3-V2Rj1RQLc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=bet4tXmYI5A:3-V2Rj1RQLc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=bet4tXmYI5A:3-V2Rj1RQLc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/bet4tXmYI5A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/227988612057213615/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2010/10/multitouch-and-qt.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/227988612057213615?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/227988612057213615?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/bet4tXmYI5A/multitouch-and-qt.html" title="Multitouch and Qt" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm5.static.flickr.com/4104/5087232732_a8947542aa_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2010/10/multitouch-and-qt.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEESHc6fSp7ImA9Wx5UEkg.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-5691897348724043527</id><published>2010-10-16T10:41:00.008-06:00</published><updated>2010-10-16T12:10:09.915-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-16T12:10:09.915-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="q-and-a" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="hci" /><category scheme="http://www.blogger.com/atom/ns#" term="uist" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="uds" /><category scheme="http://www.blogger.com/atom/ns#" term="conferences" /><title>Q &amp; A: The Ubuntu Developer Summits</title><content type="html">&lt;div&gt;&lt;br /&gt;Last week I had a nice email exchange with a good friend of Ubuntu, Professor &lt;a href="http://hci.uwaterloo.ca/faculty/mterry/"&gt;Michael Terry&lt;/a&gt; at the &lt;a href="http://uwaterloo.ca/"&gt;University of Waterloo&lt;/a&gt;. We met at &lt;a href="http://www.acm.org/uist/uist2010/"&gt;UIST 2010&lt;/a&gt;, but he and &lt;a href="http://www.ivankamajic.com/"&gt;Ivanka Majic&lt;/a&gt; have been conferring about design and usability in Ubuntu for a while. Delighted with UIST in general and specifically with conversations Mark, John, and I had with Michael and one of his students, we invited them to &lt;a href="http://uds.ubuntu.com/"&gt;UDS in Orlando&lt;/a&gt; at the end of October.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Coming from an academic institution (and &lt;a href="http://hci.uwaterloo.ca/"&gt;an HCI lab&lt;/a&gt; in particular), Micheal had some questions about UDS, how to prepare, and the ways in which it might be different from various academic conferences. I asked him if it would be alright to share our conversation with the wider open source, academic, and professional communities, many of whose members will be attending UDS in Orlando for the first time. He was only too glad our conversation might benefit others :-) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've edited the content slightly for a blog format (and for improved clarity), but it remains in essence unchanged:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Q&lt;/b&gt;: &lt;i&gt;Since we're all kind of new to UDS, could we pick your brain a bit? :-)  As we plan for attending, we're trying to envision how to best use UDS.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;A&lt;/b&gt;: UDS is very practical in spirit, so it's actually fairly straight-forward to make good use of it. The purpose of attendees is to:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Engage with developers, community members, users, etc., on well-defined topics for software in Ubuntu, the software that builds Ubuntu, Ubuntu itself, the community, or the prominent tools and technologies that are build on Ubuntu.&lt;/li&gt;&lt;li&gt;Assemble and execute. After each discussion, each topic should have enough information and feedback such that the direction forward in any given project is clear. Next steps can be taken immediately (whether that's actual development, coordination, etc.).&lt;/li&gt;&lt;/ol&gt;The enormous amount of discussion that takes place there is recorded (some sessions with video, all with shared notes), so very often folks formalize this information as a spec.&lt;br /&gt;&lt;br /&gt;For a list of the wide range of categories covered at UDS, check out this page (still in progress): &lt;a href="http://uds.ubuntu.com/tracks/"&gt;http://uds.ubuntu.com/tracks/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;To give you more of a sense of things:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There are lots of rooms, each with two projected screens: an IRC channel for that physical room, and a network-shared communal notes screen.&lt;/li&gt;&lt;li&gt;Sessions are about 50 minutes long, with breaks every few sessions.&lt;/li&gt;&lt;li&gt;Large monitors are placed in the halls with the schedule for the day displayed, so that folks can more easily find the sessions/rooms they want to be in.&lt;/li&gt;&lt;li&gt;There are topical plenaries for two hours after lunch that take place in a auditorium so that all who want to attend, can.&lt;/li&gt;&lt;/ul&gt;In other words, it's very active :-) Lots of moving about. Lots of intense discussion in short sessions.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Q&lt;/b&gt;: &lt;i&gt;What is an ideal outcome from your perspective (and from our perspective)?&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;A&lt;/b&gt;: The ideal outcome is consensus on the discussed topics, unblocking all involved, and moving forward with a shared vision.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Q&lt;/b&gt;: &lt;i&gt;What kind of work or goals do we want to accomplish while we're there? &lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;A&lt;/b&gt;: In general, you want to attend the sessions that are meaningful to you, share your views during the discussion, and hopefully convince those present of the necessity of what you envision :-) If your vision needs adjustment, then UDS is the perfect place to get it tweaked and reach a mutual agreement with community members about a form suitable for an action plan.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Q&lt;/b&gt;: &lt;i&gt;You just saw us in our "native" environment -- an academic conference; how is qualitatively different from such conferences? &lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;A&lt;/b&gt;: Yes, that sort of scenario is a prototypical academic environment: disseminating of memes for processing and adoption in a particular field. The essence of that exists in the open source world: meme's are very important to us, but often implicit in nature; they arise as generalizations of practical experiences with implementation. However, they are only the first step (or a supporting factor for other steps). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;i&gt;primary&lt;/i&gt; focus of the attendees at UDS is pragmatic: "Let's do X." As such, UDS attendees partake in a meme-disseminating event, the object of which is to generate project plans, task lists, direction changes, etc., within each given project (be it software, governance, or others).&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Q&lt;/b&gt;: &lt;i&gt;Any ideas/guidance on how to think about and plan for UDS?&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;A&lt;/b&gt;: Hopefully what I wrote above should give you enough of an intuitive feel for the environment that you'll have a good idea of what you can do... but just in case, I'd focus on doing the obvious, like putting together notes/supporting material for the sessions that you are interested in. In addition, though, you want to spend some time thinking about how to engage session attendees such that they are motivated to attend the session(s) and speak up while attending.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, that's all there is to this Q &amp;amp; A. I hope folks new to UDS will find this conversation useful. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We look forward to seeing Micheal and the rest of you at UDS!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-5691897348724043527?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=j8vcqggaJ1g:a20QScTFHWI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=j8vcqggaJ1g:a20QScTFHWI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=j8vcqggaJ1g:a20QScTFHWI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=j8vcqggaJ1g:a20QScTFHWI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=j8vcqggaJ1g:a20QScTFHWI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=j8vcqggaJ1g:a20QScTFHWI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=j8vcqggaJ1g:a20QScTFHWI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=j8vcqggaJ1g:a20QScTFHWI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/j8vcqggaJ1g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/5691897348724043527/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2010/10/q-the-ubuntu-developer-summits.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/5691897348724043527?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/5691897348724043527?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/j8vcqggaJ1g/q-the-ubuntu-developer-summits.html" title="Q &amp; A: The Ubuntu Developer Summits" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2010/10/q-the-ubuntu-developer-summits.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYMRn44eSp7ImA9Wx5bGEw.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-5870434112735339136</id><published>2010-10-13T07:45:00.006-06:00</published><updated>2010-11-03T15:03:07.031-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-03T15:03:07.031-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="touch" /><category scheme="http://www.blogger.com/atom/ns#" term="movies" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="hci" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="multi-touch" /><title>Ubuntu 10.10 Multi-touch Video</title><content type="html">&lt;embed src="http://blip.tv/play/AYKEok8A" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" style="padding-right: 10px; padding-bottom: 10px;" width="250" align="left" height="200"&gt;&lt;/embed&gt;As many are aware, we released our maverick Maverick a few days ago. Part of what comes with Ubuntu 10.10 is the new &lt;a href="https://wiki.ubuntu.com/Multitouch/uTouchArchitecture?action=AttachFile&amp;amp;do=get&amp;amp;target=MTArchitecture-Maverickv5.png"&gt;uTouch stack&lt;/a&gt;. We been having lots of really great talks in the public IRC channel (#ubuntu-touch, Freenode.net) and on the &lt;a href="https://launchpad.net/%7Emulti-touch-dev"&gt;general multi-touch mail list&lt;/a&gt; (subscription info at the bottom of that page). More and more folks are trying it out, experimenting, and contributing.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As part of the "&lt;a href="https://wiki.ubuntu.com/MaverickMovies"&gt;Maverick Movies&lt;/a&gt;" initiative, fellow employees Gerry Carr, John Lea, and Neil Patel worked on getting this little gem produced (embedded to the left; here's the &lt;a href="http://blip.tv/file/4245457"&gt;full-sized version&lt;/a&gt;). Gerry has written an excellent blog post about it &lt;a href="http://blog.canonical.com/?p=446"&gt;here&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This video shows off most of the touch capabilities that were integrated into Unity for Maverick. &lt;a href="http://njpatel.blogspot.com/"&gt;Neil Patel&lt;/a&gt; (fellow Big Lebowski fan) and John Lea will be working very closely together during Natty to expand this feature set to take more advantage of the gesture capabilities of &lt;a href="https://launchpad.net/canonical-multitouch"&gt;uTouch&lt;/a&gt;. Simlarly, &lt;a href="http://bitmath.org/"&gt;Henrik Rydberg&lt;/a&gt; will be working with them to enhance the uTouch &lt;a href="https://launchpad.net/utouch-grail"&gt;gesture engine&lt;/a&gt;. And all of us will be working on the newest addition to the uTouch family that Mark mentioned in &lt;a href="http://www.markshuttleworth.com/archives/455"&gt;his blog post&lt;/a&gt;: a gesture language. More on that later :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For right now, let's check out this video! For the impatient, the target list of gestures in Unity is available in a &lt;a href="https://docs.google.com/View?id=dfkkjjcj_1482g457bcc7#5_4_Unity_Gestures_12733594886_7375074410811067"&gt;gestures guidelines document&lt;/a&gt;, lovingly put together by John Lea and Mark. As one might expect, there's a lot there. If you skip to section 5, you'll be able to get a nice visual overview of most of the gestures with some descriptive text. For those who chose to watch the video first, here's what you saw:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;single taps (i.e., a touch "mouse click")&lt;/li&gt;&lt;li&gt;a window grab (three-finger touch, let one up)&lt;/li&gt;&lt;li&gt;moving the window (three-finger touch, let one up, move it around)&lt;/li&gt;&lt;li&gt;drag up to maximize&lt;/li&gt;&lt;li&gt;drag up and right (or left) to fill the right (or left) half of the screen&lt;/li&gt;&lt;li&gt;un-maximize (use the drag gesture on the maximized window)&lt;/li&gt;&lt;li&gt;bring up the dash (4-tap)&lt;/li&gt;&lt;li&gt;bring up all windows for one app (three-pinch)&lt;/li&gt;&lt;li&gt;bring up all windows (three-pinch again)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Have fun playing with Unity on your touch devices! There's lots more to come...&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-5870434112735339136?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=MCLbMuwgW1I:e9IKna7vDHo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=MCLbMuwgW1I:e9IKna7vDHo:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=MCLbMuwgW1I:e9IKna7vDHo:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=MCLbMuwgW1I:e9IKna7vDHo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=MCLbMuwgW1I:e9IKna7vDHo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=MCLbMuwgW1I:e9IKna7vDHo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=MCLbMuwgW1I:e9IKna7vDHo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=MCLbMuwgW1I:e9IKna7vDHo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/MCLbMuwgW1I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/5870434112735339136/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2010/10/ubuntu-1010-multi-touch-video.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/5870434112735339136?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/5870434112735339136?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/MCLbMuwgW1I/ubuntu-1010-multi-touch-video.html" title="Ubuntu 10.10 Multi-touch Video" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2010/10/ubuntu-1010-multi-touch-video.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIDR3w8eSp7ImA9Wx5UEkg.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-9053835853069981321</id><published>2010-10-07T14:41:00.004-06:00</published><updated>2010-10-16T12:09:36.271-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-16T12:09:36.271-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="touch" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="xorg" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="toolkits" /><category scheme="http://www.blogger.com/atom/ns#" term="conferences" /><title>Multi-touch at UDS-N in Orlando, October 25th-29th</title><content type="html">&lt;div&gt;&lt;br /&gt;The up-coming UDS in October is looking to be quite fantastic. The community around the Ubuntu distro is, as always, deeply involved, passionate, and eager to break new ground... but lately there seems to be even more than the usual anticipation. We're seeing folks getting involved for more than Ubuntu, and this is an interesting change. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At UDS people tend to focus on Ubuntu and the Ubuntu community. As the "Ubuntu Developer Summit" this makes obvious sense :-) Maybe it's just my own perceptions, but it seems that when we engineers get deeply involved in something, less and less of the outside world makes it through the filters, potentially leading to situations of isolated development. Reflecting on how our interests are connected to others' can open the view back up, and I think lots more people are doing that these days. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ubuntu is not &lt;i&gt;just&lt;/i&gt; a community; it's also &lt;i&gt;part&lt;/i&gt; of a community. Part of many communities, in fact -- very large and thriving ones. The obvious candidates come to mind:  Linux, GNOME, KDE, GTK, Qt, the massive collection of upstream applications. But there are more and subtler ones. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All the work that &lt;a href="http://www.ivankamajic.com/"&gt;Ivanka&lt;/a&gt; and the &lt;a href="http://design.canonical.com/"&gt;Design team&lt;/a&gt; have done over the past year and a half has brought open source software into a new place with regard to aesthetics and how to make our applications more appealing to people across the globe, folks who don't have the same engineering-based perspective on software that we have. This is &lt;i&gt;hugely&lt;/i&gt; important and I personally feel that I owe the Design team a HUGE debt of gratitude for what they are doing for something I hold dear to my heart: open source software.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The other big change I've noticed (perhaps mostly because I'm neck-deep in it!) is the rallying that has happened around multi-touch. Hackers, academics, industrial researchers, casual enthusiasts and business folk alike are interacting on IRC and the &lt;a href="http://launchpad.net/~multi-touch-dev"&gt;multi-touch mail list&lt;/a&gt; to a greater and greater degree. Amazing cross-project cooperation is taking place, and setting really excellent precedences. It seems that the field of Human-Computer Interaction is starting to find and hold its own in the larger open source community. And we're reaching out more, too -- some of us from Ubuntu recently attended &lt;a href="http://www.acm.org/uist/uist2010/"&gt;UIST 2010 in NYC&lt;/a&gt; and had fantastic discussions with the other attendees there. I expect that we'll be more and more present at events like these.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are other examples of this sort of thing happening elsewhere in the open  source world, within projects as well as companies that sponsor them.  It's very encouraging to see such new forms of growth and evolution in our midst :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now down to business! If you can make it to UDS, you'll be in for a treat. The Platform team has been hard at work refactoring the UDS experience. Tracks are no longer based on and named after teams inside Canonical who are primarily responsible for the tech. Instead,  a series of brainstorms have resulted in a very natural and organic approach to community discussions: areas of interest. This was done in such a way as to encourage very strong cross-pollination of ideas and development strategies.  Projects from all across the open source world, team members inside and outside of Canonical, and passionate individuals will have new opportunities to impact decisions about the software that not only goes into Ubuntu, but which gets incorporated into many other distros and projects as well.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The tracks are listed  at &lt;a href="http://uds.ubuntu.com/tracks/"&gt;this UDS page&lt;/a&gt;, but I will duplicate that here for the lazy :-)&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Application Developers&lt;/li&gt;&lt;li&gt;Cloud Infrastructure&lt;/li&gt;&lt;li&gt;Performance&lt;/li&gt;&lt;li&gt;Multimedia&lt;/li&gt;&lt;li&gt;Hardware Compatibility&lt;/li&gt;&lt;li&gt;Application Selection and Defaults&lt;/li&gt;&lt;li&gt;Ubuntu the Project&lt;/li&gt;&lt;li&gt;Other&lt;/li&gt;&lt;/ul&gt;As a particular example, the sessions focusing on multi-touch technology in Linux and its toolkits, applications, etc., intersect with many of these (Application Developers, Performance, Multimedia, Hardware Compatibility, Ubuntu the Project, etc.). The same is true for other projects. Tracks that used to be dedicated to Desktop, Server, Foundations, etc., are now going to be exposed to a more diverse audience that focuses on individual's interests, brining community members even closer to the goodness they love :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you're interested in tracking multi-touch sessions, you can watch our session planning evolve at the link below:&lt;/div&gt;&lt;div&gt;  &lt;a href="https://blueprints.launchpad.net/ubuntu?searchtext=hci-n"&gt;https://blueprints.launchpad.net/ubuntu?searchtext=hci-n&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We've still got one more blueprint coming: A Gesture Language. I haven't had a chance to compile my notes about this yet, but when I do, there will likely be another blog post just discussing the exploration we want to do around the idea of such a language at UDS.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you can't make it to UDS, remember that we broadcast live streaming audio and project IRC channels for each room up on a screen so that all present can read remote comments and respond to listeners' questions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hope to see you there!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-9053835853069981321?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=NCe5fUX1SHU:_LN1K6zpXtU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=NCe5fUX1SHU:_LN1K6zpXtU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=NCe5fUX1SHU:_LN1K6zpXtU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=NCe5fUX1SHU:_LN1K6zpXtU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=NCe5fUX1SHU:_LN1K6zpXtU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=NCe5fUX1SHU:_LN1K6zpXtU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=NCe5fUX1SHU:_LN1K6zpXtU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=NCe5fUX1SHU:_LN1K6zpXtU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/NCe5fUX1SHU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/9053835853069981321/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2010/10/multi-touch-at-uds-n-in-orlando-october.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/9053835853069981321?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/9053835853069981321?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/NCe5fUX1SHU/multi-touch-at-uds-n-in-orlando-october.html" title="Multi-touch at UDS-N in Orlando, October 25th-29th" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2010/10/multi-touch-at-uds-n-in-orlando-october.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMDQXY9cCp7ImA9Wx5UEkg.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-3576211458562675847</id><published>2010-09-21T06:31:00.007-06:00</published><updated>2010-10-16T12:07:50.868-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-16T12:07:50.868-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="touch" /><category scheme="http://www.blogger.com/atom/ns#" term="meego" /><category scheme="http://www.blogger.com/atom/ns#" term="gtk" /><category scheme="http://www.blogger.com/atom/ns#" term="pymt" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="hci" /><category scheme="http://www.blogger.com/atom/ns#" term="qt" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="utouch" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="multi-touch" /><title>The Growing Linux Multi-touch Community</title><content type="html">&lt;div&gt;&lt;br /&gt;There has been a lot happening with the intersection of the Linux and HCI communities of late; it seems that the Linux community is getting more and more involved in not just multi-touch, but human computer interaction as well. It's not just for researchers anymore :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;X.org&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The X.org recently held &lt;a href="http://www.x.org/wiki/Events/XDS2010"&gt;XDS in Toulouse, France&lt;/a&gt; and by all accounts it was absolutely fabulous. I hear folks had some great discussions a day or two prior to the event and hope we get to hear about those :-) I'm watching &lt;a href="http://who-t.blogspot.com/"&gt;Peter's blog&lt;/a&gt; for an update and hope that &lt;a href="http://voices.canonical.com/chase.douglas/"&gt;Chase&lt;/a&gt; will do the same when he gets back from Taiwan.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Point-of-Sale&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A few weeks ago, I was delighted to hear from &lt;a href="http://en.wikipedia.org/wiki/Eugene_Mosher"&gt;Gene Mosher&lt;/a&gt; (inventor of touchscreen point-of-sale) on the &lt;a href="https://lists.launchpad.net/multi-touch-dev/msg00318.html"&gt;multi-touch mail list&lt;/a&gt;. We had a good conversation about his use case and I am really looking forward to checking out the work he's done.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Community Support&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Folks have been popping into IRC (#ubuntu-touch on Freenode) on a more regular basis, asking everything from beginners' questions to exploring deeply involved technical issues. &lt;a href="https://wiki.ubuntu.com/Fabi%C3%A1nRodr%C3%ADguez"&gt;Fabián Rodríguez&lt;/a&gt; has been helping out with community support, as have the core developers. In combination, the team is able to get most folks up and running, sometimes even with non-supported hardware. (Oh hell, they're gonna hate me for saying that publicly! Here comes the flood...)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;PyMT, Qt, and GTK&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of particular note, we've been having really amazing interactions with &lt;a href="http://pymt.txzone.net/"&gt;PyMT&lt;/a&gt; and &lt;a href="http://qt.nokia.com/"&gt;Qt&lt;/a&gt; folks, and it's great to see those relationships growing. &lt;a href="http://txzone.net/"&gt;Mathieu Virbel&lt;/a&gt; of PyMT has done some fantastic work on adding Python support to &lt;a href="https://launchpad.net/mtdev"&gt;mtdev&lt;/a&gt; and is currently running PyMT on those bindings. &lt;a href="http://www.the-space-station.com/"&gt;Christopher Denter&lt;/a&gt; (another PyMT-er) has shared some really great stuff about &lt;a href="http://movid.org/"&gt;Movid&lt;/a&gt;, a project he co-founded and one that we're keeping a close eye on.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On the Qt side of the house, &lt;a href="http://twitter.com/DDENIS"&gt;Denis Dzyubenko&lt;/a&gt; and &lt;a href="http://www.albisser.org/"&gt;Zeno Albisser&lt;/a&gt; have been making great strides in MT development. Originally working on the gestures API for QT, Denis has recently taken over for Bradley Hughes on the multi-touch support in Qt. Zeno is a project lead for improving the gesture API. Stephen Webb from the &lt;a href="https://wiki.ubuntu.com/DesktopExperienceTeam"&gt;DX&lt;/a&gt; multi-touch team will be working with them closely in the coming cycle.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://blogs.gnome.org/bratsche/"&gt;Cody Russell&lt;/a&gt; has started chatting with &lt;a href="http://blogs.gnome.org/carlosg/"&gt;Carlos Garnacho&lt;/a&gt;, &lt;a href="http://blogs.gnome.org/desrt/"&gt;Ryan Lortie&lt;/a&gt;, and others in the GTK community about getting full support of MT in GTK (continuing on Carlos' excellent work). These conversations are expected to ramp up at &lt;a href="http://live.gnome.org/Hackfests/GTK2010"&gt;GTK Hackfest in Spain&lt;/a&gt;, and continue at &lt;a href="http://uds.ubuntu.com/"&gt;UDS in Orlando, FL&lt;/a&gt;. With most of Cody's Maverick work done now, he's been able to pick up some prototyping he did last month and run with it some more. I can't wait to see the results :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ubuntu on the Phone?!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And for dessert, I have saved this amazing bit of info: we recently received an email on the multi-touch list from Lukas-David Gorris who is working on the &lt;a href="http://htc-linux.org/wiki/index.php?title=Main_Page"&gt;HTC Linux project&lt;/a&gt;. It turns out, he is running Maverick on the HTC HD2 (Leo) and is testing the &lt;a href="https://launchpad.net/canonical-multitouch"&gt;uTouch framework&lt;/a&gt; with this device. Henrik Rydberg is helping him debug issues in his spare time.  We were completely stunned to not only to hear about Maverick running on an HTC, but attempts to use uTouch on it!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The HTC Linux project looks really awesome. I hope they get more community interest, as this is the sort of project that gives Linux its power base: development and support from the community that large companies rarely invest in themselves. HTC Linux is a major step towards the prevalence of Linux on phones.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Though not Ubuntu, this is also a perfect time to mention &lt;a href="http://meego.org/"&gt;MeeGo&lt;/a&gt;: another effort being made with the Linux community, and a rare exception to the "rule" of big companies not putting their money on the line. MeeGo is a joint effort between &lt;a href="http://conversations.nokia.com/2010/02/15/nokia-and-intel-create-meego-for-new-era-of-mobile-computing/"&gt;Nokia&lt;/a&gt; and &lt;a href="http://www.intel.com/pressroom/archive/releases/2010/20100215corp.htm"&gt;Intel&lt;/a&gt; to produce a Linux distro for phones (and other devices). MeeGo has a focused &lt;a href="http://apidocs.meego.com/mtf/introduction.html"&gt;touch effort&lt;/a&gt;, as well (I'm subscribed to the &lt;a href="http://lists.meego.com/listinfo/meego-touch-dev"&gt;mail list&lt;/a&gt;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is a huge boon to Linux, and like the HTC Linux project, very, very cool stuff.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-3576211458562675847?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=Vc1hRNmLLoo:xBxa2gJbDo8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=Vc1hRNmLLoo:xBxa2gJbDo8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=Vc1hRNmLLoo:xBxa2gJbDo8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=Vc1hRNmLLoo:xBxa2gJbDo8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=Vc1hRNmLLoo:xBxa2gJbDo8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=Vc1hRNmLLoo:xBxa2gJbDo8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=Vc1hRNmLLoo:xBxa2gJbDo8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=Vc1hRNmLLoo:xBxa2gJbDo8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/Vc1hRNmLLoo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/3576211458562675847/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2010/09/growing-linux-multi-touch-community.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/3576211458562675847?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/3576211458562675847?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/Vc1hRNmLLoo/growing-linux-multi-touch-community.html" title="The Growing Linux Multi-touch Community" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2010/09/growing-linux-multi-touch-community.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4CSX8-fyp7ImA9Wx5QFE8.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-6746957139050217659</id><published>2010-09-02T04:00:00.003-06:00</published><updated>2010-09-02T04:56:08.157-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-02T04:56:08.157-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="touch" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="hci" /><category scheme="http://www.blogger.com/atom/ns#" term="xorg" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="canonical" /><category scheme="http://www.blogger.com/atom/ns#" term="multi-touch" /><title>HCI at Canonical</title><content type="html">&lt;div&gt;&lt;br /&gt;&lt;b&gt;uTouch&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Back in March, I blogged about &lt;a href="http://oubiwann.blogspot.com/2010/03/some-thoughts-on-mobile-device.html"&gt;future possibilities&lt;/a&gt; (in a blue-sky sense) of multi-touch, mentioning the project management I was doing for MT hardware kernel driver support in Lucid (and then proceeding to dive into the deep end of speculation). It's now an Ubuntu cycle later, and holy crap... I'm having a hard time finding the words. I think the blog title says it all. But I'll try to elaborate :-)&lt;br /&gt;&lt;br /&gt;Unless you've been living under a rock, you've probably noticed the big announcements we made a few weeks ago: &lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://lists.launchpad.net/multi-touch-dev/msg00218.html"&gt;uTouch mail list announcement&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.markshuttleworth.com/archives/455"&gt;Mark Shuttleworth's blog post&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.canonical.com/?p=414"&gt;The Canonical uTouch announcement&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.canonical.com/?p=414"&gt;&lt;/a&gt;Chase's blogging extravaganza (&lt;a href="http://voices.canonical.com/chase.douglas/2010/08/16/multitouch-gestures-project/"&gt;uTouch&lt;/a&gt;, &lt;a href="http://voices.canonical.com/chase.douglas/2010/08/16/thoughts-on-the-architecture-of-multitouch-in-ubuntu/"&gt;MT architecture&lt;/a&gt;, &lt;a href="http://voices.canonical.com/chase.douglas/2010/08/16/decoding-apples-magic-trackpad/"&gt;Magic Trackpad&lt;/a&gt;, &lt;a href="http://voices.canonical.com/chase.douglas/2010/08/25/news-on-the-magic-trackpad-driver/"&gt;Trackpad update&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;For the next few days, we were all over Google news. This was quite a shock, given that we'd been heads-down into the project for so long and hadn't really come up for air nor fully anticipated the impact (to others &lt;i&gt;or&lt;/i&gt; ourselves). Needless to say, after the intense amount of work that the team had engaged in over the previous couple months, this was quite gratifying, if somewhat unexpected.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;There has been a lot of discussion in blog posts, mail lists, IRC (#ubuntu-touch on freenode.net), Launchpad bugs and merge proposals, etc., so much so that touchscreens now pursue me feverishly when I sleep at night. I'm really not interested in writing more of the same :-)&lt;br /&gt;&lt;br /&gt;As such, I want to mix things up a bit...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;HCI Remixed&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I've been reading an amazing anthology of essays on human-computer interaction. I still  haven't finished the book (yeah, I've got about 10 in-progress titles on my nightstand), but am relishing every word in this particular collection. The book is &lt;a href="http://www.amazon.com/dp/0262050889"&gt;HCI Remixed: Reflections on Works That Have Influenced the HCI Community&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While doing some research at the beginning of the Maverick development cycle, I came across &lt;i&gt;HCI Remixed&lt;/i&gt; at the local library -- the title intrigued me and I couldn't resist. Weeks later, after having maxed out the number of times I could renew the book, I just purchased it -- I simply couldn't get enough of the book. Every essay I'd read up to that point was fantastic; each one provided volumes of information, experiences, insights, ideas for follow-up, etc. Whenever I finished one essay, I spent &lt;i&gt;days&lt;/i&gt; and sometimes &lt;i&gt;weeks&lt;/i&gt; reading up on references, pondering the past and future of human-computer interaction.&lt;br /&gt;&lt;br /&gt;Due to the unusual nature of the book, describing it is surprisingly difficult. That being said, &lt;a href="http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&amp;amp;tid=11330"&gt;the MIT Press page&lt;/a&gt; gives you a great taste:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;Over almost three decades, the field of human-computer interaction (HCI) has produced a rich and varied literature. Although the focus of attention today is naturally on new work, older contributions that played a role in shaping the trajectory and character of the field have much to tell us. The contributors to HCI Remixed were asked to reflect on a single work at least ten years old that influenced their approach to HCI. The result is this collection of fifty-one short, engaging, and idiosyncratic essays, reflections on a range of works in a variety of forms that chart the emergence of a new field.&lt;/i&gt;&lt;/blockquote&gt;If you're into HCI, learning from others, and discovering new sources of inspiration for your own work, this is simply a must-have book :-)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;A Small Piece of History&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;By the time I checked the book out of the Golden public library, it was May and we had begun building the MT team. By July -- once it became clear how astounding the team's work was -- I realized that in 10 or 20 years I could very well be writing an article about Henrik, Chase, Stephen, Ikbel, and Rafi. Much like those in the book, I could be sharing the conversations I'd had with Stéphane Chatty, Mark Shuttleworth, Neil Patel, David Siegel, and John Lea. And that's only the crew which which I was collaborating or discussing directly. There are a lot of folks who've been working very hard on multi-touch infrastructure solutions and exploring ways of integrating these for several years (e.g., Peter Hutterer and Carlos Garnacho). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Though many foundations have been laid, as of yet (to the best of my knowledge), no Linux distribution has released a multi-touch stack that integrated gestures in a unified manner across everything from applications to window managers and beyond.  This was something that Mark wanted us to provide to the open source world. In this spirit, the multitouch team hasn't just hacked things together to get a product out in time. A &lt;i&gt;lot&lt;/i&gt; of generative, creative thought and care has gone into &lt;a href="https://edge.launchpad.net/canonical-multitouch/"&gt;uTouch&lt;/a&gt;. A lot of original problem solving has taken place. Physics PhDs, kernel hackers, X.org hackers, driver creators, application integrators, toolkit gurus -- all of this knowledge was concentrated, applied, and used to distill a first approximation of what a gesture stack in Linux could look like, using the latest available technology and methodologies.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To be honest, we weren't really sure we could pull it off. There was a very good chance we could have failed at our task, quietly chalking up the loss as a lesson learned. Now that we've managed to shape these ideas into actual software, taken the threads of dreams and woven something real, we are thrilled to be engaging with others to see where all of us can take multi-touch and gestures from here.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks to expert input from the wider open source community, we're already looking at ways in which we can improve upon the first version, ways of bringing new ideas and experiences to developers and users of multi-touch hardware running Linux. Things are only just warming up, and the greatest contributions have yet to be made. Every single person in the community has before them a world of possibilities for getting involved and creating the future human-computer interfaces for the free and open source world in the coming weeks and months. These are indeed exciting times.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-6746957139050217659?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=caTzbrSNUos:_AyHhQCU4pU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=caTzbrSNUos:_AyHhQCU4pU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=caTzbrSNUos:_AyHhQCU4pU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=caTzbrSNUos:_AyHhQCU4pU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=caTzbrSNUos:_AyHhQCU4pU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=caTzbrSNUos:_AyHhQCU4pU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=caTzbrSNUos:_AyHhQCU4pU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=caTzbrSNUos:_AyHhQCU4pU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/caTzbrSNUos" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/6746957139050217659/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2010/09/hci-at-canonical-one-crazy-ass-ride.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/6746957139050217659?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/6746957139050217659?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/caTzbrSNUos/hci-at-canonical-one-crazy-ass-ride.html" title="HCI at Canonical" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2010/09/hci-at-canonical-one-crazy-ass-ride.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4ARnw9eip7ImA9WxFWEEk.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-814634272265233480</id><published>2010-05-27T17:39:00.004-06:00</published><updated>2010-05-28T05:59:07.262-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-28T05:59:07.262-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="maverick" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="foundations" /><title>Ubuntu Foundations and Maverick Meerkat 10.10</title><content type="html">&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;For those that don't know, The Ubuntu Foundations Team is responsible for delivering the core Ubuntu system, which is common to the whole Ubuntu family of products and services. For the past couple months, I had the pleasure and honour to work with the Foundations team, assisting in preparation for the Foundations Track at &lt;a href="http://summit.ubuntu.com/uds-m/track/foundations/"&gt;UDS&lt;/a&gt; and planning for the &lt;a href="http://people.canonical.com/~pitti/workitems/maverick/canonical-foundations.html"&gt;10.10 cycle&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Below I will give a brief summary of the major topics covered at UDS which, in turn, generated scheduled work items. They are listed in alphabetical order.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Boot Work&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Several boot-related areas were identified for work during Maverick. These include the following:  &lt;div&gt;&lt;ul&gt;&lt;li&gt;cd boot - by converting CD boot to use grub2 with its new graphical goodness, we will only need to maintain use of a single bootloader &lt;/li&gt;&lt;li&gt;continued performance improvements  &lt;/li&gt;&lt;li&gt;grub2 framebuffer - the end goal being a near flicker-free graphical boot splash experience  &lt;/li&gt;&lt;li&gt;UEFI - support booting on systems that use UEFI firmware &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Related blueprints:  &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-cd-boot"&gt;foundations-m-cd-boot&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-boot-performance"&gt;foundations-m-boot-performance&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-grub2-boot-framebuffer"&gt;foundations-m-grub2-boot-framebuffer&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-uefi-support"&gt;foundations-m-uefi-support&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;btrfs &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In Maverick, we will be adding support for &lt;a href="http://en.wikipedia.org/wiki/Btrfs"&gt;btrfs&lt;/a&gt;. Our tasks include such work as making ureadahead work with btrfs, adding btrfs support to grub2, integration work, and features support.&lt;br /&gt;&lt;br /&gt;Related blueprint:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-btrfs-support"&gt;foundations-m-btrfs-support&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Cleanup&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Just after an LTS release is a perfect time to clean house. We will be taking this opportunity to do so, with such work as dropping unused/unneeded packages from the base system, double-checking package dependencies, and investigating space-saving measures.&lt;br /&gt;&lt;br /&gt;Related blueprints:  &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-spring-cleaning"&gt;foundations-m-spring-cleaning&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-package-culling"&gt;foundations-m-package-culling&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Installer Redesign&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The installer is getting a serious make-over. Foundations and the Design team are working very closely together, improving the workflow, minimizing user clicks, improving the look-and-feel, and providing utility with increased ease of use.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Related blueprint:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-installer-redesign"&gt;foundations-m-installer-redesign&lt;/a&gt; &lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Software Center&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We want to get new applications into the Software Center, ideally providing developers with a means of generating revenue with the applications. For the former, we need to define some good social and technical processes to ensure ongoing quality and excellent producer/consumer experience. In conjunction with that, we need to work on getting a billing system in place.&lt;br /&gt;&lt;br /&gt;Related blueprint:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-software-center-roadmap"&gt;foundations-m-software-center-roadmap&lt;/a&gt; &lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Upstart&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Upstart is getting major work this cycle. New and improved features include the following:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Manual mode&lt;/li&gt;&lt;li&gt;Resource limits&lt;/li&gt;&lt;li&gt;Dependencies&lt;/li&gt;&lt;li&gt;Better support for UIs that want to use Upstart&lt;/li&gt;&lt;li&gt;Simple skeleton to make life easier for sysadmins&lt;/li&gt;&lt;li&gt;Provide an API for services and tasks so that folks don't have to think about the event-based model if they don't need to&lt;/li&gt;&lt;li&gt;Explore the conversion of conf files into jobs&lt;/li&gt;&lt;li&gt;Possibly extend the debug capabilities into an interactive mode&lt;/li&gt;&lt;li&gt;Improve job disabling&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Foundations will also be working closely with the server team to get their init scripts converted to Upstart. Conversely, the Kernel team will be providing new features that will allow Foundations to fully develop the planned Upstart features.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Related blueprint:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;&lt;a href="https://blueprints.edge.launchpad.net/ubuntu/+spec/foundations-m-finish-upstart"&gt;foundations-m-finish-upstart&lt;/a&gt; &lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Miscellaneous&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;There is lots of other work we'll be doing, some of which are highlighted in the following:  &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;i686 Default Compile  &lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;Stop building the ia64 and sparc community ports  &lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;Multiarch Support for gcc, binutils, dpkg, and apt &lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Foundations Python improvements&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Upgrade and install testing&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;Related blueprints:  &lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-686-compile"&gt;foundations-m-686-compile&lt;/a&gt;  &lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-drop-ia64sparc"&gt;foundations-m-drop-ia64sparc&lt;/a&gt;  &lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-multiarch-support"&gt;foundations-m-multiarch-support&lt;/a&gt; &lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-python-continuous-integration"&gt;foundations-m-python-continuous-integration&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-python-versions"&gt;foundations-m-python-versions&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-robust-python-packaging"&gt;foundations-m-robust-python-packaging&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="display: inline !important; "&gt;&lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-m-upgrade-and-install-testing"&gt;foundations-m-upgrade-and-install-testing&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://people.canonical.com/~pitti/workitems/maverick/canonical-foundations.html"&gt;Foundations Work Items for Maverick&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;&lt;a href="https://wiki.ubuntu.com/MaverickReleaseSchedule"&gt;Maverick Release Schedule&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Btrfs"&gt;btrfs&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Upstart"&gt;Upstart&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-814634272265233480?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=J7ghpWUEj7g:NIerQC_ukdc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=J7ghpWUEj7g:NIerQC_ukdc:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=J7ghpWUEj7g:NIerQC_ukdc:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=J7ghpWUEj7g:NIerQC_ukdc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=J7ghpWUEj7g:NIerQC_ukdc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=J7ghpWUEj7g:NIerQC_ukdc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=J7ghpWUEj7g:NIerQC_ukdc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=J7ghpWUEj7g:NIerQC_ukdc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/J7ghpWUEj7g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/814634272265233480/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2010/05/ubuntu-foundations-and-maverick-meerkat.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/814634272265233480?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/814634272265233480?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/J7ghpWUEj7g/ubuntu-foundations-and-maverick-meerkat.html" title="Ubuntu Foundations and Maverick Meerkat 10.10" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2010/05/ubuntu-foundations-and-maverick-meerkat.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAEQ3w4fyp7ImA9Wx5UE0g.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-37491212387824424</id><published>2010-03-12T16:25:00.005-07:00</published><updated>2010-10-17T17:21:42.237-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-17T17:21:42.237-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="wearable-computing" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="smartphones" /><category scheme="http://www.blogger.com/atom/ns#" term="mobile-computing" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="canonical" /><title>Some Thoughts on the Mobile Device Interface</title><content type="html">&lt;div&gt;&lt;p&gt;&lt;b&gt;Smartphones: Yesterday's News&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;As some of you know, I started 2010 by working in a new position at Canonical: Ubuntu Project Manager. I've been having an absolute blast; working my butt off has never been more fun, challenging, or interesting. I'm finding that nearly every side-interest I've had in the past several years is coming to the forefront in my project management work.&lt;/p&gt;  &lt;p&gt;There were all sorts of adjustments I needed to make before PM'ing again, and one of those was catching up on communication technology. I now live by email, calendars, IRC, Skype, and phone conversations. Gone are the days of going heads-down into some code for a week or two. I need to stay connected, 100% of the time. I needed to get a smartphone.&lt;/p&gt;  &lt;p&gt;What I really wanted was a &lt;a href="http://en.wikipedia.org/wiki/Nokia_N900"&gt;Nokia N900&lt;/a&gt;. Sadly, T-Mobile's not offering one, so I got an Android phone with a physical keyboard instead: a &lt;a href="http://en.wikipedia.org/wiki/HTC_Dream"&gt;new G1&lt;/a&gt;. Yeah, out of date, but considering that I was still using a Razr, the G1 is cutting-edge ;-)&lt;/p&gt;  &lt;p&gt;I gotta tell you, this little phone has changed my life. The craziest thing is not the apps, the Market, the features, etc.; it's the touchscreen that has made me a believer.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;You&lt;/b&gt; &lt;i&gt;Can&lt;/i&gt; &lt;b&gt;Touch This&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;I can't believe how radically the touchscreen phone has changed my computing habits and preferences. When I sit down at my laptop or desktop to do something quickly, I don't want use the keyboard or mouse. I want to point, swipe, and tweak with my fingers. When I'm on the phone, my brain has my speaking and text-processing faculties tied up. To easily multitask while talking, I need to be able to use a different part of my brain: that part involved in motor control.&lt;/p&gt;  &lt;p&gt;I like using the touchscreen so much that I will often use my G1 for tasks that are better suited for my laptop, merely because of the joy I get from using the interface.&lt;/p&gt;  &lt;p&gt;Touch, tap, drag, push, swipe. I love it. Can't get enough of it.&lt;/p&gt;  &lt;p&gt;The best thing of all? This is really silly: I &lt;i&gt;&lt;b&gt;love&lt;/b&gt;&lt;/i&gt; the virtual desktops and being able to navigate between them with a swipe. Whose idea was this? That designer or engineer needs to be promoted! I have &lt;i&gt;never&lt;/i&gt; experienced a more intuitive way of switching virtual desktops. I didn't even know how much this was important to me until I used the G1. I want this for my laptop!&lt;/p&gt;  &lt;p&gt;Having such a positive bias towards tactile technology, you can imagine my joy when I saw &lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/desktop-lucid-touchscreen-handling"&gt;this Ubuntu blueprint&lt;/a&gt;. And then when I was asked to work with &lt;a href="http://www2.bryceharrington.org:8080/drupal/"&gt;Bryce&lt;/a&gt; and &lt;a href="https://wiki.ubuntu.com/AndyWhitcroft"&gt;Andy&lt;/a&gt; on the PM portion of &lt;a href="https://blueprints.launchpad.net/ubuntu/+spec/desktop-lucid-xorg-multitouch"&gt;multi-touch support&lt;/a&gt;, I was quite delighted. This will give application developers and device engineers what they need in order to start creating new exciting stuff for the Ubuntu world. You will be able to have an iPad-like experience on your Linux devices (that have the proper hardware).&lt;/p&gt;  &lt;p&gt;The thing is, as much fun as tactile interfaces are, I want way more now. I've been given a taste... now I want the banquet.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;An Interface for the Future&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;So the iPad has been getting lots of press. It's bigger than a phone, I like that: I could replace my pen-and-paper medium-sized Moleskine with one. The thing I like the best though? Yeah, you guessed it: the interface. Curling pages and apps that have been re-worked specifically for the new format/size. I love it when a device lets me use it in a way that is natural and intuitive, and provides visual (or other sensory) feedback on my use.&lt;/p&gt;  &lt;p&gt;Apple has made, in my opinion, a good and interesting product. But certainly not a revolutionary one. It's a natural progression from what folks are already doing with smartphones and netbooks.&lt;/p&gt;  &lt;p&gt;So let's talk about revolutionary :-)&lt;/p&gt;  &lt;p&gt;Imagine you've got a &lt;a href="http://gtresearchnews.gatech.edu/newsrelease/power-shirt.htm"&gt;crazy new shirt&lt;/a&gt;, one whose fibers convert your movements to electrical current and can power your devices. Perhaps it comes with a "battery net" for &lt;i&gt;literally&lt;/i&gt; flexible power storage. Now imagine that some clever sod has equipped your shirt with sockets for micro-SD cards (or something similar). If you've read my "&lt;a href="http://oubiwann.blogspot.com/2009/04/after-cloud-to-atomic-computation-and.html"&gt;After the Cloud&lt;/a&gt;" posts, then you probably know where I'm going with this :-)&lt;/p&gt;  &lt;p&gt;Now add some embedded micro-controllers, and bluetooth, a smart phone with cloud-controller software, and you've got a personal S3 with potentially terabytes of light-weight, wearable storage. And your phone controls the nodes, redundancy, failover, etc. Maybe your phone runs Ubuntu and you're pushing backups of your personal cloud onto your &lt;a href="https://one.ubuntu.com/"&gt;U1 account&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;But how do we interface with all this great storage? Here comes the banquet I mentioned :-)&lt;/p&gt;  &lt;p&gt;I want to be able to reach "into" my phone, grab an icon (application, file, contact, whatever) and put it where I want. But I mean &lt;b&gt;&lt;i&gt;really&lt;/i&gt;&lt;/b&gt; put it: I can pick up some data off my desktop, and throw it over my shoulder or at my feet. With appropriate sensing equipemnt on the power shirt's sleeves, my arms and hands are now the perfect "mice."&lt;/p&gt;  &lt;p&gt;In fact, there's no more virtual desktop (that's old skool). One of the new primary functions of your mobile device is to peer "into" the halo of data that surrounds you now. You can either spin your virtual storage space around you like an inverted, 3D lazy susan, our you can physically move your phone around, like a diving mask peering into the water. &lt;/p&gt; &lt;p&gt;&lt;b&gt;Closing Thoughts&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The more data I have, the more I feel that I live in it. The problem is that our current tech forces us into tiny sardine cans and we have to consume our data with the equivalent of a single chop-stick. If I'm going to live in my data, I want to have the best possible experience of immersion that I can. I want an interface that can handle my future.&lt;/p&gt;&lt;p&gt;I could go on and on... I love this sort of thing. The important thing to know now is that the community is working on the building blocks for our technological future. The first steps are being made in open source software that will allow us to take giant, insanely cool steps in the not-to-distant future.&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-37491212387824424?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zUh9sk-n9ew:SHIR-sMCyjA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zUh9sk-n9ew:SHIR-sMCyjA:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=zUh9sk-n9ew:SHIR-sMCyjA:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zUh9sk-n9ew:SHIR-sMCyjA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=zUh9sk-n9ew:SHIR-sMCyjA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zUh9sk-n9ew:SHIR-sMCyjA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=zUh9sk-n9ew:SHIR-sMCyjA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=zUh9sk-n9ew:SHIR-sMCyjA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/zUh9sk-n9ew" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/37491212387824424/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2010/03/some-thoughts-on-mobile-device.html#comment-form" title="15 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/37491212387824424?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/37491212387824424?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/zUh9sk-n9ew/some-thoughts-on-mobile-device.html" title="Some Thoughts on the Mobile Device Interface" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>15</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2010/03/some-thoughts-on-mobile-device.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMFR3s-fCp7ImA9WxBVFkw.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-8678467584176140152</id><published>2010-02-19T11:24:00.005-07:00</published><updated>2010-02-19T14:20:16.554-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-19T14:20:16.554-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="blogging" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="transparency" /><category scheme="http://www.blogger.com/atom/ns#" term="canonical" /><category scheme="http://www.blogger.com/atom/ns#" term="freedom" /><category scheme="http://www.blogger.com/atom/ns#" term="business" /><title>7 Years of Blogasmic Action</title><content type="html">&lt;div&gt;&lt;br /&gt;Earlier today, I was looking through old blog posts, reminding myself of issues and topics that I want to continue reflecting on actively. When I got to the end of the posts, I looked at the earliest date and realized that my seven-year blogiversary was this past Wednesday. At my vocalized comment to this effect, Marjorie asked what got me started on blogging. Interestingly, it ties in with my professional life over the past twleve years...&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a physics undergrad and employee of the University of Maryland, I was hired away by a large internet startup for my systems and programming background. Already a fan of &lt;a href="http://en.wikipedia.org/wiki/Office_Space"&gt;Office Space&lt;/a&gt;, I got to experience the reality of cubicle life as the not-so-funny, real complement of that classic movie. However, it wasn't my personal experience of cubihell that had the biggest impact upon my psyche; it was the corporate atrocities suffered by various customers and partners of dot-boom era, high-rolling companies. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Already a passionate open-source user and contributor, it become one of my personal goals to make sure a greater number of people (especially those making decisions in companies) were informed about the software freedoms that were within their reach. Within two years of this epiphany, I had my own company and was open-source consulting for everything from small businesses to large international corporations and the Federal government. Everything I did was open source; all of it saved my customers from spending millions of dollars unnecessarily and the enslavement of proprietary lock-in.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It was at this time that I started blogging. My primary interest was to be a voice in the wilderness of consultants, finding other like-minded programmers, project managers, sales  engineers, etc., who believed in "open business", transparency, and accountability. As time progressed, my blogging habits adapted to fill other needs in various communities. However, all of my professional decisions have remained true to that initial desire to work on technology that was not only free, but actively prevented the bondage of its users.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For the past year and a half, I've been working at &lt;a href="http://www.canonical.com/"&gt;Canonical&lt;/a&gt;, the company that funds and actively supports &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt; and the &lt;a href="https://wiki.ubuntu.com/"&gt;Ubuntu Community&lt;/a&gt;. Every time I work with a different engineer or a new team, I am blown away by two things: the incredible talent embodied in each interaction, and the dedication that each person has to improving how free technology is delivered to the world.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My blog posts have definitely changed in character over the past seven years. But I'm delighted that, where I once felt alone with my ideals, I can count true giants in the field among my fellow community members, cooworkers, and mentors.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-8678467584176140152?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=g7kSrVMuW4M:xgbgwa8fz4Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=g7kSrVMuW4M:xgbgwa8fz4Q:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=g7kSrVMuW4M:xgbgwa8fz4Q:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=g7kSrVMuW4M:xgbgwa8fz4Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=g7kSrVMuW4M:xgbgwa8fz4Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=g7kSrVMuW4M:xgbgwa8fz4Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=g7kSrVMuW4M:xgbgwa8fz4Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=g7kSrVMuW4M:xgbgwa8fz4Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/g7kSrVMuW4M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/8678467584176140152/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2010/02/7-years-of-blogasmic-action.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/8678467584176140152?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/8678467584176140152?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/g7kSrVMuW4M/7-years-of-blogasmic-action.html" title="7 Years of Blogasmic Action" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2010/02/7-years-of-blogasmic-action.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08MQX07eSp7ImA9WxBVFk0.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-7102844968181998057</id><published>2010-02-12T10:24:00.007-07:00</published><updated>2010-02-19T10:51:20.301-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-19T10:51:20.301-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="release" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="cgi twisted" /><category scheme="http://www.blogger.com/atom/ns#" term="lucid" /><category scheme="http://www.blogger.com/atom/ns#" term="libraries" /><category scheme="http://www.blogger.com/atom/ns#" term="asynchronous" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>txAWS 0.0.1 Released!</title><content type="html">&lt;div&gt;&lt;br /&gt;&lt;img src="https://launchpadlibrarian.net/26031738/twisted-amazon-192.png" border="0" align="left" /&gt;The first version of &lt;a href="https://launchpad.net/txaws"&gt;txAWS&lt;/a&gt; just made it out the door, thanks to prodding from &lt;a href="https://launchpad.net/~smoser"&gt;Scott Moser&lt;/a&gt;, who is helping to get txAWS into &lt;a href="https://wiki.ubuntu.com/LucidReleaseSchedule"&gt;Ubuntu Lucid Lynx&lt;/a&gt;. It's been uploaded to &lt;a href="http://pypi.python.org/pypi/txAWS/"&gt;PyPI&lt;/a&gt; now too, so you can do the usual (&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;easy_install txAWS&lt;/span&gt;), or you can download it from &lt;a href="https://launchpad.net/txaws"&gt;Launchpad&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For those interested in writing async code for the cloud, txAWS is the library for you :-) What's more, if you're interested in contributing to a &lt;a href="http://twistedmatrix.com/trac/"&gt;Twisted&lt;/a&gt;-based project, this could be just the thing to get you started. The use of Twisted is pretty basic in txAWS (though we do adhere to various coding idioms pretty strongly, to enhance maintainability), and would be a nice introduction. What's more, there are lots of exciting features and work still to do, and you could really make a difference.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-7102844968181998057?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=cWojIkCryTM:0occIdmE124:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=cWojIkCryTM:0occIdmE124:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=cWojIkCryTM:0occIdmE124:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=cWojIkCryTM:0occIdmE124:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=cWojIkCryTM:0occIdmE124:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=cWojIkCryTM:0occIdmE124:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=cWojIkCryTM:0occIdmE124:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=cWojIkCryTM:0occIdmE124:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/cWojIkCryTM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/7102844968181998057/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2010/02/txaws-001-released.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/7102844968181998057?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/7102844968181998057?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/cWojIkCryTM/txaws-001-released.html" title="txAWS 0.0.1 Released!" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2010/02/txaws-001-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMBQXg9fyp7ImA9WxNVFk8.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-6420207114447015861</id><published>2009-10-26T08:16:00.008-06:00</published><updated>2009-10-27T00:20:50.667-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T00:20:50.667-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rrd" /><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="games" /><category scheme="http://www.blogger.com/atom/ns#" term="rrdtool" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="ec2" /><category scheme="http://www.blogger.com/atom/ns#" term="uls" /><category scheme="http://www.blogger.com/atom/ns#" term="spore" /><category scheme="http://www.blogger.com/atom/ns#" term="rtf" /><title>Recent Work on Various Open Source Projects</title><content type="html">&lt;div&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;Over the last few months, I've been doing lots of work on various open source projects. I've been so burried in them that I haven't blogged (or microblogged) much about them. So much has been happening, though, that I needed to take a break from the coding and communicate some of this :-)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;txAWS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Over the last few months, &lt;a href="http://rbtcollins.wordpress.com/"&gt;Robert Collins&lt;/a&gt;, Thomas Herve, Jamshed Kakar and I have been putting lots of effort into improving cloud support in the async (Twisted) Python Amazon EC2 library. It's been a lot of fun to see that part of the library take shape and start getting production use from &lt;a href="http://canonical.com/landscape"&gt;Canonical&lt;/a&gt;. We have implemented the following functionality groups and their &lt;a href="http://docs.amazonwebservices.com/AWSEC2/2008-12-01/DeveloperGuide/"&gt;associated API&lt;/a&gt; methods:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Instances&lt;/li&gt;&lt;li&gt;Key Pairs&lt;/li&gt;&lt;li&gt;Security Groups&lt;/li&gt;&lt;li&gt;Elastic IPs&lt;/li&gt;&lt;li&gt;Availability Zones&lt;/li&gt;&lt;li&gt;EBS&lt;/li&gt;&lt;/ul&gt;There is a ticket for the following two groups of functionality, and branches in progress for both:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Images (&lt;a href="https://bugs.launchpad.net/txaws/+bug/461136"&gt;ticket #461136&lt;/a&gt; on &lt;a href="http://launchpad.net/"&gt;Launchpad&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Image Attributes (&lt;a href="https://bugs.launchpad.net/txaws/+bug/461139"&gt;ticket #461139&lt;/a&gt; on &lt;a href="http://launchpad.net/"&gt;Launchpad&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Once those are merged, EC2 support in txAWS will be complete.&lt;br /&gt;&lt;br /&gt;As a bonus, we've added support for arbitrary endpoints and with that in place, have successfully tested &lt;span style="font-family:courier new;"&gt;txaws.ec2&lt;/span&gt; against &lt;a href="http://www.eucalyptus.com/open/"&gt;Eucalyptus&lt;/a&gt; clouds :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;txJSON-RPC&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There's a new release of &lt;a href="https://launchpad.net/txjsonrpc"&gt;txJSON-RPC&lt;/a&gt; out now, downloadable from &lt;a href="http://pypi.python.org/pypi/txJSON-RPC/0.3"&gt;PyPI&lt;/a&gt;. Work on the next version has been a great deal of fun. What started out as a conversation on IRC with Terry Jones, ended up as spec-driven doctest work on trunk for implementing support for multiple versions of the JSON-RPC spec (pre-1.0, 1.0, and 2.0).&lt;br /&gt;&lt;br /&gt;With these changes in spec support, txJSON-RPC has really started to mature, and that's been fantastic. Even more, the jsonrpclib module that's included in txJSON-RPC (and can be used with non-Twisted projects) is getting spec version support as well.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SOOM in txULS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As some may know, one of my computing passions is &lt;a href="http://oubiwann.blogspot.com/2008/05/required-reading-ultra-large-systems.html?popular"&gt;ultra large-scale systems&lt;/a&gt;. After a phone conversation with Jamshed Kakar and some nice exchanges on the &lt;a href="http://www.python.org/community/sigs/current/"&gt;Python ULS-SIG&lt;/a&gt; mail &lt;a href="http://mail.python.org/pipermail/uls-sig/2009-September/thread.html"&gt;list&lt;/a&gt; with Alex Drahon, I started working on a set of coding experiments in self-organizing objects. The &lt;a href="https://docs.google.com/Doc?docid=0AVGwpdQOa6W2ZGd4bjdqM3BfNmNzbXI5NmNm&amp;amp;hl=en&amp;amp;pli=1"&gt;Google Doc&lt;/a&gt; informally outlines the various stages and goals.&lt;br /&gt;&lt;br /&gt;For now, the code is living in a &lt;a href="https://edge.launchpad.net/txuls/soom"&gt;txULS series&lt;/a&gt; on Launchpad. The reason for its inclusion in txULS is that ultimate goal of the SOOM (self-organizing object meshes) code is to produce an async API for building Twisted services that provide behaviours as outlined in the Google Doc (linked above).&lt;br /&gt;&lt;br /&gt;I would to emphasize the networking-library-agnostic nature of the ULS-SIG: Twisted comes up since I spend a lot of time with Twisted, but ever networking library is welcome. I'm personally interested in exploring (or watching other developers explore) various Stackless Python experiments in the ULS systems space.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;txSpore&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://launchpad.net/txspore"&gt;This project&lt;/a&gt; was a spontaneous effort resulting from an evening of code review when I first discovered the official &lt;a href="http://www.spore.com/comm/developer/python"&gt;Python API&lt;/a&gt; from EA/Maxis for the game Spore. It's been a blast and something that &lt;a href="http://radix.twistedmatrix.com/"&gt;Chris Armstrong&lt;/a&gt; and I have been working on together. The API is currently feature-complete, but Chris has some excellent ideas about improving usage as well as some additional API augmentations that will make life easier for game developers.&lt;br /&gt;&lt;br /&gt;Already more featureful and usable than the official Spore Python API, there are great things in store for this library. Chris has come up with several very cool demo ideas that take advantage of the new API and will push it to the limits. We're both pretty excited :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Isomyr&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I love isometric games. I'm a freak for the classic look. One night about a month ago, Chris and I discovered &lt;a href="http://www.webalice.it/simon.gillespie/Isotope.html"&gt;Isotope&lt;/a&gt;, an isometric Python game engine by Simon Gillespie. It was last updated in 2005 at version 0.9, so I started working on a branch that could be released as 1.0. I never heard back from Simon after an inquiry for his permission to release as 1.0, so I forked the code to a new project: &lt;a href="https://launchpad.net/isomyr"&gt;Isomyr&lt;/a&gt;. I released the code rewrite work I had done to that point (plus some changes such as replacing some old code with Numpy) as &lt;a href="http://pypi.python.org/pypi/Isomyr/"&gt;0.1&lt;/a&gt;. At which point things just went nuts...&lt;br /&gt;&lt;br /&gt;Isomyr now has support for multiple worlds, customizable (per world) in-game time and calendars, and basic interactive fiction development. The latest chunk of code (that hasn't been pushed up to Launchpad yet) is adding support for general planetary simulation (e.g., axial title, varying daylight hours, seasons, and weather). As you might imagine, this has been a great deal of fun to work on!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PyRRD&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://launchpad.net/pyrrd"&gt;PyRRD&lt;/a&gt; has gotten some recent community love, with requests for a &lt;a href="http://groups.google.com/group/pyrrd-users"&gt;mail list&lt;/a&gt;, new developer-oritnted features, etc. Currently at version 0.0.7, the 0.1.0 release isn't to far away. Folks have been using trunk for a while, which added support for the RRDTool Python bindings back in March of this year. (PyRRD's focus has primarily been for users/developers who didn't have the RRDTool Python bindings installed).  In the next couple weeks or months, I expect that we'll be adding a few more features, and then preparing the new release.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PyRTF&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Another fixer-upper project, &lt;a href="https://launchpad.net/pyrtf"&gt;PyRTF&lt;/a&gt; (mirroed on Google code as &lt;a href="http://code.google.com/p/pyrtf-ng/"&gt;pyrtf-ng&lt;/a&gt;) has been on hiatus for a while, due to my diminished need to manipulate and interact with RTF files. However, a new developer has joined the project and the code-cleanup and unit test development now continues. Thanks &lt;span class="sprite person"&gt;Christian Simms!&lt;br /&gt;&lt;br /&gt;A while ago, Simon Cusack&lt;/span&gt; (&lt;span class="sprite person"&gt;the original author of &lt;a href="http://sourceforge.net/projects/pyrtf/"&gt;PyRTF&lt;/a&gt;) and I had some great discussions about the future development of PyRTF and his interest in merging the recent changes into trunk on SourceForge. I deferred on that action, wanting to wait until the code cleanup, unit tests, and API changes had been completed. With Christian's help, we may get there now :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Wrap-up&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's been about a year since I've been so active in open source development, and it feels &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; good to be at it again :-) Being back in Colorado seems to have helped in subtle ways, but mostly it's been the increased interaction and interest from developers in the community that I can thank for my increased activity (and thus enjoyment). You guys are awesome. You're the reason for any code I produce.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-6420207114447015861?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=bXg69HFOUKI:rN3nq8UZ1FU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=bXg69HFOUKI:rN3nq8UZ1FU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=bXg69HFOUKI:rN3nq8UZ1FU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=bXg69HFOUKI:rN3nq8UZ1FU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=bXg69HFOUKI:rN3nq8UZ1FU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=bXg69HFOUKI:rN3nq8UZ1FU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=bXg69HFOUKI:rN3nq8UZ1FU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=bXg69HFOUKI:rN3nq8UZ1FU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/bXg69HFOUKI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/6420207114447015861/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2009/10/recent-work-on-various-open-source.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/6420207114447015861?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/6420207114447015861?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/bXg69HFOUKI/recent-work-on-various-open-source.html" title="Recent Work on Various Open Source Projects" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2009/10/recent-work-on-various-open-source.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYCRXo4fip7ImA9WxNQEk0.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-5708442058182672922</id><published>2009-09-17T11:12:00.002-06:00</published><updated>2009-09-17T11:22:44.436-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-17T11:22:44.436-06:00</app:edited><title>PyCon 2010 Talks Neeed!</title><content type="html">&lt;div&gt;&lt;br /&gt;Hey folks,&lt;br /&gt;&lt;br /&gt;At my last count, we've only received 20 talks so far for PyCon 2010! There are only 14 days remaining for talk submissions... if you've had a great idea about a talk for PyCon, now's the time to make it happen!&lt;br /&gt;&lt;br /&gt;Below I've pasted some links that folks might find helpful. The first one has pretty much everything you need to know about submitting a talk for PyCon.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://us.pycon.org/2010/conference/proposals/"&gt;Proposal Submission Information &lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://us.pycon.org/2010/conference/helpforspeakers/"&gt;Help and Tips for Speakers&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-5708442058182672922?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=JUJU3VebQPM:mlRxKx5iCFE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=JUJU3VebQPM:mlRxKx5iCFE:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=JUJU3VebQPM:mlRxKx5iCFE:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=JUJU3VebQPM:mlRxKx5iCFE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=JUJU3VebQPM:mlRxKx5iCFE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=JUJU3VebQPM:mlRxKx5iCFE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=JUJU3VebQPM:mlRxKx5iCFE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=JUJU3VebQPM:mlRxKx5iCFE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/JUJU3VebQPM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/5708442058182672922/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2009/09/pycon-2010-talks-neeed.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/5708442058182672922?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/5708442058182672922?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/JUJU3VebQPM/pycon-2010-talks-neeed.html" title="PyCon 2010 Talks Neeed!" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2009/09/pycon-2010-talks-neeed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04EQXsyfSp7ImA9WxNQEUs.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-9029394338732169097</id><published>2009-09-13T23:05:00.002-06:00</published><updated>2009-09-16T23:38:20.595-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-16T23:38:20.595-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rest" /><category scheme="http://www.blogger.com/atom/ns#" term="games" /><category scheme="http://www.blogger.com/atom/ns#" term="services" /><category scheme="http://www.blogger.com/atom/ns#" term="twisted" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="spore" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>txSpore: Twisted Spore</title><content type="html">&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/oubiwann/3918607932/sizes/o/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 175px; height: 240px;" src="http://farm4.static.flickr.com/3422/3918607932_8fe9402c90_m.jpg" alt="" border="0" /&gt;&lt;/a&gt;I just had a delightful weekend of coding :-) I spent the past two days porting the &lt;a href="http://www.spore.com/comm/developer/python"&gt;Spore Python API&lt;/a&gt; to &lt;a href="http://twistedmatrix.com/"&gt;Twisted&lt;/a&gt;. You can now incorporate Spore data (from static XML as well as REST requests) into your non-blocking Python applications/games!&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This was a pretty easy task, really. The API just makes HTTP requests with &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;twisted.web.client.getPage&lt;/span&gt;. There was a little bit of work involved in creating object models for the XML, and some head-scratching for the error-catching &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;deferToThread&lt;/span&gt; unit test I tried to write (it's still buggy... need to figure that one out). Everything else was pretty much cake.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In fact, it was so much fun to kick back and write some playful code that I might overhaul the sync Python code as well and incorporate both into txSpore. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Do be aware, however, that the code still has some big improvements coming.  The first thing I want to hit is actually create a client object. Right now, the client module contains a series of functions (since state's not currently needed). However, I want to start doing some basic object caching in order to limit the number of requests made to &lt;a href="http://www.spore.com/"&gt;spore.com&lt;/a&gt; and increase the response time. That's the big item for 0.0.2. &lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; 0.0.2 is now released!&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next I'd like to create some more demo apps that show off the API usage better. Right now, there's one demo (a &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;.tac&lt;/span&gt; file). All it does is ask for a user name, renders a user page, and then links to a user "Spore assets" page (that's the thumbnail image above).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One thing that might be fun to do is write a script that checks for the latest achievements and publishes them to various microblog/status sites with the Twisted PyngFM client :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There's a project page up on &lt;a href="https://launchpad.net/"&gt;Launchpad&lt;/a&gt; for &lt;a href="https://launchpad.net/txspore"&gt;txSpore&lt;/a&gt;, and I've posted a &lt;a href="http://forum.spore.com/jforum/posts/list/42187.page"&gt;notice and some updates&lt;/a&gt; to the Spore developer forums. It's also been &lt;a href="http://pypi.python.org/pypi/txSpore/"&gt;published on PyPI&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enjoy!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-9029394338732169097?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=AmpmbCo8AMU:QH6uB1m5bLg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=AmpmbCo8AMU:QH6uB1m5bLg:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=AmpmbCo8AMU:QH6uB1m5bLg:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=AmpmbCo8AMU:QH6uB1m5bLg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=AmpmbCo8AMU:QH6uB1m5bLg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=AmpmbCo8AMU:QH6uB1m5bLg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=AmpmbCo8AMU:QH6uB1m5bLg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=AmpmbCo8AMU:QH6uB1m5bLg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/AmpmbCo8AMU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/9029394338732169097/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2009/09/txspore-twisted-spore.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/9029394338732169097?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/9029394338732169097?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/AmpmbCo8AMU/txspore-twisted-spore.html" title="txSpore: Twisted Spore" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm4.static.flickr.com/3422/3918607932_8fe9402c90_t.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2009/09/txspore-twisted-spore.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIGR30-fyp7ImA9WxNRE0s.&quot;"><id>tag:blogger.com,1999:blog-8825992.post-2245942595633363922</id><published>2009-09-07T16:47:00.004-06:00</published><updated>2009-09-07T17:02:06.357-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-07T17:02:06.357-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mac os x" /><category scheme="http://www.blogger.com/atom/ns#" term="mp3" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="lame" /><category scheme="http://www.blogger.com/atom/ns#" term="mplayer" /><category scheme="http://www.blogger.com/atom/ns#" term="scripting" /><category scheme="http://www.blogger.com/atom/ns#" term="itunes" /><category scheme="http://www.blogger.com/atom/ns#" term="apple" /><title>Windows Media to MP3 Conversion for Mac OS X and Linux</title><content type="html">&lt;div&gt;&lt;br /&gt;For the past couple years, my girlfriend has been amazingly (astonishingly) patient about a whole slew of .wma files that we've got on the network drive... backups of her CD collection made when she was a Windows user. We managed to save them right before the computer died, but she hasn't been able to listen to them when she's booted into Ubuntu or Mac OS X.&lt;br /&gt;&lt;br /&gt;Late last month, after getting back from two weeks abroad, Marjorie said that she'd really like to have access to her music collection again (the CDs are cumbersome and stored away in boxes for our impending move back to Colorado). With that said, I did some digging around, and found some immediately helpful links (two years ago, a few google searches had turned up results that indicated too much effort was involved).&lt;br /&gt;&lt;br /&gt;I started out by trying a couple free Mac OS X GUI applications, but these ended up being quite horrible: either they did not offer the functionality I desired, they were buggy to the point of being unusable, or they rendered audio with unlistenable artifacts.&lt;br /&gt;&lt;br /&gt;In the end, I had to use &lt;a href="http://www.mplayerhq.hu/"&gt;mplayer&lt;/a&gt; and &lt;a href="http://lame.sourceforge.net/"&gt;lame&lt;/a&gt; in combination. After googling around and some trial and error, I discovered the combination of mplayer options that would successfully extract the audio data from .wma files and dump them as .wav files.&lt;br /&gt;&lt;br /&gt;I started with a shell script, but quickly changed to Python, since there were several locations for the .wma files, and none of them on nice paths.  I've used this script several times since then, when more .wma files were discovered, and have yet to encounter any issues in sound quality. Once nice-to-have would be to extract .wma metadata and save it in the new .mp3 files as id3 tags...&lt;br /&gt;&lt;br /&gt;Anyway, here's the code:&lt;br /&gt;&lt;br /&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c"&gt;#!/usr/bin/python&lt;/span&gt;&lt;br /&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;&lt;br /&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;re&lt;/span&gt;&lt;br /&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;subprocess&lt;/span&gt;&lt;br /&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="c"&gt;# script configuration&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;platform&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;darwin&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;MPLAYER_PATH&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;br /&gt;        &lt;span class="s"&gt;&amp;quot;/Applications/Non-Standard/Audio and Video&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;br /&gt;        &lt;span class="s"&gt;&amp;quot;MPlayer OS X 2.app/Contents/Resources/mplayer.app/Contents/MacOS&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;    &lt;span class="c"&gt;# lame was manually installed into /usr/bin&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;LAME_PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;/usr/bin&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;platform&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;linux2&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;MPLAYER_PATH&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;/usr/bin&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;LAME_PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;/usr/bin&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;MPLAYER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MPLAYER_PATH&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;mplayer&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;LAME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;LAME_PATH&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;lame&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;DUMP_FILE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;audiodump.wav&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;BACKUP_DIR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;wma&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="n"&gt;WORKING_DIR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;/tmp&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;make_audio_dump&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;br /&gt;    &lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    Use mplayer to dump the audio contents of the .wma files as .wav files.&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;command&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt; -nosound -vo null -vc dummy -af resample=44100 -aid 1 &amp;quot;&lt;/span&gt; &lt;br /&gt;               &lt;span class="s"&gt;&amp;quot;-ao pcm:waveheader &lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MPLAYER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;shell&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;convert_wav_to_mp3&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;br /&gt;    &lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    Use lame to convert the .wav files to .mp3 files. Remove the raw .wav file&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    when done.&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;command&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt; -b 256 -h &lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt; -o &lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;LAME&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;shell&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;unlink&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;convert_wma_to_mp3&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wma_filename&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;br /&gt;    &lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    Given a .wma filename, get a filename for the new .mp3 file based on this,&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    convert the original to a .wav and then that to an .mp3 file.&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;mp3_filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sub&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;\.wma$&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;.mp3&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wma_filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;make_audio_dump&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wma_filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;convert_wav_to_mp3&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DUMP_FILE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mp3_filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;has_wma_files&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filenames&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;br /&gt;    &lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    Given a list of filenames, check to see if any of them have the .wma file&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    extension. If so, return a true value; otherwise, a false one.&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;filenames&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;br /&gt;        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;endswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;.wma&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;br /&gt;            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;convert_wma_files&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;br /&gt;    &lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    Walk a given file system directory and all its child directories in order&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    to find .wma files. If found, convert them to .mp3 files and backup the&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    originals.&lt;/span&gt;&lt;br /&gt;&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nb"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;subdirs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filenames&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;walk&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;br /&gt;        &lt;span class="c"&gt;# we don&amp;#39;t want to convert files that have already been converted&lt;/span&gt;&lt;br /&gt;        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;basename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;BACKUP_DIR&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;br /&gt;            &lt;span class="k"&gt;continue&lt;/span&gt;&lt;br /&gt;        &lt;span class="c"&gt;# if there&amp;#39;s nothing to do, move on&lt;/span&gt;&lt;br /&gt;        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;has_wma_files&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filenames&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;br /&gt;            &lt;span class="k"&gt;continue&lt;/span&gt;&lt;br /&gt;        &lt;span class="c"&gt;# define and create the backup dir, if it hasn&amp;#39;t been already&lt;/span&gt;&lt;br /&gt;        &lt;span class="n"&gt;backup_dir&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;BACKUP_DIR&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;backup_dir&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;br /&gt;            &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mkdir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;backup_dir&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filenames&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;br /&gt;            &lt;span class="c"&gt;# on mac os x samba shares, sometimes ._*.wma files are present;&lt;/span&gt;&lt;br /&gt;            &lt;span class="c"&gt;# skip these&lt;/span&gt;&lt;br /&gt;            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;startswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;br /&gt;                &lt;span class="k"&gt;continue&lt;/span&gt;&lt;br /&gt;            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;endswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;.wma&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;br /&gt;                &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Dumping audio for &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s"&gt; ...&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;                &lt;span class="n"&gt;wma_filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;                &lt;span class="n"&gt;wma_backup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;backup_dir&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;                &lt;span class="n"&gt;convert_wma_to_mp3&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wma_filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;                &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wma_filename&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wma_backup&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;__main__&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chdir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;WORKING_DIR&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;    &lt;span class="n"&gt;convert_wma_files&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hope someone else finds this useful and their significant others don't have to wait 2 years for their music!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8825992-2245942595633363922?l=oubiwann.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=djnGubz6-dY:iDi02hgD2PE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=djnGubz6-dY:iDi02hgD2PE:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=djnGubz6-dY:iDi02hgD2PE:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=djnGubz6-dY:iDi02hgD2PE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=djnGubz6-dY:iDi02hgD2PE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=djnGubz6-dY:iDi02hgD2PE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?i=djnGubz6-dY:iDi02hgD2PE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ElectricDuncan?a=djnGubz6-dY:iDi02hgD2PE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ElectricDuncan?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ElectricDuncan/~4/djnGubz6-dY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://oubiwann.blogspot.com/feeds/2245942595633363922/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://oubiwann.blogspot.com/2009/09/windows-media-to-mp3-conversion.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/2245942595633363922?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8825992/posts/default/2245942595633363922?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ElectricDuncan/~3/djnGubz6-dY/windows-media-to-mp3-conversion.html" title="Windows Media to MP3 Conversion for Mac OS X and Linux" /><author><name>Duncan McGreggor</name><uri>http://www.blogger.com/profile/17155270977759488515</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/-nrh0l1Wyg7E/TwH5bXx6isI/AAAAAAAAAGw/CdDWpfpYaGg/s220/duncan_in_redwood_crop_retouch_2.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://oubiwann.blogspot.com/2009/09/windows-media-to-mp3-conversion.html</feedburner:origLink></entry></feed>

