<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>PlanB &#187; Uncategorized</title>
	<atom:link href="http://planb.nicecupoftea.org/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://planb.nicecupoftea.org</link>
	<description>Powered by tea</description>
	<lastBuildDate>Thu, 05 Jan 2012 22:54:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='planb.nicecupoftea.org' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>PlanB &#187; Uncategorized</title>
		<link>http://planb.nicecupoftea.org</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://planb.nicecupoftea.org/osd.xml" title="PlanB" />
	<atom:link rel='hub' href='http://planb.nicecupoftea.org/?pushpress=hub'/>
		<item>
		<title>A node.js bot in XMPP</title>
		<link>http://planb.nicecupoftea.org/2012/01/05/a-node-js-bot-in-xmpp/</link>
		<comments>http://planb.nicecupoftea.org/2012/01/05/a-node-js-bot-in-xmpp/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 22:54:28 +0000</pubDate>
		<dc:creator>libbymiller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://planb.nicecupoftea.org/?p=195</guid>
		<description><![CDATA[Yesterday Danbri and I invested a few hours in a rapid node.js prototype for NoTube. We&#8217;ll blog about it properly elsewhere, but this is just a little note about a bit of curious behaviour we found, in case anyone runs &#8230; <a href="http://planb.nicecupoftea.org/2012/01/05/a-node-js-bot-in-xmpp/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=195&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday Danbri and I invested a few hours in a rapid node.js prototype for NoTube. We&#8217;ll blog about it properly elsewhere, but this is just a little note about a bit of curious behaviour we found, in case anyone runs into the same problem.</p>
<p>Just before christmas Dan made a node.js xmpp bot that could appear in <a href="http://notube.tv/2011/10/10/n-screen-a-second-screen-application-for-small-group-exploration-of-on-demand-content/">N-Screen</a> and take commands via drag and drop (if you don&#8217;t care about this, the point is that it uses <a href="http://nodejs.org/">node.js</a> with <a href="https://github.com/astro/node-xmpp">node-xmpp</a>). Dan got it showing up in the N-Screen interface and reflecting back whatever you dropped on it. I thought it would be trivial to hook in one of the item-to-item recommenders I have working via a json http api. Basically to do http GETs in node.js you need something like this:<br />
<code><br />
var http = require('http');</p>
<p>var data_client = http.createClient(80, "nscreen.notu.be");<br />
var request = data_client.request('GET', '/iplayer_dev/api/suggest?pid='+pid',  {'host': 'nscreen.notu.be'});<br />
request.end();</p>
<p>request.on('response', function (response) {<br />
  response.setEncoding('utf8');<br />
  var myStr = "";<br />
  response.on('data', function (chunk) {<br />
    console.log('BODY: ' + chunk);<br />
    myStr += chunk;<br />
  });<br />
  response.on('end', function (response) {<br />
    console.log(myStr);<br />
  }<br />
});<br />
</code></p>
<p>Then you can parse myStr e.g.<br />
<code><br />
var j = JSON.parse(myStr);<br />
</code></p>
<p>What we wanted to do was send that myStr as a string content of an xmpp message like this:<br />
<code><br />
var cl = new xmpp.Client({<br />
  jid: jid + '/bot',<br />
  password: password<br />
});</p>
<p>cl.on('stanza', function(stanza) {<br />
  var msg = { to: stanza.attrs.from , type: 'chat' };</p>
<p> ... get myStr of recommendations based on that message</p>
<p>  cl.send(new xmpp.Element('message', msg ).c('body').t(myStr) );<br />
});<br />
</code></p>
<p>It really should have been simple, but in practice the myStr existed when printed out to console but was never sent. At first we thought it was something to do with Buffers &#8211; if you don&#8217;t do response.setEncoding(&#8230;) you get Buffers back and perhaps some stringification of those wasn&#8217;t working, but no. To add to the confusion we could create Json objects from the string but they still would not send, even if copied to new strings. </p>
<p>In retrospect it&#8217;s obvious it was the XMPP that was the issue, but it took line by line trial and error sending of some sample input before I found it: &amp; characters in the input were causing silent failure when the message was sent &#8211; presumably due to an XML parsing problem that for some reason didn&#8217;t show up as an error (I know almost nothing about node.js so there could have been some user error there too). Escaping these &amp; didn&#8217;t seem to work, so for now we&#8217;ve just removed them and it all works fine. We need to raise a bug report, but thought I&#8217;d blog for now in case it helps anyone else. The <a href="https://github.com/notube/n-screen/blob/master/utils/bots/notube-bot.js">code is here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/libbymiller.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/libbymiller.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/libbymiller.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/libbymiller.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/libbymiller.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/libbymiller.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/libbymiller.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/libbymiller.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/libbymiller.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/libbymiller.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/libbymiller.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/libbymiller.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/libbymiller.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/libbymiller.wordpress.com/195/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=195&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://planb.nicecupoftea.org/2012/01/05/a-node-js-bot-in-xmpp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/00159ba0642f103407f7a3f4d44da772?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">libbymiller</media:title>
		</media:content>
	</item>
		<item>
		<title>Archiving a Mediawiki Installation</title>
		<link>http://planb.nicecupoftea.org/2011/12/19/archiving-a-mediawiki-installation/</link>
		<comments>http://planb.nicecupoftea.org/2011/12/19/archiving-a-mediawiki-installation/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 15:24:36 +0000</pubDate>
		<dc:creator>libbymiller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://planb.nicecupoftea.org/?p=191</guid>
		<description><![CDATA[NoTube uses a Mediawiki installation kindly provided by sti2.org for its internal documentation. As the project draws to a close (we finish officially on January 31st 2012, with our final review in late March) we wanted to make sure we &#8230; <a href="http://planb.nicecupoftea.org/2011/12/19/archiving-a-mediawiki-installation/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=191&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>NoTube uses a <a href="http://www.mediawiki.org/wiki/MediaWiki">Mediawiki</a> installation kindly provided by <a href="http://www.sti2.org/">sti2.org</a> for its internal documentation. As the project draws to a close (we finish officially on January 31st 2012, with our final review in late March) we wanted to make sure we had a copy of everything we had done over the last few years. Much of this is and will remain private to the partners but there are some interesting ideas and usecases we wrote down early on that we don&#8217;t want to lose track of. I hadn&#8217;t realised that by default <a href="http://www.mediawiki.org/wiki/API:Main_page">Mediawiki has an API</a>, but once I did, it was pretty simple to download all the pages. I&#8217;ve put the Ruby script <a href="https://github.com/notube/Code_snippets/tree/master/download_mediawiki">on github</a> in case it&#8217;s useful to anyone else. Basically the only fiddly bit is the cookies. You do, of course, need a username and password for the wiki you want to download, but thereafter, there&#8217;s an API call you can call recursively to get a list of all pages, and then download them individually. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/libbymiller.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/libbymiller.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/libbymiller.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/libbymiller.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/libbymiller.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/libbymiller.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/libbymiller.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/libbymiller.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/libbymiller.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/libbymiller.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/libbymiller.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/libbymiller.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/libbymiller.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/libbymiller.wordpress.com/191/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=191&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://planb.nicecupoftea.org/2011/12/19/archiving-a-mediawiki-installation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/00159ba0642f103407f7a3f4d44da772?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">libbymiller</media:title>
		</media:content>
	</item>
		<item>
		<title>Some FOAF stats</title>
		<link>http://planb.nicecupoftea.org/2009/09/08/163/</link>
		<comments>http://planb.nicecupoftea.org/2009/09/08/163/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 13:06:39 +0000</pubDate>
		<dc:creator>libbymiller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://planb.nicecupoftea.org/?p=163</guid>
		<description><![CDATA[Some FOAF stats from Sindice for something I had to write last week. <a href="http://planb.nicecupoftea.org/2009/09/08/163/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=163&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Some <a href="http://xmlns.com/foaf/spec/">FOAF</a> stats from <a href="http://sindice.com/">Sindice</a> for something I had to write last week.</p>
<h3>All classes</h3>
<p>
“Agent”,  3.84 million<br />
“Document”,  6.15 million<br />
“Group”,  5.78 thousand<br />
“Image”,  711.23 thousand<br />
“OnlineAccount”,  15.47 thousand<br />
“OnlineChatAccount”, found 324<br />
“OnlineEcommerceAccount”, found 242<br />
“OnlineGamingAccount”, found 240<br />
“Organization”,  10.05 thousand<br />
“Person”,  2.64 million<br />
“PersonalProfileDocument”,  11.7 thousand<br />
“Project”, found 726
</p>
<h3>All properties</h3>
<p>
“accountName”,  8.02 thousand<br />
“accountServiceHomepage”,  7.24 thousand<br />
“aimChatID”,  9.54 thousand<br />
“based_near”,  7.35 thousand<br />
“birthday”,  2.48 thousand<br />
“currentProject”, found 648<br />
“depiction”,  696.31 thousand<br />
“depicts”,  617.16 thousand<br />
“dnaChecksum”, found 65<br />
“family_name”,  2.46 thousand<br />
“firstName”,  4.2 thousand<br />
“fundedBy”, found 237<br />
“geekcode”, found 107<br />
“gender”,  15.8 thousand<br />
“givenname”,  24.17 thousand<br />
“holdsAccount”,  9.88 thousand<br />
“homepage”,  1.22 million<br />
“icqChatID”,  22.8 thousand<br />
“img”,  684.38 thousand<br />
“interest”,  64.77 thousand<br />
“isPrimaryTopicOf”,  1.54 million<br />
“jabberID”,  2.98 thousand<br />
“knows”,  1.08 million<br />
“logo”, found 374<br />
“made”,  1.97 million<br />
“maker”,  1.97 million<br />
“mbox”,  3.7 thousand<br />
“mbox_sha1sum”,  43.9 thousand<br />
“member”,  5.53 thousand<br />
“membershipClass”, found 58<br />
“msnChatID”,  7.68 thousand<br />
“myersBriggs”, found 154<br />
“name”,  1.77 million<br />
“nick”,  96.7 thousand<br />
“openid”,  80.24 thousand<br />
“page”,  5.84 million<br />
“pastProject”, found 179<br />
“phone”, found 999<br />
“plan”, found 139<br />
“primaryTopic”,  278.11 thousand<br />
“publications”, found 202<br />
“schoolHomepage”, found 644<br />
“sha1”, found 60<br />
“surname”,  25.32 thousand<br />
“theme”, found 282<br />
“thumbnail”,  2.51 thousand<br />
“tipjar”, found 73<br />
“title”,  2.02 thousand<br />
“topic”,  3.13 million<br />
“topic_interest”, found 90<br />
“weblog”,  300.06 thousand<br />
“workInfoHomepage”, found 505<br />
“workplaceHomepage”,  1.68 thousand<br />
“yahooChatID”,  6.72 thousand</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/libbymiller.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/libbymiller.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/libbymiller.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/libbymiller.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/libbymiller.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/libbymiller.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/libbymiller.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/libbymiller.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/libbymiller.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/libbymiller.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/libbymiller.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/libbymiller.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/libbymiller.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/libbymiller.wordpress.com/163/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=163&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://planb.nicecupoftea.org/2009/09/08/163/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/00159ba0642f103407f7a3f4d44da772?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">libbymiller</media:title>
		</media:content>
	</item>
		<item>
		<title>CharBotGreen for Identica</title>
		<link>http://planb.nicecupoftea.org/2009/06/03/charbotgreen-for-identica/</link>
		<comments>http://planb.nicecupoftea.org/2009/06/03/charbotgreen-for-identica/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 21:44:09 +0000</pubDate>
		<dc:creator>libbymiller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://planb.nicecupoftea.org/?p=131</guid>
		<description><![CDATA[CharBotGreen is stilll suspended on Twitter but fortunately she&#8217;s still announcing away on Identi.ca. It&#8217;s trivial to move a bot from one to the other. In the source for CharBotGreen there&#8217;s a line u = "http://twitter.com/statuses/update.json" Using the Twitter-compatible Identica &#8230; <a href="http://planb.nicecupoftea.org/2009/06/03/charbotgreen-for-identica/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=131&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://planb.nicecupoftea.org/2009/02/03/charbotgreen-a-twitter-radio-4-announcement-bot/">CharBotGreen</a> is stilll <a href="http://planb.nicecupoftea.org/2009/05/30/web-unperson/">suspended on Twitter</a> but fortunately she&#8217;s still announcing away <a href="http://identi.ca/charbotgreen">on Identi.ca</a>.</p>
<p>It&#8217;s trivial to move a bot from one to the other. In the <a href="http://svn.foaf-project.org/foaftown/2009/charbotgreen/">source for CharBotGreen</a> there&#8217;s a line<br />
<code><br />
       u = "http://twitter.com/statuses/update.json"<br />
</code></p>
<p>Using the <a href="http://laconi.ca/trac/wiki/TwitterCompatibleAPI">Twitter-compatible Identica API</a> you I can just replace that line with:<br />
<code><br />
       u = "http://identi.ca/api/statuses/update.json"<br />
</code></p>
<p>The only thing to watch for is that <a href="http://laconi.ca/trac/ticket/41">Identica stores names as lowercase</a> and the authorisation fails if you don&#8217;t send it in lowercase.</p>
<p>Doesn&#8217;t work in Identi.ca:<br />
<code><br />
      req.basic_auth 'CharBotGreen', 'sekret'<br />
</code></p>
<p>works in Identi.ca:<br />
<code><br />
       req.basic_auth 'charbotgreen', 'sekret'<br />
</code></p>
<p>Thats it though &#8211; easy!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/libbymiller.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/libbymiller.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/libbymiller.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/libbymiller.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/libbymiller.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/libbymiller.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/libbymiller.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/libbymiller.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/libbymiller.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/libbymiller.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/libbymiller.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/libbymiller.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/libbymiller.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/libbymiller.wordpress.com/131/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=131&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://planb.nicecupoftea.org/2009/06/03/charbotgreen-for-identica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/00159ba0642f103407f7a3f4d44da772?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">libbymiller</media:title>
		</media:content>
	</item>
		<item>
		<title>Web Unperson</title>
		<link>http://planb.nicecupoftea.org/2009/05/30/web-unperson/</link>
		<comments>http://planb.nicecupoftea.org/2009/05/30/web-unperson/#comments</comments>
		<pubDate>Sat, 30 May 2009 12:07:19 +0000</pubDate>
		<dc:creator>libbymiller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://libbymiller.wordpress.com/?p=112</guid>
		<description><![CDATA[A couple of times this week people pinged me to say their browser was reporting my site as a phisher like this. I thought little of it since we&#8217;d been hacked before on Dreamhost and WordPress and asssumed we had &#8230; <a href="http://planb.nicecupoftea.org/2009/05/30/web-unperson/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=112&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A couple of times this week people pinged me to say their browser was reporting my site as a phisher <a href="http://www.flickr.com/photos/psd/3570130646/">like this</a>. I thought little of it since we&#8217;d been hacked before on Dreamhost and WordPress and asssumed we had got on a blacklist somewhere. I rechecked the site, couldn&#8217;t find anything, and reported it as an error.</p>
<p>Last night though I found that my twitter bot, <a href="http://twitter.com/charbotgreen">CharBotGreen</a> had been suspended as a phisher, and tonight I find I&#8217;ve been suspended from twitter too. This is a bit of a blow, and the cause in both cases seems to be that I linked to my blog.</p>
<p>Using Google webmaster tools I discovered that several pages had links to viagra etc pages on them, invisible except in the source, with html inserted through the header php. Firefox and Safari made it difficult to find this out by inserting buggy &#8216;this is a phisher&#8217; text (with broken links) over the source as well as the page itself.</p>
<p>I&#8217;ve now moved off Dreamhost completely &#8211; though it might have been simply that I had not updated WordPress enough. I&#8217;m on wordpress.com now, so I hope that&#8217;ll remove this riskiness.</p>
<p>The whole episode has made me rather depressed. Google has basically killed my online identity. I&#8217;m on various lists asking to be taken off, but there&#8217;s been no movement since last night, and I had no warning. It seems that there&#8217;s a blacklist being used in both cases, not competely sure what it is yet.</p>
<p>Anyway, if it happens to you, take it seriously and deal with it as soon as you can.</p>
<p><strong>Update</strong>: I&#8217;m actually <a href="http://www.google.co.uk/search?hl=en&amp;q=planb.nicecupoftea.org&amp;btnG=Google+Search&amp;meta=&amp;aq=f&amp;oq=">not on google&#8217;s suspended list any more</a>. Hurrah! But still no Twitter. Guess it&#8217;s time to move to <a href="http://identi.ca/libbymiller">Identica</a> with that and the madness of <a href="http://search.twitter.com/search?q=%23fixreplies">#fixreplies</a>. Meh!</p>
<p><strong>2nd Update</strong>: I got my Twitter account back this morning (2nd June, 3 days later). CharBotGreen is still suspended.</p>
<p>Useful links:</p>
<p><a href="http://www.google.com/support/webmasters/bin/answer.py?answer=45432">Google &#8211; My Site&#8217;s been hacked</a><br />
<a href="https://www.google.com/webmasters/tools/">Google webmaster tools</a><br />
<a href="http://www.google.co.uk/support/a/bin/answer.py?answer=33915">Google apps admin page: Google MX Records</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/libbymiller.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/libbymiller.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/libbymiller.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/libbymiller.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/libbymiller.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/libbymiller.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/libbymiller.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/libbymiller.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/libbymiller.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/libbymiller.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/libbymiller.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/libbymiller.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/libbymiller.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/libbymiller.wordpress.com/112/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=112&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://planb.nicecupoftea.org/2009/05/30/web-unperson/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/00159ba0642f103407f7a3f4d44da772?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">libbymiller</media:title>
		</media:content>
	</item>
		<item>
		<title>iPhone working with PoGo</title>
		<link>http://planb.nicecupoftea.org/2009/05/26/iphone-working-with-pogo/</link>
		<comments>http://planb.nicecupoftea.org/2009/05/26/iphone-working-with-pogo/#comments</comments>
		<pubDate>Tue, 26 May 2009 22:40:18 +0000</pubDate>
		<dc:creator>libbymiller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[pogo]]></category>
		<category><![CDATA[printing]]></category>

		<guid isPermaLink="false">http://planb.nicecupoftea.org/2009/05/26/iphone-working-with-pogo/</guid>
		<description><![CDATA[I&#8217;m so chuffed about this - I bought a Polaroid PoGo inkless bluetooth mini sticker printer having been entranced by psd&#8217;s one, but knowing it didn&#8217;t work with the iPhone and that I&#8217;d have to get my laptop out to &#8230; <a href="http://planb.nicecupoftea.org/2009/05/26/iphone-working-with-pogo/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=12&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m so chuffed about this -</p>
<p>I <a href="http://www.flickr.com/photos/nicecupoftea/3507441756/">bought</a> a <a href="http://www.amazon.co.uk/Polaroid-Digital-Photo-Printer-Technology/dp/B001APNVTQ/ref=sr_1_1?ie=UTF8&amp;s=electronics&amp;qid=1243377032&amp;sr=1-1">Polaroid PoGo inkless bluetooth mini sticker printer</a> having been entranced by <a href="http://www.flickr.com/photos/nicecupoftea/3336820920/">psd&#8217;s one</a>, but knowing it didn&#8217;t work with the iPhone and that I&#8217;d have to get my laptop out to print anything. The PoGo is a lovely toy but I was getting a bit irritated by this limitation. The problem was twofold:</p>
<ul>
<li> <a href="http://gizmodo.com/gadgets/iphone/iphone-bluetooth-not-much-but-whats-there-is-charming-274068.php">iPhone bluetooth is crippled</a> &#8211; you can only use bluetooth headphones, and not use it for file transfer. Annoying.</li>
<li> iPhone stores pictures as (<a href="http://www.newsfirerss.com/blog/?p=176">peculiar</a>) pngs and PoGo only accepts jpegs (which I found by trial and error &#8211; I can&#8217;t find any PoGo docs on that at all)</li>
</ul>
<p>The first issue was easily solved &#8211; I have a jailbroken 1st gen phone and I just installed <a href="http://www.medevil.net/">iBluetooth</a> with <a href="http://en.wikipedia.org/wiki/Cydia_(iPhone_OS)">Cydia</a>, which is a app installer based on .deb packages.</p>
<p>The second was more tricky. I looked at ImageMagick for iphone (it&#8217;s on Cydia) but didn&#8217;t get anywhere. I think I needed to install gcc which was a step too far. Instead I <a href="http://www.hackthatphone.com/2x/open_ssh.html">put ssh on it</a> (pretty cool in itself), found <a href="http://www.modmyi.com/forums/general-iphone-chat/317761-where-photos-located-iphone.html">some hints on the web</a>, and found that iPhone actually creates jpgs as well as pngs (in /private/var/mobile/media/DCIM/100APPLE &#8211; the pngs are in  /private/var/mobile/media/DCIM/999APPLE). Weird! Anyway, iBluetooth allows you to browse the filesystem, and send files you find there, and that worked.</p>
<p>So all you really need is iBluetooth as it turns out. Hope this is useful to someone.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/libbymiller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/libbymiller.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/libbymiller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/libbymiller.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/libbymiller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/libbymiller.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/libbymiller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/libbymiller.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/libbymiller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/libbymiller.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/libbymiller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/libbymiller.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/libbymiller.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/libbymiller.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=12&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://planb.nicecupoftea.org/2009/05/26/iphone-working-with-pogo/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/00159ba0642f103407f7a3f4d44da772?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">libbymiller</media:title>
		</media:content>
	</item>
		<item>
		<title>CharBotGreen &#8211; a Twitter Radio 4 announcement bot</title>
		<link>http://planb.nicecupoftea.org/2009/02/03/charbotgreen-a-twitter-radio-4-announcement-bot/</link>
		<comments>http://planb.nicecupoftea.org/2009/02/03/charbotgreen-a-twitter-radio-4-announcement-bot/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 10:41:18 +0000</pubDate>
		<dc:creator>libbymiller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[twitter bot bbc api]]></category>

		<guid isPermaLink="false">http://planb.nicecupoftea.org/2009/02/03/charbotgreen-a-twitter-radio-4-announcement-bot/</guid>
		<description><![CDATA[Update &#8211; it&#8217;s now charbotgreen2, as twitter never unsuspended charbotgreen. I wanted to try out the Twitter API and since I was finding myself repeatedly going through the tedium of flipping browser tabs to see what was on Radio 4, &#8230; <a href="http://planb.nicecupoftea.org/2009/02/03/charbotgreen-a-twitter-radio-4-announcement-bot/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=10&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Update &#8211; it&#8217;s now <a href="http://twitter.com/charbotgreen2">charbotgreen2</a>, as twitter <a href="http://planb.nicecupoftea.org/2009/05/30/web-unperson/">never unsuspended charbotgreen</a>.<br />
</strong></p>
<p>I wanted to try out the <a href="http://apiwiki.twitter.com/REST+API+Documentation">Twitter API</a> and since I was finding myself repeatedly going through the tedium of flipping browser tabs to see what was on Radio 4, I figured I&#8217;d make a bot that tweeted what was on Radio 4 instead. This had the added advantage that I could use some half-written code I&#8217;d started for a more complex event bot that was turning out to be too hard. I neglected to do a twitter search, however, which would have shown me that there were at least <a href="http://twitter.com/bbcradio4live">two</a> <a href="http://twitter.com/on_radio4">similar</a> services already working. Ah well. Here&#8217;s <a href="http://twitter.com/CharBotGreen">CharBotGreen</a></p>
<p>Thanks to: Damian for the name and technology suggestions, <a href="http://twitter.com/psd">@psd</a> for <a href="http://www.flickr.com/photos/psd/3232836152/">the picture</a>, and <a href="http://en.wikipedia.org/wiki/Charlotte_Green">Charlotte Green</a> for being a great Radio 4 announcer (as are they all!)</p>
<p>Be warned &#8211; do not use <a href="http://svn.foaf-project.org/foaftown/2009/charbotgreen/">my Ruby code</a> as an example of good practice, as it most certainly is not.</p>
<h3>What it does</h3>
<p><strong>Once a day</strong> &#8211; pulls down the <a href="http://www.bbc.co.uk/radio4/programmes/schedules/fm/today.json">Radio 4 programmes json</a> (<a href="http://www.bbc.co.uk/programmes/developers#alternateserialisations">details</a> &#8211; what an excellent service that is &#8211; beeb++) &#8211; and stores it in an <a href="http://www.h2database.com/">H2 database</a> like this, having wiped the database over night (sometime between 1am and 5.20am, when it&#8217;s on the world service and <a href="http://www.bbc.co.uk/radio4/schedule/">no detailed schedule</a> is available anyway):</p>
<p><code><br />
CREATE TABLE if not exists beeb(DT TIMESTAMP, PID VARCHAR(8), D DATE, T TIME, NAME VARCHAR(255));<br />
</code></p>
<p>So basically I start the Radio 4 day with an SQL representation of today&#8217;s schedule page. I started with PID as UNIQUE but then realised that the same PID could be broadcast twice a day.</p>
<p><strong>Every 5 minutes</strong> &#8211; checks in the database for anything starting in the next 5 minutes and sends a tweet, either &#8216;starting now&#8217; or &#8216;starting in a few minutes&#8217; depending on the exactness of the match<br />
<code><br />
SELECT * FROM beeb WHERE D = '#{d}' AND T &gt;= '#{t}' AND T &lt; '#{t1}';<br />
</code><br />
where t is the current time and t1 is the time in 5 minutes (d is today&#8217;s date).</p>
<h3>Technology</h3>
<p>I use ruby and H2 over JDBC. You can see the <a href="http://svn.foaf-project.org/foaftown/2009/charbotgreen/todaysTwits.rb">every 5 minutes</a> and <a href="http://svn.foaf-project.org/foaftown/2009/charbotgreen/beeb.rb">daily</a> scripts and the <a href="http://svn.foaf-project.org/foaftown/2009/charbotgreen/readme.txt">readme.txt</a>. Why these technologies? Well, I wanted to learn Ruby and using Jruby means that you can use many ruby libraries but you can also access Java classes which is handy for using the H2 database. Why H2? well it&#8217;s a self contained, in-memory, SQL-compatible database written in pure Java, so I could keep everything in one directory. For something this lightweight there&#8217;s almost no point in using SQL but I wanted it for something a little more complex as well so it made sense (and makes it nice and easy). I use <a href="http://json.rubyforge.org/">Json pure</a> for the json parsing (it has to be pure to use it with Jruby). If you want to use Ruby rather than Jruby the SQL bit will take some fiddling with; the rest should be ok as is.</p>
<h3>Hashtags</h3>
<p>I jumped into a little chat on twitter about what hashtags to use and settled on #pid: and then the PID (such as <a href="http://www.bbc.co.uk/programmes/b00h4r7x">b00h4r7x</a>). I&#8217;m still <a href="http://twitter.com/jonathantweed/statuses/1146641221">not sure about this</a>; I put the URL in as well.</p>
<h3>It&#8217;s all super-simple</h3>
<p>But good fun to do. Psd suggested that some <a href="http://en.wikipedia.org/wiki/Charlotte_Green">Charlotte Green-style amusing incidents</a> would be fun to put in there, though I&#8217;ve not worked out how to do that. Another improvement would be if it gave you a little more notice about what&#8217;s coming up as <a href="http://twitter.com/bbcradio4live">@bbcradio4live</a> does.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/libbymiller.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/libbymiller.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/libbymiller.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/libbymiller.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/libbymiller.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/libbymiller.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/libbymiller.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/libbymiller.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/libbymiller.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/libbymiller.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/libbymiller.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/libbymiller.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/libbymiller.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/libbymiller.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=10&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://planb.nicecupoftea.org/2009/02/03/charbotgreen-a-twitter-radio-4-announcement-bot/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/00159ba0642f103407f7a3f4d44da772?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">libbymiller</media:title>
		</media:content>
	</item>
		<item>
		<title>Expand tinyurls using ruby</title>
		<link>http://planb.nicecupoftea.org/2009/02/02/expand-tinyurls-using-ruby/</link>
		<comments>http://planb.nicecupoftea.org/2009/02/02/expand-tinyurls-using-ruby/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 11:23:10 +0000</pubDate>
		<dc:creator>libbymiller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[code ruby]]></category>

		<guid isPermaLink="false">http://planb.nicecupoftea.org/2009/02/02/expand-tinyurls-using-ruby/</guid>
		<description><![CDATA[Just a tiny thing but handy and I couldn&#8217;t find it anywhere else (I&#8217;m new to Ruby and I&#8217;m coding by google so don&#8217;t expect great style here, but this seems to work): require 'net/http' require 'uri' url = URI.parse &#8230; <a href="http://planb.nicecupoftea.org/2009/02/02/expand-tinyurls-using-ruby/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=9&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Just a tiny thing but handy and I couldn&#8217;t find it anywhere else (I&#8217;m new to Ruby and I&#8217;m coding by google so don&#8217;t expect great style here, but this seems to work):<br />
<code><br />
require 'net/http'<br />
require 'uri'<br />
</code><br />
<code>url = URI.parse "http://bit.ly/1Zw502"</code><br />
<code>if url.path.size &gt; 0</code><br />
<code>  # catches case where you get an url like </code><br />
<code>   # http://planetrdf.com with no slash</code><br />
<code>  # this catches this but doesn't look it up</code><br />
<code>  req = Net::HTTP::Get.new(url.path)</code><br />
<code>  begin</code><br />
<code>   res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) }</code><br />
<code>  case res</code><br />
<code>   when Net::HTTPRedirection</code><br />
<code>    uu = res['Location']</code><br />
<code>    puts uu</code><br />
<code>   end</code><br />
<code> end</code><br />
<code>end</code></p>
<p>uu is the expanded url. Is there a better way than this?  Is it me or is Ruby documentation a bit thin on the ground? (Thanks to Damian for pointing out to me how tinyurls work &#8211; I&#8217;d never bothered to look before!)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/libbymiller.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/libbymiller.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/libbymiller.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/libbymiller.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/libbymiller.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/libbymiller.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/libbymiller.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/libbymiller.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/libbymiller.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/libbymiller.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/libbymiller.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/libbymiller.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/libbymiller.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/libbymiller.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=9&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://planb.nicecupoftea.org/2009/02/02/expand-tinyurls-using-ruby/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/00159ba0642f103407f7a3f4d44da772?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">libbymiller</media:title>
		</media:content>
	</item>
		<item>
		<title>What I just watched on Joost</title>
		<link>http://planb.nicecupoftea.org/2008/10/24/what-i-just-watched-on-joost/</link>
		<comments>http://planb.nicecupoftea.org/2008/10/24/what-i-just-watched-on-joost/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 09:34:20 +0000</pubDate>
		<dc:creator>libbymiller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://planb.nicecupoftea.org/2008/10/24/what-i-just-watched-on-joost/</guid>
		<description><![CDATA[For fun, I just added a little to this blog in sidebar.php. It shows what I just last watched on Joost, updating itself every 5 minutes. &#60;script&#62; updateJson(); function updateJson() { var url="http://www.joost.com/api/events/lastwatched/libby?json_function=lastW" var script = document.createElement("script"); script.defer = "true"; &#8230; <a href="http://planb.nicecupoftea.org/2008/10/24/what-i-just-watched-on-joost/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=4&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For fun, I just added a little to this blog in sidebar.php. It shows what I just last watched on Joost, updating itself every 5 minutes.<br />
<code><br />
&lt;script&gt;<br />
updateJson();<br />
function updateJson() {<br />
var url="http://www.joost.com/api/events/lastwatched/libby?json_function=lastW"<br />
var script = document.createElement("script");<br />
script.defer = "true";<br />
script.type = "text/javascript";<br />
script.src = url;<br />
document.getElementsByTagName('head')[0].appendChild(script);<br />
};</code></p>
<p><code><br />
setInterval ( "updateJson()", 60000 );</code><br />
<code><br />
function lastW(obj){<br />
var el=document.getElementById("lastW");<br />
var id=obj.events[0].publicId;<br />
var title=obj.events[0].title;<br />
var thumb=obj.events[0].thumbnail;<br />
if(el){<br />
el.innerHTML="Libby just watched: &lt;a href='http://www.joost.com/"+id+"'&gt;"+title+"&lt;/a&gt; on &lt;a href='http://www.joost.com/'&gt;Joost&lt;/a&gt;";<br />
}<br />
};<br />
&lt;/script&gt;<br />
</code><br />
<code><br />
&lt;p&gt;<br />
&lt;span id="lastW"&gt;&lt;/span&gt;<br />
&lt;/p&gt;<br />
</code><br />
I&#8217;m biased of course but I think this is pretty cool. Numerous (alpha, check the heath warning) APIs are at <a href="http://www.joost.com/doc/api">http://www.joost.com/doc/api</a>. <a href="http://www.beaufour.dk/blog/2008/10/joost-apis-and-1.html">Allan</a> and <a href="http://twitter.com/Toni_H/statuses/967166763">Toni_H</a> have been playing around too.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/libbymiller.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/libbymiller.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/libbymiller.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/libbymiller.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/libbymiller.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/libbymiller.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/libbymiller.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/libbymiller.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/libbymiller.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/libbymiller.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/libbymiller.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/libbymiller.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/libbymiller.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/libbymiller.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=4&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://planb.nicecupoftea.org/2008/10/24/what-i-just-watched-on-joost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/00159ba0642f103407f7a3f4d44da772?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">libbymiller</media:title>
		</media:content>
	</item>
		<item>
		<title>this post sponsored by danbri.org wordpress installation services</title>
		<link>http://planb.nicecupoftea.org/2008/01/13/this-post-sponsored-by-danbriorg-wordpress-installation-services/</link>
		<comments>http://planb.nicecupoftea.org/2008/01/13/this-post-sponsored-by-danbriorg-wordpress-installation-services/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 20:42:52 +0000</pubDate>
		<dc:creator>libbymiller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://planb.nicecupoftea.org/?p=3</guid>
		<description><![CDATA[Testing a wordpress blog for libby. 1234 is this thing on. Move along, nothing to see here. Yet. &#8211;danbri<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=16&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Testing a wordpress blog for libby. 1234 is this thing on.</p>
<p>Move along, nothing to see here. Yet.</p>
<p>&#8211;danbri</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/libbymiller.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/libbymiller.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/libbymiller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/libbymiller.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/libbymiller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/libbymiller.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/libbymiller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/libbymiller.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/libbymiller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/libbymiller.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/libbymiller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/libbymiller.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/libbymiller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/libbymiller.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/libbymiller.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/libbymiller.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=planb.nicecupoftea.org&amp;blog=7954761&amp;post=16&amp;subd=libbymiller&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://planb.nicecupoftea.org/2008/01/13/this-post-sponsored-by-danbriorg-wordpress-installation-services/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/00159ba0642f103407f7a3f4d44da772?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">libbymiller</media:title>
		</media:content>
	</item>
	</channel>
</rss>
