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

<channel>
	<title>Hackdiary &#187; misc</title>
	<atom:link href="http://www.hackdiary.com/category/misc/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hackdiary.com</link>
	<description></description>
	<lastBuildDate>Mon, 05 Dec 2011 17:15:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Serendipity 2.0: going fulltime on Dopplr</title>
		<link>http://www.hackdiary.com/2007/04/27/serendipity-20-going-fulltime-on-dopplr/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=serendipity-20-going-fulltime-on-dopplr</link>
		<comments>http://www.hackdiary.com/2007/04/27/serendipity-20-going-fulltime-on-dopplr/#comments</comments>
		<pubDate>Fri, 27 Apr 2007 15:29:17 +0000</pubDate>
		<dc:creator>Matt Biddulph</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://www.hackdiary.com/?p=104</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img style="padding: 10px; background-color: white;" src="http://www.dopplr.com/traveller/mattb/badge"></p>
<p>For the last couple of months I&#8217;ve been working on a new project in my spare time. <a href="http://www.dopplr.com/">Dopplr</a> is a social network for frequent travellers, designed to <a href="http://antimega.textdriven.com/antimega/2007/03/28/service-design-notes-increase-serendipity">increase the amount of serendipity in the world</a>. It lets you <a href="http://www.dopplr.com/main/about">share your travel plans with your trusted fellow travellers</a>, and uses them to find the coincidences, near-misses and surprises. Maps, mobile, timelines, feeds, calendars: you can have the information pretty much any way you want it.</p>
<p>Dopplr&#8217;s still invite only, but there&#8217;s a good chance you know someone with an account by now. We&#8217;ll be issuing new invite tokens from time to time, so keep an eye out. There are <a href="http://flickr.com/photos/mbiddulph/sets/72157600002041548">some screenshots on Flickr</a>, and alpha travellers <a href="http://www.stoweboyd.com/message/2007/03/dopplr.html">Stowe Boyd</a> and <a href="http://rooreynolds.com/2007/04/20/dopplr-more-beer/">Roo Reynolds</a> have written some illuminating reviews. I&#8217;ll be at <a href="http://2007.xtech.org/">XTech in Paris</a> in May (don&#8217;t forget, online registration closes soon) so track me down and I&#8217;ll give you a demo.</p>
<p><span id="more-104"></span><br />
I&#8217;m having a great time making something of my own and collaborating with people whose skills and opinions I trust and respect. I showed the alpha release around ETech and SXSW and got some <a href="http://radar.oreilly.com/archives/2007/03/dopplr.html">great reactions</a>. We started inviting people in to test the app, a few at a time, and their feedback has been very encouraging.</p>
<p>Because I&#8217;m having so much fun and I want Dopplr to be as good as it can possibly be, I&#8217;ve taken the decision to suspend my freelancing and work on it full time. It seems they&#8217;ll let anyone be a CTO these days.</p>
<p>If you want to follow our day-to-day progress, I&#8217;m collecting <a href="http://del.icio.us/mattb/dopplr">dopplr-related links and coverage on del.icio.us</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackdiary.com/2007/04/27/serendipity-20-going-fulltime-on-dopplr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Second Life teaser</title>
		<link>http://www.hackdiary.com/2006/11/12/a-second-life-teaser/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-second-life-teaser</link>
		<comments>http://www.hackdiary.com/2006/11/12/a-second-life-teaser/#comments</comments>
		<pubDate>Sun, 12 Nov 2006 20:41:18 +0000</pubDate>
		<dc:creator>Matt Biddulph</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://www.hackdiary.com/?p=97</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>This month my freelance work takes me to <a href="http://www.nature.com/">Nature Publishing Group</a> to work on a new scientific project in <a href="http://www.secondlife.com/">Second Life</a>. We&#8217;re not quite ready to talk about what we&#8217;re doing yet, but I&#8217;m so pleased with a bit of work in progress that I thought I&#8217;d put a teaser up here.</p>
<p><span id="more-97"></span><br />
Many people find the creation of 3D models in SL to be rather tricky. This is because there&#8217;s no built-in way to import polygon data as a mesh of 3D coordinates from an external modelling tool. Imagine if there was a factory object that could read a list of coordinates and spit out the results straight into the world, like a virtual <a href="http://www.zcorp.com/">3D printer</a>. As part of this project, I&#8217;m working on exactly that.</p>
<p><i>Update: As I suspected, I&#8217;m not the first to attempt this kind of work, although it looks like I&#8217;m only the second or the third. Although I had a good look around before starting to code, it wasn&#8217;t until I published this post that a couple of people contacted me to point out <a href="http://forums.secondlife.com/showthread.php?t=32491">this Second Life forum post</a> which provides a scripts for doing much the same thing.</i></p>
<p>To try out my new system, I went looking for entertaining test data. I have fond memories of <a href="http://www.quakeworld.net/">Quakeworld</a> &#8211; it was the first multiplayer online game that I spent a lot of time playing, and it got me through my finals. Remember this guy?</p>
<p><img src="http://www.hackdiary.com/nature/quakeplayer_orig.png" /></p>
<p>There are plenty of <a href="http://pakrat.fragland.net/">handy tools</a> out there that can unpack the Quake data files and extract the models into easy-to-parse polygons formats. So, here&#8217;s my Second Life test rendering:</p>
<p><img src="http://www.hackdiary.com/nature/quakeplayer.png" /></p>
<p>There&#8217;s plenty of work still to do, and lots more to say, but I&#8217;ll leave it there for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackdiary.com/2006/11/12/a-second-life-teaser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extended trip to San Francisco</title>
		<link>http://www.hackdiary.com/2006/08/06/extended-trip-to-san-francisco/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=extended-trip-to-san-francisco</link>
		<comments>http://www.hackdiary.com/2006/08/06/extended-trip-to-san-francisco/#comments</comments>
		<pubDate>Sun, 06 Aug 2006 14:48:12 +0000</pubDate>
		<dc:creator>Matt Biddulph</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://www.hackdiary.com/?p=94</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>The nice people at O&#8217;Reilly invited me to Foo Camp this year. On August 24th I&#8217;ll be packing up my bags and leaving Amsterdam for sunny California.</p>
<p><span id="more-94"></span><br />
After Foo Camp, I&#8217;m planning to stay in San Francisco until at least mid-October, and (having worked my arse off for the last couple of months) I&#8217;m going to be able to mostly treat it as a holiday.</p>
<p>Shockingly, I&#8217;ve never visited San Francisco before, so I&#8217;m looking out to my extended network for fun people to meet, exciting companies to visit, and places to stay in SF.</p>
<p>If anyone has a housemate who&#8217;s going to be out of town, a geek apartment they want to sublet or just a comfy couch they can lend me for a few nights, please do <a href="mailto:mb@hackdiary.com">let me know</a>. Tips on cheap hotels also very much appreciated.</p>
<p>This is going to be so much fun. Hope I see you in California.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackdiary.com/2006/08/06/extended-trip-to-san-francisco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Annotated source code for Second Life flickr screen</title>
		<link>http://www.hackdiary.com/2006/06/19/annotated-source-code-for-second-life-flickr-screen/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=annotated-source-code-for-second-life-flickr-screen</link>
		<comments>http://www.hackdiary.com/2006/06/19/annotated-source-code-for-second-life-flickr-screen/#comments</comments>
		<pubDate>Mon, 19 Jun 2006 18:17:12 +0000</pubDate>
		<dc:creator>Matt Biddulph</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://www.hackdiary.com/?p=88</guid>
		<description><![CDATA[I&#8217;ve had quite a few requests for the source code of the Flickr screen for Second Life that I wrote about a few weeks ago. Here&#8217;s the code, annotated with links to the Second Life coding wiki and a few notes. I&#8217;m only publishing the LSL code, because the serverside code isn&#8217;t very interesting and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had quite a few requests for the source code of the <a href="http://www.hackdiary.com/archives/000085.html">Flickr screen for Second Life</a> that I wrote about a few weeks ago. Here&#8217;s the code, annotated with links to the Second Life coding wiki and a few notes.</p>
<p>I&#8217;m only publishing the LSL code, because the serverside code isn&#8217;t very interesting and does pretty much exactly what it says in the previous post. If you want to run your own flickr screen, the URLs in the code below should work just as well for your objects as they do for mine. <del>If you have problems, <a href="mailto:mb@hackdiary.com">let me know</a></del>. I reserve the right to switch off the code if the traffic gets too high, but I&#8217;ll post here if I have to do that.</p>
<p><b>UPDATE</b>: Sorry, but I no longer have the server capacity to run the backend for this service. I&#8217;m told that new features in the Second Life Viewer mean that you can achieve the same thing now with <a href="http://wiki.secondlife.com/wiki/Category:Shared_Media">Shared Media</a>.</p>
<p>The code uses SL&#8217;s streaming media feature to load the jpeg into a texture. This comes with a number of restrictions: &#8216;You are allowed one movie (or &#8220;media&#8221; resource) per land parcel. The movie will be played by replacing a texture on an object with the movie. Users will only see the movie when they are standing on your land parcel. Otherwise they will see the static texture. Script functions only work for objects owned by the land owner or deeded to the group that owns the land. (Remember to set asset permissions on your script and object as well as sharing it with the group!)&#8217;. I&#8217;m hoping for much better media support than this in future Second Life versions.<span id="more-88"></span>
<pre class="codeblock">
// A place to remember the ID for the latest http request we made, so the callback doesn't process out-of-order responses
key http_id;
// Test pattern - Used as default video texture when one is missing in parcel media
key VIDEO_DEFAULT = "6e0f05ad-1809-4edc-df29-fae3d2a6c9b8";
// Set the texture to the jpeg provided by url
seturl(string url)
{
key video_texture = <a href="http://secondlife.com/badgeo/wakka.php?wakka=llList2Key">llList2Key</a>(<a href="http://secondlife.com/badgeo/wakka.php?wakka=llParcelMediaQuery">llParcelMediaQuery</a>( [PARCEL_MEDIA_COMMAND_TEXTURE]), 0);
if(video_texture == NULL_KEY)
{
video_texture = VIDEO_DEFAULT;
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llParcelMediaCommandList">llParcelMediaCommandList</a>([PARCEL_MEDIA_COMMAND_TEXTURE, VIDEO_DEFAULT]);
}
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llSetTexture">llSetTexture</a>(video_texture,ALL_SIDES);
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llParcelMediaCommandList">llParcelMediaCommandList</a>([PARCEL_MEDIA_COMMAND_URL,url]);
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llParcelMediaCommandList">llParcelMediaCommandList</a>([PARCEL_MEDIA_COMMAND_PLAY]);
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llParcelMediaCommandList">llParcelMediaCommandList</a>([PARCEL_MEDIA_COMMAND_AUTO_ALIGN,TRUE]);
}
default
{
<a href="http://secondlife.com/badgeo/wakka.php?wakka=state_entry">state_entry</a>()
{
// set a default jpeg
seturl("http://www.flickr.com/images/flickr_logo_gamma.gif.v1.2");
// start listening for nearby speech
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llListen">llListen</a>(1,"",NULL_KEY,"");
// start sensing nearby agents once a minute
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llSensorRepeat">llSensorRepeat</a>("",NULL_KEY,AGENT,10,10,60);
}
<a href="http://secondlife.com/badgeo/wakka.php?wakka=sensor">sensor</a>(integer num_detected)
{
integer i;
for (i = 0; i &lt; num_detected; i++)
{
// ping the server so we know who's around
string url = "http://www.hackdiary.com/secondlife/experiments/seen?name="+<a href="http://secondlife.com/badgeo/wakka.php?wakka=llDetectedName">llDetectedName</a>(i);
// but don't record the request ID, because we don't need
// http_response to care about this request
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llHTTPRequest">llHTTPRequest</a>(url,[],"");
}
}
<a href="http://secondlife.com/badgeo/wakka.php?wakka=listen">listen</a>(integer channel, string name, key id, string message)
{
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llSay">llSay</a>(0,"Setting the tag for "+name+" to "+message);
string url = "http://www.hackdiary.com/secondlife/experiments/set_tag?name="+name+"&amp;tag="+message;
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llHTTPRequest">llHTTPRequest</a>(url,[],"");
}
<a href="http://secondlife.com/badgeo/wakka.php?wakka=touch_start">touch_start</a>(integer total_number)
{
// ask the server for a jpeg appropriate to the agent who touched us
string url = "http://www.hackdiary.com/secondlife/experiments/sensed?name="+<a href="http://secondlife.com/badgeo/wakka.php?wakka=llDetectedName">llDetectedName</a>(0);
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llSetText">llSetText</a>("Finding a picture for "+<a href="http://secondlife.com/badgeo/wakka.php?wakka=llDetectedName">llDetectedName</a>(0),&lt;0,0,1&gt;,1);
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llParcelMediaCommandList">llParcelMediaCommandList</a>([PARCEL_MEDIA_COMMAND_STOP]);
http_id = <a href="http://secondlife.com/badgeo/wakka.php?wakka=llHTTPRequest">llHTTPRequest</a>(url,[],"");
}
<a href="http://secondlife.com/badgeo/wakka.php?wakka=http_response">http_response</a>(key request_id, integer status, list metadata, string body) {
// make sure we're processing a response we care about
if(request_id == http_id) {
// only on request success
if(status == 200) {
// data is coming back as pipe-delimited
list data = <a href="http://secondlife.com/badgeo/wakka.php?wakka=llParseString2List">llParseString2List</a>(body,["|"],[]);
// url is the first field
string url = <a href="http://secondlife.com/badgeo/wakka.php?wakka=llList2String">llList2String</a>(data,0);
if(url == "UNKNOWN") {
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llWhisper">llWhisper</a>(0,"I don't know what kind of picture to show you.
Type '/1 sometag' to tell me what tag to search for on flickr and I'll remember it.");
} else {
// name is the second field
string name = <a href="http://secondlife.com/badgeo/wakka.php?wakka=llList2String">llList2String</a>(data,1);
<a href="http://secondlife.com/badgeo/wakka.php?wakka=llSetText">llSetText</a>("Showing a picture for "+name,&lt;0,0,1&gt;,0.5);
seturl(url);
}
}
}
}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.hackdiary.com/2006/06/19/annotated-source-code-for-second-life-flickr-screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This is what happens next</title>
		<link>http://www.hackdiary.com/2005/12/08/this-is-what-happens-next/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=this-is-what-happens-next</link>
		<comments>http://www.hackdiary.com/2005/12/08/this-is-what-happens-next/#comments</comments>
		<pubDate>Thu, 08 Dec 2005 14:55:00 +0000</pubDate>
		<dc:creator>Matt Biddulph</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://www.hackdiary.com/?p=76</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>The coding&#8217;s done on version 1.0 of the BBC Programme Catalogue and I&#8217;ve handed it over to the BBC for testing and deployment. Now I&#8217;m going snowboarding. I&#8217;ll be living in <a href='http://www.morzine.com/page.asp?saison=hiver&amp;langue=uk'>Morzine</a> in the <a href="http://maps.google.com/maps?q=46.17+6.7+(Morzine)&amp;spn=0.214124,0.568165&amp;t=k&#038;iwloc=A&amp;hl=en">French Alps</a> until the end of the winter.</p>
<p><span id="more-76"></span><br />
I won&#8217;t be taking on any more commercial projects until I return to the UK at the end of the season in May 2006. As always, do <a href="mailto:mb@hackdiary.com">email me</a> before then if you have interesting things in mind. The nearest airport is Geneva; if you&#8217;re in the area, get in touch, hop on a shuttle bus and drop in for a cup of tea.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackdiary.com/2005/12/08/this-is-what-happens-next/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What happens next?</title>
		<link>http://www.hackdiary.com/2005/07/12/what-happens-next/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-happens-next</link>
		<comments>http://www.hackdiary.com/2005/07/12/what-happens-next/#comments</comments>
		<pubDate>Tue, 12 Jul 2005 12:22:00 +0000</pubDate>
		<dc:creator>Matt Biddulph</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://www.hackdiary.com/?p=69</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m very excited. At the end of September I&#8217;ll be leaving the BBC after more than four years of productive and fascinating work with digital television, radio and the internet.</p>
<p>I&#8217;ll be sad to leave the company of so many <a href="http://www.cityofsound.com">informed</a>, <a href="http://www.paulhammond.org">intelligent</a> and <a href="http://www.plasticbag.org">engaging</a> colleagues (to link just three), and more than anything I will miss my team. Paul Clifford, <a href="http://www.reprocessed.org">Matt Patterson</a> and Matthew Wood are three of the most talented individuals I&#8217;ve ever worked with.</p>
<p><span id="more-69"></span><br />
What happens next? I don&#8217;t know. I haven&#8217;t yet arranged a next step. Perhaps you have interesting work for <a href="http://www.hackdiary.com/about.html">a software designer and developer</a>, in which case you should <a href="mailto:matt@hackdiary.com">email me</a> to talk about it right away.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackdiary.com/2005/07/12/what-happens-next/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Work at the BBC (again)</title>
		<link>http://www.hackdiary.com/2004/08/23/work-at-the-bbc-again/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=work-at-the-bbc-again</link>
		<comments>http://www.hackdiary.com/2004/08/23/work-at-the-bbc-again/#comments</comments>
		<pubDate>Mon, 23 Aug 2004 19:48:24 +0000</pubDate>
		<dc:creator>Matt Biddulph</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://www.hackdiary.com/?p=61</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>There was <a href="https://jobs.bbc.co.uk/jobportal/search/vacancy.aspx?id=2439">a programmer&#8217;s job being advertised at BBC Radio and Music Interactive</a> in London, in the team where I work. It involves data munging XML, digital radio and other interesting technologies, and involves programming in Python, Perl or Java. Applications have now closed.</p>
<p><span id="more-61"></span><br />
Here are some things our department has done that have been written about in public:</p>
<ul>
<li><a href="http://www.hackdiary.com/archives/000051.html">SMS and Radio One</a></li>
<li><a href="http://reprocessed.org/blog/archives/2004/07/15/bbc_mms.html">MMS on the BBC website</a></li>
<li><a href="http://www.plasticbag.org/archives/2004/04/bbc_releases_reith_lectures_online_as_mp3s.shtml">Releasing content for downloaded in unencumbered MP3 format</a></li>
<li><a href="http://www.plasticbag.org/archives/2004/06/developing_a_url_structure_for_broadcast_radio_sites.shtml">Redesigning Radio 3&#8242;s online presence to fit the way the web works</a></li>
<li><a href="http://blackbeltjones.typepad.com/work/2002/06/its_not_the_sam.html">Making radio shows available online for streaming</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.hackdiary.com/2004/08/23/work-at-the-bbc-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Revoking a GPG key</title>
		<link>http://www.hackdiary.com/2004/01/18/revoking-a-gpg-key/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=revoking-a-gpg-key</link>
		<comments>http://www.hackdiary.com/2004/01/18/revoking-a-gpg-key/#comments</comments>
		<pubDate>Sun, 18 Jan 2004 17:05:52 +0000</pubDate>
		<dc:creator>Matt Biddulph</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://www.hackdiary.com/?p=45</guid>
		<description><![CDATA[A couple of months ago, I lost my lovely laptop in a burglary. This weekend, Edd reminded me that my GPG private key was on the machine, so I performed the necessary rituals to revoke it. I found the documentation on this a little sparse, so here are the steps I took. $ gpg --gen-revoke [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of months ago, I lost my <a href="http://www.hackdiary.com/archives/000025.html">lovely laptop</a> in a burglary. This weekend, <a href="http://usefulinc.com/edd/blog">Edd</a> reminded me that my GPG private key was on the machine, so I performed the necessary rituals to revoke it. I found the documentation on this a little sparse, so here are the steps I took.</p>
<p><span id="more-45"></span></p>
<pre class="codeblock">$ gpg --gen-revoke 6382285E</pre>
<p>6382285E is the ID for <a href="http://pgp.mit.edu:11371/pks/lookup?search=0x6382285E&amp;op=vindex">my key</a>. You&#8217;re asked if you want to provide a reason for the revocation (key comprised, superseded or no longer used) and an optional free-text description. After supplying your passphrase, an ascii-armoured key block is printed out. Paste this text into a file. In my case, it looked like this:</p>
<pre class="codeblock">-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: A revocation certificate should follow

iGwEIBECACwFAkAKbmwlHQJLZXkgd2FzIG9uIGEgbGFwdG9wIHRoYXQgd2FzIHN0
b2xlbgAKCRBQw2pwY4IoXlv4AJ0XgWhSuSwv2jpd2ifFA5IXyijnEACfXfn/qtfq
KyMdShD0odXAliKD43w=
=mRL+
-----END PGP PUBLIC KEY BLOCK-----</pre>
<p>This step could be performed when you first generate your key, and the results stashed in a safe place for later use if you lose it. In my case, I&#8217;d kept a backup copy of the original keypair, so I was able to generate a revocation after the event.</p>
<pre class="codeblock">$ gpg --import my_revocation.txt</pre>
<p>Issuing this command imports the revocation into your keyring, revoking your key.</p>
<pre class="codeblock">$ gpg --keyserver pgp.mit.edu --send-keys 6382285E</pre>
<p>This send the revoked key to the public keyserver at pgp.mit.edu. If it succeeds, you&#8217;ll get the message &#8216;<code>gpg: success sending to `pgp.mit.edu' (status=200)</code>&#8216;. If you check your key&#8217;s verbose index page on pgp.mit.edu, you&#8217;ll see <code>*** KEY REVOKED ***</code> on the first line of the details.</p>
<p>For the record, my new key has the ID <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&amp;search=0x097891DA">097891DA</a>.</p>
<p><em>Update:</em> I just found the official word on how to do this. It&#8217;s in <a href="http://www.gnupg.org/documentation/faqs.en.html#q4.17">question 4.17 of the gpg faq</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackdiary.com/2004/01/18/revoking-a-gpg-key/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>On the sudden lack of momentum</title>
		<link>http://www.hackdiary.com/2003/02/26/on-the-sudden-lack-of-momentum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=on-the-sudden-lack-of-momentum</link>
		<comments>http://www.hackdiary.com/2003/02/26/on-the-sudden-lack-of-momentum/#comments</comments>
		<pubDate>Wed, 26 Feb 2003 10:50:59 +0000</pubDate>
		<dc:creator>Matt Biddulph</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://www.hackdiary.com/?p=27</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>Just when I&#8217;d got into a regular rhythm of posting new stuff to this site at least once a week, my laptop died. For the last year or so I&#8217;ve stopped using desktop machines, partly prompted by the arrival of cheap wireless networking. A good laptop and a number of built-for-purpose servers (mp3 jukebox, network gateway and webserver, etc) have suited me very well.</p>
<p>I&#8217;ve blatted my savings and ordered a <a href="http://www.euro.dell.com/countries/uk/enu/dhs/products/model_latit_latit_x200.htm">shiny new replacement</a>, but until that arrives I won&#8217;t be able to properly finish any of the code I&#8217;ve been working on. I&#8217;m looking forward to posting a new RDF <a href="http://rdfweb.org/rweb/wiki/wiki?ScutterSpec">scutter</a> based on an updated version of the <a href="http://www.hackdiary.com/archives/000021.html">foaftool</a> code posted here a few weeks ago.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackdiary.com/2003/02/26/on-the-sudden-lack-of-momentum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

