<slideshow>

<title>the one where I witter about scribot</title>
<metadata>
	<speaker>Paul Mison</speaker>
	<email>paulm@husk.org</email>
	<organisation>Fotango Ltd</organisation>
</metadata>

<slide>
<title>what is scribot?</title>

<point transition="replace">scribot is a 'bot that scribes'</point>
<point transition="replace">scribot is 'an interesting collection of links apparently collected by a group of people in order to share among themselves'</point>
<point transition="replace">so it's both a bot and the web front end to the data the bot collects</point>

</slide>

<slide>
<title>using scribot as a bot</title>

<point>how do I add links?</point>
<point transition="replace">just go onto an IRC channel and say:</point>
<point transition="replace">'scribot: http://london.pm.org/ # a site I like'</point>
<point>this gets stored</point>
</slide>

<slide>
<title>using scribot as a website</title>

<point>scribot's old front end was on astray.com/scribot</point>
<point transition="replace">used URI::Find, and presented entries (backwards)</point>
<point transition="replace">archives were updated manually, then not at all</point>
<point transition="replace">this was BAD. Things had to change.</point>
</slide>

<slide>
<title>the solution</title>

<point>how do you archive data?</point>
<point>possibly by nick. bad idea.</point>
<point>we could just have implemented a search over the raw text file</point>
<point transition="replace">usually, though, archives are by date</point>

</slide>

<slide>
<title>so, a new problem</title>

<point>scribot merely recorded nicks and comments</point>
<point>(there's an aside here about link catching, which I can go in to)</point>
<point>later, I forced Leon to add a patch to record days</point>
<point transition="replace">what about the old data?</point>
</slide>

<slide>
<title>I'm a raisonable kind of guy</title>

<point transition="replace">I have a lot of IRC logs</point>
<point transition="replace">... about 75 MB or so, I reckon.</point>
<point transition="replace">irc logs are dated, and I'm on channel a lot</point>
<point transition="replace">... so I have the dates most things are 'scribotted' at</point>
</slide>

<slide>
<title>this is the perl bit, concentrate</title>

<point transition="replace">first, I read in the raw text</point>
<point transition="replace">keyed on the line of the entry</point>
<point transition="replace">value is a hash of time and nick</point>
<point transition="replace">then, read in the logs</point>
<point transition="replace">crossreference by lines, and add nicks and dates</point>
</slide>

<slide>
<title>the caveats</title>

<point>even my logs don't cover everything</point>
<point>about 1800 entries have no timestamp</point>
<point>another 50 or so were modified</point>
<point transition="replace">I blame muttley</point>
<point transition="replace">still, diff is a wonderful thing</point>
</slide>

<slide>
<title>giving it back</title>

<point>Leon got sent the old entries with dates</point>
<point>added these to the newer entries</point>
<point transition="replace">put them into an SQLite database</point>
<point transition="replace">and added a SOAP api</point>
</slide>

<slide>
<title>'scribot nfe'</title>

<point>finally I had the infrastructure</point>
<point>and I could build the glossy bit</point>
<point>main aims were to make the site easier to scan</point>
<point>although I also played with CSS a bit</point>
</slide>

<slide>
<title>the new site takes shape</title>

<point>there was a bit of trial and error</point>
<point transition="replace">... but the first idea kind of worked</point>
<point transition="replace">split into days (easily done with loops)</point>
<point transition="replace">uses TT so it's easy to reformat it if needs be</point>
<point transition="replace">'simple' vs 'advanced' search</point>
</slide>

<slide>
<title>and up to the present day</title>

<point level="1" transition="replace">the original idea was a dated archive</point>
<point level="1" transition="replace">finally we've added this now</point>
<point level="2" transition="replace">kind of</point>
<point level="1" transition="replace">still the problem of the undated stuff</point>
<point level="1" transition="replace">you can find it with search, though</point>
</slide>

<slide>
<title>why did scribot work?</title>

<point transition="replace">it's dead easy to use</point>
<point transition="replace">it's grown when people wanted it to</point>
<point transition="replace">underpromise, overdeliver</point>
<point transition="replace">(managing to screw that up)</point>

</slide>

<slide>
<title>thank you</title>
<point transition="replace">for coming</point>
<point transition="replace">and for listening</point>
</slide>

</slideshow>

