<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Graceful Exits &#187; futurology</title>
	<atom:link href="http://www.jpstacey.info/blog/category/futurology/www.jpstacey.info/blog/category/futurology/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jpstacey.info/blog</link>
	<description>Garbage collection, in a very real sense</description>
	<pubDate>Tue, 30 Sep 2008 20:10:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Google and its Developer Day</title>
		<link>http://www.jpstacey.info/blog/2008/09/21/google-and-its-developer-day/</link>
		<comments>http://www.jpstacey.info/blog/2008/09/21/google-and-its-developer-day/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 10:41:18 +0000</pubDate>
		<dc:creator>jps</dc:creator>
		
		<category><![CDATA[business]]></category>

		<category><![CDATA[conferences]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[futurology]]></category>

		<category><![CDATA[hacking]]></category>

		<category><![CDATA[intent]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[appengine]]></category>

		<category><![CDATA[branding]]></category>

		<category><![CDATA[developer]]></category>

		<category><![CDATA[gdd]]></category>

		<category><![CDATA[gdd2008london]]></category>

		<category><![CDATA[gddlondon2008]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.jpstacey.info/blog/?p=239</guid>
		<description><![CDATA[Google would be considered more trustworthy if along with REST, WSGI and AJAX it finally admitted to embracing NASDAQ.]]></description>
			<content:encoded><![CDATA[<p>The past couple of evenings I&#8217;ve been away from a computer and so not free to consolidate <a href="/blog/2008/09/16/live-blogging-from-google-developer-day/" >my copious notes</a> all the interesting stuff that happened at <a href="http://code.google.com/intl/en_uk/events/developerday/2008/home.html" >Google Developer Day on Tuesday</a>. I should start by saying that all the organizers, especially Liz Ericson, should be proud for planning and running such a fun event, and so smoothly. I think everyone had all the free food we could manage (with great veggie options, which is a mark of something), and sweeties and fresh coffee were distributed around the conference area. Lots of beer in the evening too, and a cute little Lego-like USB stick-man to keep me company on the bus home.</p>
<p>The venue was also great&#8212;if a bit too big for getting from room to room in a hurry&#8212;and the security and catering staff were some of the nicest I&#8217;ve ever encountered. Apparently we weren&#8217;t allowed to mention the name of the enormous sports stadium west of London that we all attended, but if I say it rhymes with Bembley and looked like it still had the builders in and scaffolding up then you&#8217;ll know where we were.</p>
<p>As at any conference the talks were a mixed bag, although all the ones I went to were definitely worth listening to. <a href="www.noveltyflashdrives.com" >Mano Marks</a> covered developer optimizations for <a href="http://code.google.com/appengine/" >Google App Engine</a> with aplomb and a cheeky grin; <a href="http://almaer.com/blog/" >Dion Almaer</a> provided what might have been a &#8220;will-this-do&#8221; overview of the &#8220;state of AJAX&#8221;, which actually became a more interesting discussion of the state of browsers in general, and how they might move towards full support of <abbr title="Rich Internet Applications" >RIAs</abbr>; <a href="http://www.flickr.com/photos/kaztor/2866831241/" >Nimrod Talmon&#8217;s</a> discussion of <a href="http://code.google.com/apis/visualization/" >Google Visualization</a>, on the other hand, suffered from being immediately after lunch. I could&#8217;ve managed that level of tech details after a nap to sleep off my sugar slump, but I think he should really have been in the pre-lunch slot. We were all jamming on simple carbohydrates anyway, so it&#8217;s not as though we would have been itching for butties. The content of his talk was still intriguing, though, and it&#8217;s good to know you can at least consider  handing this sort of thing over to a third-party engine if the client wants it but the poor webserver doesn&#8217;t.</p>
<p>The lightning talks at the end of the day were as shambolic as these things tend to be. Liz said that a lot of people had expressed an interest before the event, but if that was the case then they were all being very optimistic about what they&#8217;d actually be able to accomplish before the day, as we only had maybe half a dozen in what sounded from <a href="http://gagravarr.livejournal.com/" >Nick</a> like the most popular slot of the day. Anyway, it was fun to break out a bit, but my laptop wouldn&#8217;t detect the projector, and then the gist&#8212;the actual, pivotal slide&#8212;was lost in conversion to whatever it was it was converted to on a Mac. I may do it at a later <a href="http://oxford.geeknights.net/" >Geek Night</a>, if I can stomach abusing my position as organiser.</p>
<p>Google very much held off on any go-team antics, hoping that their products would speak for themselves. That was slightly marred by them making it quite clear to everyone, that they did indeed hope that their products would speak for themselves, but at least there were no overt recruitment drives, and rubbishing of the competition was limited to the pretty much warranted chastisement of over-prompting your user and making them <a href="http://blogs.msdn.com/oldnewthing/archive/2006/05/26/608007.aspx" >numb to modal dialogues</a>, behaviour of which XP is particularly guilty.</p>
<p>Within the reasonably frank and open exploration of their services, however, were occasional notes of discord. Whenever any kind of business case was mentioned things would go quiet, and quite clearly those things weren&#8217;t up for discussion, which I think is a shame. Google doesn&#8217;t need to pretend that it&#8217;s everyone&#8217;s best friend to have our respect: it&#8217;s public knowledge that it has shareholders, and I think developers the world over can admire it in that context if we know where we are with it.</p>
<p>Transparency engenders trust, and I&#8217;d take comfort from someone replying to a query about the bottom line by saying &#8220;well, I asked my boss, and he said that we give this stuff for free because it positions us as an influential brand when it comes to advertising revenue, trusted partnerships, GSAs, Google Minis&#8230;.&#8221; Hell, if I&#8217;d been fed on those ciabatta rolls and caramel shortbread slices beforehand then I&#8217;d probably be asleep by that point, so it wouldn&#8217;t matter <em>what</em> they admitted after the fold.</p>
<p>Those occasional moments aside I had a grand day out. I&#8217;m itching to start working on App Engine now, and putting into place some of the weirder code patterns Mano mentioned. I&#8217;ve also already had a play with Gears following Dion&#8217;s talk, and it seems to turn Google Docs into something close to OpenOffice. But before any serious coding, I have to wait for the blood blister on my finger to go downfirst, which came from playing Guitar Hero at the end of the evening. How rock and roll, eh? The young Googler I played against trounced, me: as you&#8217;d expect: deep down I think Google&#8217;s just as cool as it wants to appear to be on the surface.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jpstacey.info/blog/2008/09/21/google-and-its-developer-day/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Live blogging from Google Developer Day</title>
		<link>http://www.jpstacey.info/blog/2008/09/16/live-blogging-from-google-developer-day/</link>
		<comments>http://www.jpstacey.info/blog/2008/09/16/live-blogging-from-google-developer-day/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 11:15:55 +0000</pubDate>
		<dc:creator>jps</dc:creator>
		
		<category><![CDATA[advertising]]></category>

		<category><![CDATA[business]]></category>

		<category><![CDATA[discussion]]></category>

		<category><![CDATA[futurology]]></category>

		<category><![CDATA[developer]]></category>

		<category><![CDATA[gdd]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[googledoc]]></category>

		<category><![CDATA[liveblog]]></category>

		<guid isPermaLink="false">http://www.jpstacey.info/blog/?p=235</guid>
		<description><![CDATA[I typed this first time round in Lynx over ssh, so it was quite brief. I then went back and added a whole day of live rambling to it, so now it's as long as a Steve Yegge post.]]></description>
			<content:encoded><![CDATA[<p>Currently live blogging from the <a href="http://code.google.com/intl/en_uk/events/developerday/2008/home.html" >Google Developer Day, London 2008</a>. Fittingly <a href="http://docs.google.com/View?docID=dhqj87kr_7hdjmg9hb">the live blog is a Google Doc</a>.</p>
<p>Like a moron, I left my mobile phone at home, and then ended up separated from everyone I know; so have a look at what I&#8217;m liveblogging and find me, if you care.</p>
<p>Edit 2008-09-18: notes now below.</p>
<p><b>The End</p>
<p>Lightning talks 16.25-17.35, SF2</b><i></p>
<p>Google App Engine<br />&nbsp; </i>&lt;head&gt; web conference - headconference.com<br />&nbsp; Old days;<br />&nbsp; &nbsp; An app would be built, load-tested get discovered, and die.&nbsp; <br />&nbsp; Now:<br />&nbsp;&nbsp;&nbsp; You test with ONE person, it gets discovered, and GREAT!</p>
<p>&nbsp; Construction phase<br />&nbsp;&nbsp;&nbsp; More complex<br />&nbsp;&nbsp;&nbsp; Tools more limited<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Both of these have their reasons</p>
<p>&nbsp; 1,000 files<br />&nbsp;&nbsp;&nbsp; Django source &gt; 1000<br />&nbsp;&nbsp;&nbsp; Solution: Guido van Rossum: http://icanhaz.com/zipimport ; rietveld on Google OS</p>
<p>&nbsp; 1MB limit on ALL data structures<br />&nbsp;&nbsp;&nbsp; You will run up against this EVERYWHERE<br />&nbsp;&nbsp;&nbsp; Can&#8217;t combine files on server<br />&nbsp; &nbsp; Solution: Amazon S3 - infinitebits.info gives FTP access</p>
<p>&nbsp; No long&#8211;running processes<br />&nbsp;&nbsp;&nbsp; Solution: hack it with HTTP refresh!<br />&nbsp;&nbsp;&nbsp; Web-based cron! webbasedcron.com</p>
<p>&nbsp; Short-term quotas<br />&nbsp;&nbsp;&nbsp; 24-hour quota<br />&nbsp;&nbsp;&nbsp; Uncatchable<br />&nbsp;&nbsp;&nbsp; Bad advert!</p>
<p>&nbsp; Backup and restore<br />&nbsp;&nbsp;&nbsp; GAE Backup And Restore (uh-huh)<br />&nbsp;&nbsp;&nbsp; Open-sourcing it</p>
<p>&nbsp; Django<br />&nbsp;&nbsp;&nbsp; Google are not into developing application frameworks<br />&nbsp;&nbsp;&nbsp; So basically use Django, dudes.</p>
<p>&nbsp; http://opencountrycodes.appspot.com/<br />&nbsp; http://isvat.appspot.com/</p>
<p><i>Android work, Kevin O&#8217; Sullivan, Sita</i></p>
<p><i>&nbsp; </i>Airports still run on 60s technology!<br />&nbsp; &nbsp; Looking at mobile technologies<br />&nbsp;&nbsp;&nbsp; Predictive analytics from ACARS data - archived and ignored</p>
<p>&nbsp; Passenger mobility<br />&nbsp;&nbsp;&nbsp; Smartphones, context-awareness</p>
<p>&nbsp; Application<br />&nbsp;&nbsp;&nbsp; GPS<br />&nbsp;&nbsp;&nbsp; Mashup, overlay with airports</p>
<p>&nbsp;&nbsp;&nbsp; Click on airport and get Arr/Dep info, querying a backend system</p>
<p><i>RDF, Tom Morris<br /></i>&nbsp; RDF as an open-knowledge enabler<br />&nbsp; URIs in the data<br />&nbsp; &nbsp; Links to other documents<br />&nbsp;&nbsp;&nbsp; URIs that define something e.g. wikipedia:Cities:London</p>
<p>&nbsp; Mashups<br />&nbsp;&nbsp;&nbsp; PITA - be a developer<br />&nbsp;&nbsp;&nbsp; Or have the data link itself together<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;Let&#8217;s all use the same names&#8221;</p>
<p>&nbsp;&nbsp;&nbsp; dbpedia, bbc.co.uk/programmes<br />&nbsp;&nbsp;&nbsp; libris.kb.se - Swedish Nat lib<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; every book has a URI</p>
<p>&nbsp; SPARQL<br />&nbsp;&nbsp;&nbsp; A bit like SQL</p>
<p>&nbsp; sindice.com - search existing linked data (DERI - digital something research inst)</p>
<p>&nbsp; Libraries + making easier for JS/AJax devs</p>
<p><i>Green Maps</i></p>
<p>&nbsp; Green maps - Anna approached for Glasgow&nbsp; Green Map<br />&nbsp;&nbsp;&nbsp; Open project for local community?<br />&nbsp;&nbsp;&nbsp; &#8230; Get them to do the work<br />&nbsp;&nbsp;&nbsp; Also existing reuse groups - the Electron Group</p>
<p>&nbsp; Put out leaflets everywhere around Glasgow<br />&nbsp;&nbsp;&nbsp; &#8220;Enthusiastic developers!&#8221; &#8220;Enthusiastic designers!&#8221;<br />&nbsp;&nbsp;&nbsp; &#8230; bugger all<br />&nbsp;&nbsp;&nbsp; But presented at arts school and got lots of volunteers</p>
<p>&nbsp; Dear Green Place<br />&nbsp;&nbsp;&nbsp; website deargreenplace.org<br />
<h4>Visualize your data: Google Visualization API,<b> Nimrod Talmon, -&gt;16.10, Atari<br /></b></h4>
<p>&nbsp; Types<br />&nbsp; &nbsp; Generic<br />&nbsp;&nbsp;&nbsp; Specific<br />&nbsp;&nbsp;&nbsp; &#8220;Hard&#8221;</p>
<p>&nbsp; Examples - iGoogle gadgets<br />&nbsp;&nbsp;&nbsp; Wrapped in Javascript, exposed to the iGoogle framework via an API</p>
<p>&nbsp; Problem:<br />&nbsp;&nbsp;&nbsp; Potentially many data sources<br />&nbsp;&nbsp;&nbsp; Potentially many visualization sinks<br />&nbsp;&nbsp;&nbsp; Many APIs - hard to find &#8220;the right one&#8221;</p>
<p>&nbsp; Google Visualization<br />&nbsp;&nbsp;&nbsp; Seems to be a generalization of Google Charts</p>
<p>&nbsp; Google Finance - generic stock charts, embedded into GF</p>
<p>&nbsp; 70 lines of JS code for a simple-ish 10-20 point graph with widgets</p>
<p>&nbsp; Why?<br />&nbsp;&nbsp;&nbsp; Google does the visualization, so fast &amp; scalable<br />&nbsp;&nbsp;&nbsp; API built with devs in mind</p>
<p>&nbsp; Premise of visualizing<br />&nbsp;&nbsp;&nbsp; Abstract a visualization<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Appearance<br />&nbsp;&nbsp;&nbsp; Model objects from Google&#8217;s API<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; google.visualization.TypeOfVisualization() &#8230; chart.draw()</p>
<p>&nbsp; (Nothing should ever make it easier to build pie charts. Especially three-dimensional pie charts, the anti-visualization for people who won&#8217;t get numbers anyway. Tufte FTW!)</p>
<p>&nbsp; (A bit hard work -&nbsp; data.setCell(x, y, &#8216;Label&#8217;) is a bit like &lt;cfchartdata&gt;. JSON methods?)</p>
<p>&nbsp; Q; data going to Google?<br />&nbsp; A: Javascript call to get API, but here generation is in client. Others in Flash wrapped in JS.</p>
<p>&nbsp; Q: other formats e.g. JPG?<br />&nbsp; A: ?</p>
<p>&nbsp; Events &amp; actions<br />&nbsp;&nbsp;&nbsp; Own event model<br />&nbsp;&nbsp;&nbsp; Visualisations listening to events and communicating between each other via closures addListener(fred, &#8217;select&#8217;, function() { barney.method(); })</p>
<p>&nbsp; Data views<br />&nbsp;&nbsp;&nbsp; Dynamic re-slicing off the data you&#8217;re using for one vis, potentially for reuse in another<br />&nbsp;&nbsp;&nbsp; Not a new data set - change the data, change the view<br />&nbsp;&nbsp;&nbsp; Like SQL views</p>
<p>&nbsp; Q: aggregate functions?<br />&nbsp; A: wait 10 mins</p>
<p>&nbsp; Why develop for Google Visualization?<br />&nbsp;&nbsp;&nbsp; Reach - de facto standard<br />&nbsp;&nbsp;&nbsp; Viable business model? Panorama, Eureka</p>
<p>&nbsp; (Note to self: ESC :w does not work in a Google doc)</p>
<p>&nbsp; Extend API with new visualizations<br />&nbsp;&nbsp;&nbsp; Declare draw() method on prototype</p>
<p>&nbsp; &#8230; slightly dry but interesting demos&#8230; they shouldn&#8217;t have these things just after lunch&#8230;.</p>
<p>&nbsp; SQL-like syntax querying Google Spreadsheets&#8230; Pretty cool, but count the number of browsers that will deal with this scalably: I make it two.<br />&nbsp; Ah, this might only be happening server-side. Phew. I wonder if I still have that Bobby Tables spreadsheet lying around anywhere.</p>
<p>&nbsp; Visualizations laid out on the webpage, about as well as MS Word does it in a document, only you can dive in and work out why everything kee<b>ps tu</b>rnin<b>g bold</b>, dam<b>mit.</b></p>
<p>&nbsp; Q: Accessibility?<br />&nbsp; A: Don&#8217;t have generic solution for this - write your own vis and you can do it</p>
<p>&nbsp; (Don&#8217;t see how that&#8217;s possible, as the data will still be in .setCell() calls&#8230; how about microformats on a plain-HTML table, with the table appearing for accessibility-impaired? A method to convert HTML or JSON to a data source would be tidier anyway.)</p>
<p><b>Lunch<br /></b><br /><b>A deeper look at Google App Engine, Mano Marks</b></p>
<p>&nbsp; Overview of App Engine<br />&nbsp; Quick walkthrough<br />&nbsp; Best practices</p>
<p>&nbsp; Standard problems of setting up a webapp<br />&nbsp;&nbsp;&nbsp; Startup, scalability, upgrades, maintenance etc.</p>
<p>&nbsp; GAE easy to start, easy to scale<br />&nbsp; 5M pageviews / month for typical app<br />&nbsp;&nbsp;&nbsp; Payment for additional cap. BY END OF YEAR<br />&nbsp; Python only <br />&nbsp;&nbsp;&nbsp; More languages soon<br />&nbsp;&nbsp;&nbsp; Mano can&#8217;t tell us which, but he won&#8217;t tell us why he can&#8217;t tell us - we don&#8217;t need to know<br />&nbsp; Offline processing<br />&nbsp;&nbsp;&nbsp; No cron, but&#8230; soon.</p>
<p>&nbsp; SLA<br />&nbsp;&nbsp;&nbsp; None<br />&nbsp;&nbsp;&nbsp; Cloudstatus, partner org, monitoring tool<br />&nbsp; Lock-in<br />&nbsp;&nbsp;&nbsp; (You can&#8217;t download your code, so get svn warmed up)</p>
<p>&nbsp; cite: Hackathon slides and other useful info - http://code.google.com/p/google-app-engine-codelab/downloads/list</p>
<p>&nbsp; Tutorial<br />&nbsp;&nbsp;&nbsp; app.yaml<br />&nbsp;&nbsp;&nbsp; WSGI application<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; methods as per HTTP verbs<br />&nbsp;&nbsp;&nbsp; Models on top of BigTable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; schemaless - &#8220;what happens if you add a column to a table in a relational database? EVERY ROW in that table gets that new column&#8221;</p>
<p>&nbsp; Q: What about data security?<br />&nbsp; A: Google do not trawl through your data. It&#8217;s your data. We don&#8217;t touch it.<br />&nbsp; Q: There&#8217;s an SLA?</p>
<p>&nbsp; Q: Do we put ads on your applications?<br />&nbsp; A: No. Your visitors will never know this is a GAE app</p>
<p>&nbsp; Entities<br />&nbsp;&nbsp;&nbsp; Most properties indexed and efficient to query (not including BLOBs and CLOBs/text)<br />&nbsp;&nbsp;&nbsp; Keys - limitations (only one ID per entity, cannot change ID or key_name later) but Get() by Key is VERY fast<br />&nbsp;&nbsp;&nbsp; No revision storage - you have to do this yourself</p>
<p>&nbsp; Transactions<br />&nbsp;&nbsp;&nbsp; ACID<br />&nbsp;&nbsp;&nbsp; No queries in transactions - Get() and Put()<br />&nbsp;&nbsp;&nbsp; So assemble your data first with .gql() to inform your transaction, then perform</p>
<p>&nbsp; Counters<br />&nbsp;&nbsp;&nbsp; BigTale doesn&#8217;t count by design. So must Model.count() scan every entity row<br />&nbsp;&nbsp;&nbsp; class Counter(db.Model)<br />&nbsp;&nbsp;&nbsp; Sharded counter - in an entity GROUP (see docs)<br />&nbsp;&nbsp; &nbsp;&nbsp; Counters count a few entities on reads, and whenever necessary you could the counters</p>
<p>&nbsp; (I thought Mano was going to break into a rendition of &#8220;That&#8217;s Amore&#8221; to the camera just then. I think you had to be there.)</p>
<p>&nbsp; Cache reads and counters<br />&nbsp;&nbsp;&nbsp; memcached<br />&nbsp;&nbsp;&nbsp; cacheing for n seconds, where n is OK for your purposes.</p>
<p>&nbsp; Q: 1MB limit - can we gzip and reassemble?<br />&nbsp; A: We don&#8217;t give you access to files and Python - I think - needs that. But you have a 1MB cap on out-of-the door. And we don&#8217;t give you the underlying C libraries<br />&nbsp; Q: So C won&#8217;t be the next language on App Engine?<br />&nbsp; A: I didn&#8217;t say that (laughs)</p>
<p>&nbsp; Q: SLA&#8230;<br />&nbsp; A: UNOFFICIALLY, I&#8217;d like people to say &#8220;I want to spend this amount of money&#8221;. Currently you have a quota but it&#8217;s divided up so you don&#8217;t use it all up in one spike.</p>
<p>&nbsp; Q: URL fetch - buy more time? (limit 4s)<br />&nbsp; A: at this point no way round that. Can&#8217;t comment on future.</p>
<p>&nbsp; Q: Django 0.96 - 1.0 roadmap?<br />&nbsp; A: We haven&#8217;t released one. You can upload 1.0 yourself. But things like GeoJSON rely on C libraries, so there are issues there.<br />&nbsp;&nbsp;&nbsp;&nbsp; People are always going to ask &#8220;Are we going to support multiple versions?&#8221; (which wasn&#8217;t really the question - 0.96 was pre-release, 1.0 wasn&#8217;t. A good reason to just support one version, and that be 1.0. It&#8217;s not as though there&#8217;s an SLA in the way.)</p>
<p>&nbsp; Q: memcache - shouldn&#8217;t GAE handle that/<br />&nbsp; A: we don&#8217;t want to pre-empt the developer too much, taking control out of their hands. Maybe a 20% proj will handle that if it goes in as a feature request&#8230;!</p>
<p><b>State of AJAX, Dion Almaer</b></p>
<p>&nbsp; Dion runs Ajaxian</p>
<p>&nbsp; 1. Desktop-y world<br />
&nbsp; 2. Cloud services<br />
&nbsp; 3. Browsers<br />&nbsp; 4. libraries and frameworks<br />&nbsp; 5. Gears and monkeys<br />&nbsp;<br />&nbsp; Take a step back<br />&nbsp;&nbsp;&nbsp; What does AJAX mean now we&#8217;re where we are</p>
<p>&nbsp; Took a designer to see the potential<br />&nbsp;&nbsp;&nbsp; &#8220;The latency will get you, the web&#8217;s not good enough&#8221;<br />&nbsp;&nbsp;&nbsp; Needed proving through e.g. auto-suggest</p>
<p>&nbsp;&nbsp;&nbsp; Maps - eyecandy of draggable maps itself isn&#8217;t really AJAX<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; just different ways of thinking about the static HTML page</p>
<p>&nbsp; Car ads<br />&nbsp;&nbsp;&nbsp; Show the dashboard (UI)<br />&nbsp;&nbsp;&nbsp; Not the engine schematics, although they&#8217;re important to get right</p>
<p>&nbsp; Jared Leto as a UI overhaul<br />&nbsp; Vista as a UI and not much else</p>
<p>&nbsp; cite: Jef Raskin, <i>The Humane Interface</i>. I want Raskin&#8217;s head-mounted Borg interface.<br />&nbsp;&nbsp;&nbsp; &#8220;&#8230; if the interaction between one human and one system is not polite and friendly it will poison the user experience&#8230;&#8221;</p>
<p>&nbsp; Visual design and interaction design <br />&nbsp;&nbsp;&nbsp; Two separate worlds<br />&nbsp;&nbsp;&nbsp; But they&#8217;re both right</p>
<p>&nbsp; The whole web used to look like MySpace<br />&nbsp; &nbsp; Now, Apple Store - no Flash, but it zooms and swoops<br />&nbsp;&nbsp;&nbsp; Expectations change: Bridge On The River Kwai vs. Spiderman 3<br />&nbsp; &nbsp; Script.aculo.us, Dojo, jQuery follow expectations. You just <i>have </i>to use them nowadays or the absence is noticeable.</p>
<p>&nbsp; cite: Jakob Nielsen<br />&nbsp;&nbsp;&nbsp; 1-second reaction time of your app is about the limit for keeping the user&#8217;s flow<br />&nbsp;&nbsp;&nbsp; 0.1-1, people notice, but they don&#8217;t mind too much</p>
<p>&nbsp; The library dartboard!<br />&nbsp;&nbsp;&nbsp; Gradually collapsing down to jQ, Dojo, P+s.a.u, and&#8230; GWT</p>
<p>&nbsp; &nbsp; 1. lightweight - Prototype<br />&nbsp; &nbsp; 2. hate Javascript, love that hot lava Java? - GWT <br />&nbsp; &nbsp; 3. functional, DOM-like - jQuery<br />&nbsp; &nbsp; 4. rich soup-to-nuts - Dojo</p>
<p>&nbsp; &nbsp; I don&#8217;t like the sound of soup to nuts. I&#8217;ve been in that sort of restaurant.</p>
<p>&nbsp;&nbsp;&nbsp; P, jQ and Dojo all have thin core + plugin community + visual effect plugins, so &#8220;pick one&#8221;</p>
<p>&nbsp; Examples of other libraries<br />&nbsp;&nbsp;&nbsp; Mobile Me (SproutCore)<br />&nbsp;&nbsp;&nbsp; 280 Slides (Objective-j)</p>
<p>&nbsp; Dojo realtime charting - GFX package, Dojo grid, Processing.js (Canvas)</p>
<p>&nbsp; The 0.1second limit<br />&nbsp;&nbsp;&nbsp; Event queue, browser, processing - browser&#8217;s switching system (JS? style?) a bottleneck<br />&nbsp;&nbsp;&nbsp; Firefox logo used for the browser, I see</p>
<p>&nbsp;&nbsp;&nbsp; No such thing as threads in JS.<br />&nbsp; &nbsp; &nbsp; cite:Brendan Eich, &#8220;Threads suck.&#8221;<br />&nbsp;&nbsp; &nbsp;&nbsp; In comes Google Gears, neeow<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WorkerPool process outside the browser</p>
<p>&nbsp; Jef Raskin again. &#8220;The typed &#8216;Y&#8217; becomes a learned gesture&#8221; - warning dialogues just get clicked on, unheeded<br />&nbsp;&nbsp;&nbsp; So undo instead<br />&nbsp;&nbsp;&nbsp; But how do you do that on the web?</p>
<p>&nbsp;&nbsp;&nbsp; Form history<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Slider bar changes between revisions - don&#8217;t ever actually have to give someone the undo</p>
<p>&nbsp; cite: Jonathan Schwartz. Every RIA has a RIBackend</p>
<p>&nbsp; Talking to desktop<br />&nbsp;&nbsp;&nbsp; Notification APIs</p>
<p>&nbsp; 1. Fluid - Mac only, but integrates tightly using Greasemonkey-like scripts<br />&nbsp; 2. Gears - more about giving the browser access to existing APIs<br />&nbsp; 3. Mozilla Prism - cross-platform<br />&nbsp; 4. Adobe AIR - using Flash / CSS skills to build desktop apps</p>
<p>&nbsp; Back to the dartboard&#8230;<br />&nbsp; &nbsp; Wii remote, directing a dart, in an Ajax application.<br />&nbsp;&nbsp;&nbsp; You&#8217;ve won a rubber bully!</p>
<p>&nbsp; Wii -&gt; bluetooth -&gt; WinXX -&gt; wiiuse -&gt; wiiusej -&gt; Java plugin WiiTracker -&gt; browser</p>
<p>&nbsp; Java PLUGINS?<br />&nbsp;&nbsp;&nbsp; In Chrome,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Works out of process (doesn&#8217;t kill browser, totally independent)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deployment with JNLP - download components only once<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Micro-kernel</p>
<p>&nbsp; Modern Web Development<br />&nbsp;&nbsp;&nbsp; cite: Alan Foreman, poisonedminds.com</p>
<p>&nbsp; Mozilla&#8217;s monkeys<br />&nbsp;&nbsp;&nbsp; Getting other languages into the browser with VMs</p>
<p>&nbsp; Plugins only get you so far<br />&nbsp;&nbsp;&nbsp; HTML5<br />&nbsp;&nbsp;&nbsp; Gears is trying to follow this (and presumably to some extent lead it)</p>
<p>&nbsp;&nbsp; 70% of sites have a div called &#8220;footer&#8221; - so why not &lt;footer&gt; ?</p>
<p>&nbsp; Questions<br />&nbsp;&nbsp;&nbsp; Q. Compatibility &amp; SLAs - adopting other people&#8217;s projects?<br />&nbsp;&nbsp;&nbsp; A. No plans - still very immature environment.</p>
<p><b>Keynote</b></p>
<p>&nbsp; Browser as client<br />&nbsp;&nbsp;&nbsp; Ubiquitous, zero-install, standards<br />&nbsp;&nbsp;&nbsp; but capabilities mediocre<br />&nbsp;&nbsp;&nbsp; Google want to improve browser capabilities<br />&nbsp; Cloud access<br />&nbsp;&nbsp;&nbsp; Massive capability beyond most devs&#8217; reach<br />&nbsp; Connectivity</p>
<p>&nbsp; Current web apps are pushing the browser&#8217;s capability<br />&nbsp;&nbsp;&nbsp; Browsers haven&#8217;t changed much, but the web has<br />&nbsp;&nbsp;&nbsp; Invisible iframe!<br />&nbsp; So Chrome</p>
<p>&nbsp; *** CHROME COMMERCIAL BREAK *** - good but covered by Scott McCloud already</p>
<p>&nbsp; APIs<br />&nbsp;&nbsp;&nbsp; Programmatic accessibility of authentication and content<br />&nbsp;&nbsp;&nbsp; *Significant* growth in traffic</p>
<p>&nbsp; Google App Engine<br />&nbsp;&nbsp;&nbsp; Other languages in pipeline</p>
<p>&nbsp;&nbsp;&nbsp; Solves non-dev problems for apps;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deployment<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Pre-launch investment<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hardware maintenance<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Scalability</p>
<p>&nbsp;&nbsp;&nbsp; Apps<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Wordle<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Buddypoke (OpenSocial)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iPhone app - code.google.com/p/metasyntactic<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Pixverse - Pix Wall and Pix Chat</p>
<p>&nbsp; Android<br />&nbsp;&nbsp;&nbsp; Open Handset Alliance (!)<br />&nbsp;&nbsp;&nbsp; OS mobile platform + WebKit</p>
<p>&nbsp;&nbsp;&nbsp; Mike Jennings<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *** Android demo ***<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tape over branding<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Slashdot is so 2002, unless you&#8217;re me<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Touch screen<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The blue dot app - accelerometer<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OpenGL, Java</p>
<p>&nbsp; Google Web Toolkit<br />&nbsp;&nbsp;&nbsp; Writing BIG AJAX apps<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Live demo - a bit .NET<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hosting browser running Java bytecode, not Javascript representation.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; So can be debugged as Java code</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jpstacey.info/blog/2008/09/16/live-blogging-from-google-developer-day/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Compiling languages down to Javascript</title>
		<link>http://www.jpstacey.info/blog/2008/05/12/compiling-languages-down-to-javascript/</link>
		<comments>http://www.jpstacey.info/blog/2008/05/12/compiling-languages-down-to-javascript/#comments</comments>
		<pubDate>Mon, 12 May 2008 14:39:46 +0000</pubDate>
		<dc:creator>jps</dc:creator>
		
		<category><![CDATA[futurology]]></category>

		<category><![CDATA[paradigms]]></category>

		<category><![CDATA[quickies]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[browser]]></category>

		<category><![CDATA[convergence]]></category>

		<category><![CDATA[ide]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[virtual]]></category>

		<category><![CDATA[vm]]></category>

		<guid isPermaLink="false">http://www.jpstacey.info/blog/2008/05/12/compiling-languages-down-to-javascript/</guid>
		<description><![CDATA[A hundred years from now, all code will look both similar and different.]]></description>
			<content:encoded><![CDATA[<p>If it&#8217;s really the case that <a href="/blog/2008/05/11/emacs-as-an-anagram-of-ecma-s/">browsers, virtual machines and IDEs will one day converge</a>, then the first steps would be to <a href="http://ejohn.org/blog/running-java-in-javascript/">run Java, Ruby and other languages in a browser using Javascript</a>. (Hat tip to <a href="http://gagravarr.livejournal.com/">Nick</a> for the timely links.)</p>
<p>[Edit: <a href="http://codespeak.net/pypy/dist/pypy/doc/js/whatis.html">run Python using Javascript</a> too.]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jpstacey.info/blog/2008/05/12/compiling-languages-down-to-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Emacs as an anagram of &#8220;ECMA-S&#8221;</title>
		<link>http://www.jpstacey.info/blog/2008/05/11/emacs-as-an-anagram-of-ecma-s/</link>
		<comments>http://www.jpstacey.info/blog/2008/05/11/emacs-as-an-anagram-of-ecma-s/#comments</comments>
		<pubDate>Sun, 11 May 2008 17:51:31 +0000</pubDate>
		<dc:creator>jps</dc:creator>
		
		<category><![CDATA[enterprise]]></category>

		<category><![CDATA[futurology]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[browser]]></category>

		<category><![CDATA[ecmascript]]></category>

		<category><![CDATA[emacs]]></category>

		<category><![CDATA[firefox]]></category>

		<category><![CDATA[flash]]></category>

		<category><![CDATA[ide]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[rants]]></category>

		<category><![CDATA[ria]]></category>

		<category><![CDATA[steve]]></category>

		<category><![CDATA[yegge]]></category>

		<guid isPermaLink="false">http://www.jpstacey.info/blog/2008/05/11/emacs-as-an-anagram-of-ecma-s/</guid>
		<description><![CDATA[Your editor will become your browser will become your IDE. The process has already begun. Please wait.]]></description>
			<content:encoded><![CDATA[<p><a href="http://steve-yegge.blogspot.com/2008/04/xemacs-is-dead-long-live-xemacs.html">Steve Yegge on *Emacs</a>, pointing also to the possible future direction of the *browser:</p>
<blockquote><p>&#8220;IDEs are draining users away, but it&#8217;s not the classic fat-client IDEs that are ultimately going to kill Emacs. It&#8217;s the browsers. They have all the power of a fat-client platform and all the flexibility of a dynamic system. I said earlier that Firefox wants to be Emacs. It should be obvious that Emacs also wants to be Firefox&#8230;</p>
<p>&#8220;&#8230; [N]ow the browsers are starting to sprout desktop-quality apps and productivity tools. It won&#8217;t be long, I think, before the best Java development environment on the planet is written in JavaScript.&#8221;</p>
</blockquote>
<p>I&#8217;m more of a vi user these days&#8212;it behaves much more consistently over emergency ssh sessions&#8212;but as a general advocate of Emacs over IDEs I can see his point. Browsers <em>should</em> want to be like Emacs, or at any rate more like the VM of your choice.</p>
<p>Between browser-as-VM, Firefox, ECMAScript and compatibility frameworks there&#8217;s the seeds of an RIA revolution. After all, to what extent will industries gladly rest their financial weight on RIAs, so long as they&#8217;re all written in Flash-on-the-browser, and so long as browsers remain so unpredictable and Flash remains&#8230; well, Flash?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jpstacey.info/blog/2008/05/11/emacs-as-an-anagram-of-ecma-s/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Orl korrect at OKCon</title>
		<link>http://www.jpstacey.info/blog/2008/03/16/orl-korrect-at-okcon/</link>
		<comments>http://www.jpstacey.info/blog/2008/03/16/orl-korrect-at-okcon/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 20:13:42 +0000</pubDate>
		<dc:creator>jps</dc:creator>
		
		<category><![CDATA[conferences]]></category>

		<category><![CDATA[culture]]></category>

		<category><![CDATA[futurology]]></category>

		<category><![CDATA[2008]]></category>

		<category><![CDATA[autonomy]]></category>

		<category><![CDATA[community]]></category>

		<category><![CDATA[conference]]></category>

		<category><![CDATA[freedom]]></category>

		<category><![CDATA[fsf]]></category>

		<category><![CDATA[gnu]]></category>

		<category><![CDATA[knowledge]]></category>

		<category><![CDATA[okcon]]></category>

		<category><![CDATA[open]]></category>

		<category><![CDATA[opensource]]></category>

		<category><![CDATA[talks]]></category>

		<guid isPermaLink="false">http://www.jpstacey.info/blog/2008/03/16/orl-korrect-at-okcon/</guid>
		<description><![CDATA[Openness is about more than availability: it's about offering something the way you'd offfer a guest your tray of Ferrero Rocher.]]></description>
			<content:encoded><![CDATA[<p>Yesterday&#8217;s <a href="http://www.okfn.org/okcon/">OKCon 2008</a> was great fun, if a long day! I&#8217;m still digesting the food for thought that the conference provided&#8212;many, small courses; over a dozen if you include the more open sessions after the keynotes, and each followed by a sorbet of questions and debate&#8212;so I don&#8217;t have a great deal to say about what I heard yet. The field of open knowledge, like that of open source ten or fifteen years ago, is still largely untilled and untidy, and many disparate groups are gradually but warily treading its boundaries, with only a few striking out into its wild heart.</p>
<p>Despite the argument of what constitutes openness being largely resolved in the open-source community, we still found rich pickings of our own. It&#8217;s trivial to define openness in, say, data, with its analogies to code; but it would be an error to equate data and knowledge or understanding thereof. The broad consensus was that open knowledge was a combination of both free-as-in-speech and free-as-in-beer, but also free-as-in-educated and free-as-in-enfranchised. In this way, its analogies lie more in open computing, or open web-navigating, than in open source: a combination of freedom, autonomy and opportunity. Solutions will therefore need to be a complex, messy combination of social, political and technical: less like Python, but more like <a href="http://laptop.org/">One Laptop Per Child</a>.</p>
<p>Ben Spigel, who made the connection between OS-then and OK-now explicit, missed the mark a little when he likened the OK community to Linux&#8217;s. After this conference, I think we need to stretch even further back, to such early efforts as the <abbr title="Free Software Foundation">FSF</abbr> and <abbr title="GNU's not Unix">GNU</abbr>. There are still moral complexities to be resolved, difficult decisions about direction to be made, and occasionally vehement arguments to be had: only once all that is settled can we sit back and just worry about the OK equivalent of killer apps, whatever those might turn out to be.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jpstacey.info/blog/2008/03/16/orl-korrect-at-okcon/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Working out chaotic things</title>
		<link>http://www.jpstacey.info/blog/2007/12/10/working-out-chaotic-things/</link>
		<comments>http://www.jpstacey.info/blog/2007/12/10/working-out-chaotic-things/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 10:22:05 +0000</pubDate>
		<dc:creator>jps</dc:creator>
		
		<category><![CDATA[business]]></category>

		<category><![CDATA[culture]]></category>

		<category><![CDATA[futurology]]></category>

		<category><![CDATA[non-programming]]></category>

		<category><![CDATA[paradigms]]></category>

		<category><![CDATA[albatross]]></category>

		<category><![CDATA[cd]]></category>

		<category><![CDATA[digital]]></category>

		<category><![CDATA[discbox]]></category>

		<category><![CDATA[download]]></category>

		<category><![CDATA[inrainbows]]></category>

		<category><![CDATA[missingthepoint]]></category>

		<category><![CDATA[mp3]]></category>

		<category><![CDATA[music]]></category>

		<category><![CDATA[radiohead]]></category>

		<category><![CDATA[revolution]]></category>

		<guid isPermaLink="false">http://www.jpstacey.info/blog/2007/12/10/working-out-chaotic-things/</guid>
		<description><![CDATA[I&#8217;m so impressed with Radiohead. I was a fan back in the days of The Bends (y&#8217;know: before they literally, if not metaphorically, sold out), and have more affection for Pablohoney than most. But in an era when it&#8217;s trivial to get whatever music you want for free off your mate who happened to buy [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m so impressed with Radiohead. I was a fan back in the days of <cite>The Bends</cite> (y&#8217;know: before they literally, if not metaphorically, sold out), and have more affection for <cite>Pablohoney</cite> than most. But in an era when it&#8217;s trivial to get whatever music you want for free off your mate who happened to buy it, they accepted that fact and gave alternative distribution a whirl. And maybe it worked and maybe it didn&#8217;t: it depends on who you&#8217;re talking to. </p>
<p>Certainly marketing genius and total orphan Lily Allen, and internationally renowned cuttinge-edge futurologist Gene Simmonds are pulling the sort of pouts you&#8217;d expect from them both, and Guy Hands has a look on him like they just cancelled Christmas. But even in these hilariously gurning faces of criticism, and amid the wafting and intermittent atmospheres of genial misunderstanding of how content works these days from the TV and radio monoliths, <a href="http://observer.guardian.co.uk/omm/story/0,,2221299,00.html">Radiohead are keeping chipper.</a> Far more so than I&#8217;ve ever seen them before, in fact. And when everyone&#8217;s on YouTube for free, letting rip with their <a href="http://www.musicisart.ws/?p=503">Thumbs Down webcast</a>, and accepting its reappearance&#8212;syndication, if you like&#8212;all over the shop very shortly afterwards, was a refreshing change from everywhere else exercising rigid control at the loss of an audience.</p>
<p>But for those of you (like me) who were thinking of taking part in Radiohead&#8217;s distribution revolution, yet weren&#8217;t keeping an eye on the time:</p>
<ul>
<li>The download-only area of &#8220;In Rainbows&#8221; <a href="http://www.radiohead.com/deadairspace/index.php?c=303">closed this morning</a>. I just managed to get a copy of the tracks yesterday: I&#8217;m sure if you&#8217;ve missed out then you&#8217;ll all know someone who&#8217;s got a copy they can loan you, right? Loan you until the plain old CD comes out at the start of 2008, right?</li>
<li>Discboxes (40-quid monstrosities that I was secretly waiting till next year to buy) are actually already out and <em>limited stock</em>. I thought from various reportings of the event that they too weren&#8217;t going to be on sale till the new year. <a href="http://www.waste.uk.com/Store/waste-radiohead-dii-11-10023-discbox+audio.html">Get yours while it&#8217;s hot</a>.</li>
</ul>
<p>If there&#8217;s demand I bet there&#8217;ll be more discboxes, but frankly if Radiohead don&#8217;t stamp &#8220;SECOND IMPRESSION&#8221; over the next lot then <a href="http://biz.yahoo.com/ap/071002/apple_iphone_lawsuit.html">I might sue</a>. Actually, if my discbox doesn&#8217;t have &#8220;A TOTAL W.A.S.T.E. OF CARBON&#8221; scrawled over it then I&#8217;ll be terribly disappointed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jpstacey.info/blog/2007/12/10/working-out-chaotic-things/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Distributed FM radio from a single digital signal</title>
		<link>http://www.jpstacey.info/blog/2007/11/25/distributed-fm-radio-from-a-single-digital-signal/</link>
		<comments>http://www.jpstacey.info/blog/2007/11/25/distributed-fm-radio-from-a-single-digital-signal/#comments</comments>
		<pubDate>Sun, 25 Nov 2007 14:57:48 +0000</pubDate>
		<dc:creator>jps</dc:creator>
		
		<category><![CDATA[configuration]]></category>

		<category><![CDATA[formats]]></category>

		<category><![CDATA[futurology]]></category>

		<category><![CDATA[hardware]]></category>

		<category><![CDATA[am]]></category>

		<category><![CDATA[analogue]]></category>

		<category><![CDATA[convert]]></category>

		<category><![CDATA[converter]]></category>

		<category><![CDATA[digital]]></category>

		<category><![CDATA[fm]]></category>

		<category><![CDATA[fon]]></category>

		<category><![CDATA[radio]]></category>

		<category><![CDATA[relay]]></category>

		<category><![CDATA[transmitter]]></category>

		<guid isPermaLink="false">http://www.jpstacey.info/blog/2007/11/25/distributed-fm-radio-from-a-single-digital-signal/</guid>
		<description><![CDATA[There&#8217;s currently no plan to switch off FM stations. In fact, many radio bosses have said oh, for heaven&#8217;s sake to the very idea. There is, astonishingly, less of a plan for radio switchover than there is desire among the general public for TV switchover. So that must be some sort of record for nothingness.
Seriously: [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s currently <a href="http://www.frequencycast.co.uk/godigital.html">no plan to switch off FM stations</a>. In fact, many radio bosses have said <a href="http://www.guardian.co.uk/media/2004/jul/08/radio">oh, for heaven&#8217;s sake</a> to the very idea. There is, astonishingly, less of a plan for radio switchover than there is desire among the general public for TV switchover. So that must be some sort of record for nothingness.</p>
<p>Seriously: who among us is just itchy and fidgety, waiting for analogue TV signals to be switched off? Who wakes up of a morning thinking, ooh, Whitehaven have to buy Freeview boxes now! with a frisson of glee? Radio switchover would be even more disastrous, of course: whereas TVs normally have a gap between themselves and an aerial into which to insert a Freeview box and convert digital to analogue, most radios are monolithic: receiver, &#8220;decoder&#8221; and audio equipment all together. That means that the average of five radios per household would be simply landfill material, useless fizzing boxes capable of picking up nothing but static. Future generations will already find a sliver in the geological strata that they can classify as &#8220;analogue to digital&#8221;; FM switchoff would add a shiny, plasticky laminate to that layer.</p>
<p>Here&#8217;s a thought, though: how about a little digital-to-analogue converter for radio? It could be the size and construction of, say, a <a href="http://www.fon.com/">Fon</a>, and configurable over USB. It would transmit FM in the style of an <a href="http://en.wikipedia.org/wiki/ITrip">iTrip</a> to fill perhaps the room it&#8217;s kept in, plus neighbouring rooms. It could transmit multiple FM stations at the same time, and even mimic the frequencies of the analogue stations (if they were ever, say, switched off without anyone wanting them to be: God forbid!)</p>
<p>But what if your converter&#8217;s chosen frequencies conflict with next door? FM transmission depends on phase coherence, so even if your two boxes were within an electronic ace of each other frequency-wise, they&#8217;d still interfere with each other and cause all sorts of beating, flangeing and other dirtily-named auditory confusion. At least when someone passes you on the motorway and their phat BMW iPod transmitter briefly swamps yours then they&#8217;re gone quickly, hopefully to come to some sort of messy grief on the next bend. But if you&#8217;re stuck near someone who permanently foxes your radio listening&#8212;and it would only take maybe three or four such converters for a conflict to be inevitable in the narrow FM band&#8212;then what do you do?</p>
<p>Answer: <em>let the converter boxes know how to talk to each other</em>. Let them negotiate their frequency spreads. Let them, moreover, report back to you over what sort of understandings you and your neighbour&#8217;s radios can come to. Let them synchronize, if possible, on stations you both want to listen to, strengthening the signal and meaning both of your houses are entirely covered by the FM cloud. Exploit, don&#8217;t squash, the wisdom of the group.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jpstacey.info/blog/2007/11/25/distributed-fm-radio-from-a-single-digital-signal/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Geeknight #1: collect the whole series!</title>
		<link>http://www.jpstacey.info/blog/2007/02/08/geeknight-1-collect-the-whole-series/</link>
		<comments>http://www.jpstacey.info/blog/2007/02/08/geeknight-1-collect-the-whole-series/#comments</comments>
		<pubDate>Thu, 08 Feb 2007 19:40:55 +0000</pubDate>
		<dc:creator>jps</dc:creator>
		
		<category><![CDATA[conferences]]></category>

		<category><![CDATA[discussion]]></category>

		<category><![CDATA[futurology]]></category>

		<category><![CDATA[hacking]]></category>

		<category><![CDATA[news]]></category>

		<category><![CDATA[geek]]></category>

		<category><![CDATA[geeknight]]></category>

		<category><![CDATA[openid]]></category>

		<category><![CDATA[oxford]]></category>

		<guid isPermaLink="false">http://www.jpstacey.info/blog/2007/02/08/geeknight-1-collect-the-whole-series/</guid>
		<description><![CDATA[Further to my earlier post, the first Oxford Geeknight was splendid. It all ran very smoothly, and though Simon Willison, Tom Dyson and I each had a small hand in setting up the tech, really all the praise has to rain down on the head of Natbat, who organised everything down to the minutest detail, [...]]]></description>
			<content:encoded><![CDATA[<p>Further to my <a href="http://www.jpstacey.info/blog/2007/01/22/oxford-geeknights/" title="Oxford Geeknights">earlier post</a>, the first <a href="http://oxford.geeknights.net">Oxford Geeknight</a> was splendid. It all ran very smoothly, and though <a href="http://simonwillison.net/">Simon Willison</a>, <a href="http://www.throwingbeans.org/">Tom Dyson</a> and I each had a small hand in setting up the tech, really all the praise has to rain down on the head of <a href="http://notes.natbat.net" title="Natalie Downe">Natbat</a>, who organised everything down to the minutest detail, but left us all with plenty of time to natter and mingle.</p>
<p>I&#8217;ve never known the first in (hopefully) a series of events go so well. Clearly from the reaction of the crowd this night fills a hole in the Oxford geek community&#8217;s calendar. I can&#8217;t comment on my own talk, of course, but there was some interesting stuff there: without doubt the two keynotes from Simon W (<a href="http://openid.net">OpenID</a>) and <a href="http://www.torchbox.com/people/olly/index.html">Olly Willans</a> (<a href="http://labs.adobe.com/technologies/photoshopcs3/">Photoshop CS3</a>), but also Tom&#8217;s <a href="http://www.throwingbeans.org/peastat.html">peastat</a>, James Wheare&#8217;s <a href="http://livebus.org/">scraping of bus timetables LiveBus.org</a>, and the Drupal and Mapnik introductions.</p>
<p>My talk went as well I could expect: I hope to put some slides and screenshots up here shortly. Unfortunately it touches on work that I&#8217;m trying to make live by the end of this week&#x2014;the new version of my <a href="http://www.quietlittlelies.com/" title="Quiet little Lies">short story</a> site&#x2014;so I&#8217;m snowed under with that right now. Gosh, it&#8217;s all go, isn&#8217;t it?</p>
<p>(Note: I work with, for, by or under several people mentioned in this post. Take it as fawning sycophancy if you like.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jpstacey.info/blog/2007/02/08/geeknight-1-collect-the-whole-series/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Universal re&#8217;locator</title>
		<link>http://www.jpstacey.info/blog/2007/01/18/universal-relocator/</link>
		<comments>http://www.jpstacey.info/blog/2007/01/18/universal-relocator/#comments</comments>
		<pubDate>Thu, 18 Jan 2007 11:48:00 +0000</pubDate>
		<dc:creator>jps</dc:creator>
		
		<category><![CDATA[futurology]]></category>

		<category><![CDATA[news]]></category>

		<category><![CDATA[standards]]></category>

		<category><![CDATA[0.91]]></category>

		<category><![CDATA[download]]></category>

		<category><![CDATA[DTD]]></category>

		<category><![CDATA[Netscape]]></category>

		<category><![CDATA[obsolete]]></category>

		<category><![CDATA[rss]]></category>

		<category><![CDATA[url]]></category>

		<category><![CDATA[version]]></category>

		<guid isPermaLink="false">http://www.jpstacey.info/blog/2007/01/18/universal-relocator/</guid>
		<description><![CDATA[What happens when nobody will take responsibility for a standard that the web relies on?
RSS, the standard millions of us use to syndicate content, and view other people&#8217;s syndicated content, was originally invented by Ramanathan Guha at Netscape, for use on its my.netscape.com portal. Soon afterwards, Netscape lost interest in the format, leaving it ownerless [...]]]></description>
			<content:encoded><![CDATA[<p>What happens when nobody will take responsibility for a standard that the web relies on?</p>
<p><a href="http://backend.userland.com/rss091">RSS</a>, the standard millions of us use to syndicate content, and view other people&#8217;s syndicated content, was originally invented by <a href="http://www.guha.com">Ramanathan Guha</a> at Netscape, for use on its my.netscape.com portal. Soon afterwards, Netscape lost interest in the format, leaving it ownerless and later on picked up by a development community spearheaded by <a href="http://www.userland.com/">UserLand Software</a>.RSS 0.91 became 1.0 and 2.0, yet despite the deprecation of the grandaddy of them all 0.91 is still around and in use, arguably because of the vast overcomplications in its immediate successor and the divisions that it caused in the community.</p>
<p>The problem with that is as follows. Every time someone views an RSS 0.91 syndication feed with certain types of syndication software, their computer attempts to get the DTD from this location on the my.netscape portal&#8212;it&#8217;s hardcoded into the way that the software understands what XML format it&#8217;s dealing with. So this URL gets plenty of hits:</p>
<blockquote class="code"><p>http://my.netscape.com/publish/formats/rss-0.9.dtd</p>
</blockquote>
<p>Which is great, until Netscape decide&#8212;legitimately, one might argue&#8212;to update the my.netscape portal and get rid of the DTD. Which they did, at the start of the year. At that point, a  good portion of the syndication lights go out across the world. And although we now have a <a href="http://blog.netscape.com/2007/01/16/to-dtd-or-not-to-dtd/">moratorium until July 2007</a>, nothing has really been solved in the long run.</p>
<p>Anyway, Netscape shouldn&#8217;t have to support the bandwidth of millions of DTD downloads for a standard they declared defunct&#8212;when did they sign the don&#8217;t-be-evil contract?&#8212;and maybe people should &#8220;just&#8221; move to a newer version of RSS, or Atom. But this whole episode is an Ozymandian warning of what is to come. We&#8217;ve reached the point where the URLs of industry (one-time) giants are simply no longer to be trusted as the location of standards.</p>
<p>One day Microsoft, and Sun, and IBM, will cease to exist, and their websites become the 22nd century equivalent of Google-adsensed search engines (Google, of course, will be around forever, more&#8217;s the pity). Sooner or later something really horrible will happen for the open communities, say <a href="http://www.purl.org/" title="Persistent URLs">Purl</a> disappearing for good, taking things like the Dublin Core XML specification with it. We need to know how to deal with the loss of their specifications and standards now: the unreliability of the URL as a locator for DTDs and schemata. Or is the only lesson we can draw from history, that we&#8217;re destined to wander from standard to standard as the specifications drop off the radar, leading the nomadic life of those standardized today, obsolete tomorrow?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jpstacey.info/blog/2007/01/18/universal-relocator/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
