<?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>The Aust Gate &#187; projects</title>
	<atom:link href="http://austgate.co.uk/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://austgate.co.uk</link>
	<description>Open Knowledge and Literature</description>
	<lastBuildDate>Mon, 23 Jan 2012 18:10:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Writing specs &#8211; a first starting point</title>
		<link>http://austgate.co.uk/2012/01/writing-specs-a-first-starting-point/</link>
		<comments>http://austgate.co.uk/2012/01/writing-specs-a-first-starting-point/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 19:59:33 +0000</pubDate>
		<dc:creator>iain_emsley</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://austgate.co.uk/?p=458</guid>
		<description><![CDATA[Our team have started on Scrum to move forward with our projects. So far, so staggering steps but, hey, we are new to it. We will learn by falling / failing and then learning from where we went wrong and fixing it. One of the things that I have been looking at, partially because, as [...]]]></description>
			<content:encoded><![CDATA[<p>Our team have started on Scrum to move forward with our projects. So far, so staggering steps but, hey, we are new to it. We will learn by falling / failing and then learning from where we went wrong and fixing it.</p>
<p>One of the things that I have been looking at, partially because, as Joel on Software&#8217;s article, <a title="Joel on Software on functional specs" href="http://www.joelonsoftware.com/articles/fog0000000036.html" target="_blank">Painless Functional Specifications &#8211; Part 1: Why Bother?</a>, puts it,</p>
<blockquote><p>When you force yourself to write a <em>good, complete</em> spec &#8230; you notice all these things and you either fix them or at least you mark them with a big red flag.</p></blockquote>
<p>The last company that I worked for never wrote specs. Documentation, pah. Not here. Not until my last three weeks where I wrote up the documentation on thirty odd projects. In theory, great, but I was describing the existing system, rather than having a system to check my programmes against spec. Projects were late and needed patching because there was no description of what was being planned to communicate.</p>
<p>I am currently working on a project which I am writing documentation for. Again I have sort of started in the wrong way. The spec has not been written at the beginning and writing it up now, I can see issues with the existing systems. I can see where they are and can fix them. No spec, not entirely clear what the issues are. It also means that other team members working on systems which interface with mine or managers need to report on progress. It takes pressure off me, the developer, to be on hand to describe how the system works or to diagnose issues before they arise (well try to anyhow).</p>
<p>So where to now? Well. I need to do some writing and create both functional and technical specs. I will learn, and possibly fail at some point only to pick myself up again. A starting point, apart from trying, is to read the other Joel on Software articles, keep researching and writing.</p>
]]></content:encoded>
			<wfw:commentRss>http://austgate.co.uk/2012/01/writing-specs-a-first-starting-point/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a simple video gallery using Drupal 7</title>
		<link>http://austgate.co.uk/2011/12/creating-a-simple-video-gallery-using-drupal-7/</link>
		<comments>http://austgate.co.uk/2011/12/creating-a-simple-video-gallery-using-drupal-7/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 14:27:12 +0000</pubDate>
		<dc:creator>iain_emsley</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://austgate.co.uk/?p=417</guid>
		<description><![CDATA[As a side project, I&#8217;ve been looking at Media Uploads in Drupal 7. I am interested in using Media as a sort of asset management system at a machine level with web services allowing for the ingestion and listing of files. Anyhow as a side experiment, I wanted to take the idea of a video [...]]]></description>
			<content:encoded><![CDATA[<p>As a side project, I&#8217;ve been looking at Media Uploads in Drupal 7. I am interested in using Media as a sort of asset management system at a machine level with web services allowing for the ingestion and listing of files. Anyhow as a side experiment, I wanted to take the idea of a video gallery using the Youtube and Vimeo Media modules.</p>
<p>In the tutorials that I&#8217;ve seen, the gallery often links back out to the original URL but what if the listing needs to link back to a node. It is not much but I did find  away of making the link work. I like the fairly simple listing of the preview, a title and associated tags. The preview and title are obvious (and the listing could be extended by adding in a description as well.) but the tags could be used for categorising the collection folksonomically.</p>
<p>As well as Media, Media_Youtube, Media_Vimeo, I used Taxonomy and Views 3.</p>
<p>The first step was to create a video content type to take an embed url from the services and put it into Drupal and allow the user to add in a title, a description and a limited number of tags to define contents by creating a form and having the form save the node. The file URL needs to be saved as a file entity since that is what Media 2 now uses. When the form is saved, it creates a node with the url. Using the theme() functions in the templates (thanks to Finn at <a title="Ecobee's website" href="http://ecobee.coop" target="_blank">Ecobee.coop</a> for helping me with this bit), the video stream can be shown using your own template. If you just use the standard node template which comes out of the Drupal box, then you do not need to worry about this at all.  So that sets up the individual nodes which have videos and descriptions of them in. But how to view them?</p>
<p>Well that is where views comes in. I created a new view call videos/all and used the fields to select all videos at that url. I also set up a contextual filter to query the videos which were set up with tags against them to filter on the tag term and return all associated video type nodes. The default is set to show all if there are no videos with a term.</p>
<p>The one issue that I did find with this was if I wanted to have the video itself linked to the node, not just the title (which can be set when you call the title as a field). I had to use the content:NID field which is excluded from the display.</p>
<p>In the content:Video field, I set up a link which referenced the content:NID  value in the link option, had it replace the spaces with dashes and use an absolute link to provide the URL so that a preview image could be used as a link as well like Vimeo or YouTube where you have both sorts of links in the galleries.</p>
<p>(Another long-winded way of doing this is using the global PHP and using drupal_lookup_path() to turn the node id into a URL but you shouldn&#8217;t need to do this. )</p>
<p>Using these simple modules, you can create a simple Video gallery that allows you to show videos from the various web services using the Media modules. I am sure that there are other ways of doing the same thing. I am sure that I will be exploring this more as I am hoping to use Media for a variety of other projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://austgate.co.uk/2011/12/creating-a-simple-video-gallery-using-drupal-7/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New year, new directions?</title>
		<link>http://austgate.co.uk/2011/12/new-year-new-directions/</link>
		<comments>http://austgate.co.uk/2011/12/new-year-new-directions/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 11:08:45 +0000</pubDate>
		<dc:creator>iain_emsley</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://austgate.co.uk/?p=429</guid>
		<description><![CDATA[We are in the middle of the dead days, as Marcus Sedgwick describes them in one of sequences. It seems like a time for soem reflection, partially based on an intepretation of Steve Poland&#8217;s What startup to Build? post on Techcrunch. This is not to say that I an necessarily thinking of building a startup [...]]]></description>
			<content:encoded><![CDATA[<p>We are in the middle of the dead days, as Marcus Sedgwick describes them in one of sequences. It seems like a time for soem reflection, partially based on an intepretation of Steve Poland&#8217;s <a title="Steve Poland on What Startup to Build on techcrunch" href="http://techcrunch.com/2011/12/25/what-startup-to-build/" target="_blank">What startup to Build?</a> post on Techcrunch. This is not to say that I an necessarily thinking of building a startup but the recurring notion of focussing on a problem struck a chord whilst I was out walking this morning.</p>
<p>I have found myself spinning out in various directions due to existing work and personal commitments and things I am interested in. Some of these overlap in odd ways and some do not. I have largely stopped doing anyhting personal in the last few weeks for a variety of reasons but having had a couple of days off and looking at a backlog of unpublished posts on the blog, I&#8217;ve begun rethinking some of these. I have one or two things about Drupal and messaging to be published and to explore in the next few days. Admittedly these are slightly more work related but I am also interested in them.</p>
<p>I am also trying to do somethings for other people. I am admittedly way behind where I would like to be on these and have used the last couple of days off to have a think about how I tackle these and play &#8216;catch up&#8217; to produce the work that  I would be happy showing rather than just trying to get a post out or a function finished. There are things that I can fold into work from these projects and I am determined to get on with them next. When I do, I can post about them.</p>
<p>As some acquaintances know, I have a notebook full of ideas which I have collected in the last few years. The intention of these has always been to build them into something useful and to explore how large scale things and ideas can be rebuilt for the individual. At this moment I have no idea how I am necessarily going to complete them but I do see the next few days and January trying to clear up things and tie off soome loose ends.</p>
<p>This does mean that I will have to rationalise the things that I will get involved with. Admittedly I overcommitted last year and I am trying to honour these commitments, but many of these are in areas that I am interested in. So decisions, decisions. I started doing some of the things that I do because I was deeply frustrated with a job that I was in and followed my own curiosity. It took me into new areas and langauges. I managed to build things but perhaps it came out of balance. I got frustrated because I could not build all the things that I wanted to.</p>
<p>I am hoping to go back to work refreshed and invigourated as well as recomitting to the current projects. I do not want to just finish them but build something with which I am happy. Some older projects may get rebooted in the scheme of things as they become relevant to work or other projects but they may also disappear. At this moment I amnot 100% sure what will happen to them but there is a rather dusty development section which needs spring cleaning. I may also move it to a secion called, tentatively, Kitchen Table, which comes from the notion of cottage working and also that fact that my desk is an old kitchen table.</p>
<p>I am excited but nervous. Spring cleaning, moving on is not easy and I am sure that I will see old projects and not want to get rid of them but I need to. I need to whittle away cruft and prune to renew growth and have fun again. I am also learning to sit on my hands and not to start anything new for a couple of weeks at least whilst I finish the current bits of work I have said that I would get on with.</p>
<p>I believe that most of these compliment each other and the problem that I am interested in should become clearer and more focussed in due course.</p>
<p>Onwards and forwards.</p>
]]></content:encoded>
			<wfw:commentRss>http://austgate.co.uk/2011/12/new-year-new-directions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Tesseract with Python for OCR</title>
		<link>http://austgate.co.uk/2011/11/using-tesseract-with-python-for-ocr/</link>
		<comments>http://austgate.co.uk/2011/11/using-tesseract-with-python-for-ocr/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 18:38:59 +0000</pubDate>
		<dc:creator>iain_emsley</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[ocr]]></category>
		<category><![CDATA[open_literature]]></category>
		<category><![CDATA[tesseract]]></category>
		<category><![CDATA[textcamp]]></category>

		<guid isPermaLink="false">http://austgate.co.uk/?p=415</guid>
		<description><![CDATA[Following several conversations with Alex Butterworth over pots of tea in the crypt of St Mary&#8217;s Church in Oxford, I&#8217;ve been having a look at Python and its bindings with the Tesseract library. A quick Google search brought me to this post by Roy on building an HTTP service using Tornado. I am fairly new [...]]]></description>
			<content:encoded><![CDATA[<p>Following several conversations with Alex Butterworth over pots of tea in the crypt of St Mary&#8217;s Church in Oxford, I&#8217;ve been having a look at Python and its bindings with the <a title="Tessearct OCR library" href="http://code.google.com/p/tesseract-ocr/" target="_blank">Tesseract</a> library.</p>
<p>A quick Google search brought me to this post by Roy on building an<a title="OCR, Tornado" href="http://www.morethantechnical.com/2011/01/25/10-lines-of-code-ocr-http-service-with-python-tesseract-and-tornado/" target="_blank"> HTTP service using Tornado</a>. I am fairly new to <a title="Tornado's website" href="http://www.tornadoweb.org/" target="_blank">Tornado</a> but have been looking at it for an experiment at work. However I have been using <a title="Flask microsite app" href="http://flask.pocoo.org" target="_blank">Flask</a> for other projects such as a quick and dirty RDF browser largely based on Chris Gutteridge&#8217;s PHP browser. (At some point very soon, I need to get back to this but other projects are slightly more pressing at the moment.)</p>
<p>After a quick upgrade to version 0.8, I have managed to put something together a little like Roy&#8217;s script but I&#8217;m hoping to go further and add a storage layer before tidying it all up.</p>
<p>Unlike Roy&#8217;s script, I&#8217;ve pushed the Tesseract and file handling code outside of the server. In the long term, I&#8217;d like to split out the file handling and storage facilities from the web server which means looking at the storage. As a quick step, I&#8217;ve popped in a link to a MySQL database but a far better option would probably be a NoSQL database like CouchDB or similar. I suppose a Key / Value store like Redis could be used as well (<a title="Redisfs " href="http://blog.steve.org.uk/i_updated_my_redis_based_filesystem.html" target="_blank">Redisfs apparently does something like this</a>) as a back end. I&#8217;m keeping options open.</p>
<p>I do have a temptation to use RabbitMQ to notify various workers that a file exists which suggests that if I&#8217;m hoping to use this as a book scanner back end (discussed at the Textcamp event in August), then I need to add in an automated set of scripts which reads a directory and deals with the file and moving, storing and scanning them. Perhaps Tornado might be a long term answer but realistically it is not needed for a test project.</p>
<p>Also, Tesseract will need some training as I&#8217;ve discovered this evening playing with some newspaper text and seeing some of the results. As one of the reason I began this was to store old fanzines and newspaper articles which I&#8217;ve stored for research but are now degrading, that might be a problem.</p>
<p>Either way, this is a way of moving ahead with the book scanner conversation and building something small to scratch some itches.</p>
]]></content:encoded>
			<wfw:commentRss>http://austgate.co.uk/2011/11/using-tesseract-with-python-for-ocr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working on the Panton Principles for Open Literature and Humanities</title>
		<link>http://austgate.co.uk/2011/10/working-on-the-panton-principles-for-open-literature-and-humanities/</link>
		<comments>http://austgate.co.uk/2011/10/working-on-the-panton-principles-for-open-literature-and-humanities/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 17:38:48 +0000</pubDate>
		<dc:creator>iain_emsley</dc:creator>
				<category><![CDATA[Open Knowledge]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[open_literature]]></category>
		<category><![CDATA[principles]]></category>

		<guid isPermaLink="false">http://austgate.co.uk/?p=402</guid>
		<description><![CDATA[The, it appears indefatigable, James Harriman-Smith and I, amongst others, had been talking about porting the Panton Principles to Open Literature and Humanities uses. After a Skype call, we created a first draft which is now online on the Open Literature wiki: http://wiki.openliterature.net/Principles and on the Open Literature mailing list. One of the matters that [...]]]></description>
			<content:encoded><![CDATA[<p>The, it appears indefatigable, James Harriman-Smith and I, amongst others, had been talking about porting the <a title="Panton Principles" href="http://pantonprinciples.org/" target="_blank">Panton Principles</a> to Open Literature and Humanities uses. After a Skype call, we created a first draft which is now online on the Open Literature wiki: <a title="Open Literature principles" href="http://wiki.openliterature.net/Principles" target="_blank">http://wiki.openliterature.net/Principles</a> and on the Open Literature mailing list.</p>
<p>One of the matters that did concern us was the word &#8220;data&#8221; and what this might mean to literature and humanities. One assumption that we had was that it perhaps had a more defined meaning to scientists. But what is data to humanities? Is it the manuscript, the notes, or the published work? We decided that &#8216;Work&#8217; might be a better word for the overarching principle.</p>
<p>One of the issues that is important is re-use and subsequently closing the re-used work down and making it non-open. The major party that we had in mind was Google Books. Whilst they are making good and admirable strides in the digitising of out of print works but there is no API or metadata store that can be used to mix up the data or to mine it in any other way. Effectively we end up where we started: with a technically open text tied up in ways that cannot be re-used.</p>
<p>Re-use and re-mix are extremely important within digital humanities. Influence and building on works are central to movements like Modernism and also ensuring that works and authors are accessible. Works are adapted and take on their own lives or segue from such moments.</p>
<p>The final major point was that citations and the underlying cited text should be open. Whilst the core of the principles are about the work and ensuring that it can be worked on, a fair amount of work goes into notes and annotations to the text (such as the great <a title="Annotation tool" href="http://www.annotateit.org" target="_blank">Annotate It</a> tool) and these provide a meta work for people to build on. It is vital for debate that these are not put into a closed arena, not just for the sharing of notes but also building on the notes. They might also be put together into a new work or an annotated version of a work put together to build upon the work with communal notes.</p>
<p>This does represent a step forward in open literature and digital humanities. I really hope that debate does start and that these can be developed and make concrete.</p>
]]></content:encoded>
			<wfw:commentRss>http://austgate.co.uk/2011/10/working-on-the-panton-principles-for-open-literature-and-humanities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Streaming MP3s with Node.js</title>
		<link>http://austgate.co.uk/2011/10/streaming-mp3s-with-node-js/</link>
		<comments>http://austgate.co.uk/2011/10/streaming-mp3s-with-node-js/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 21:01:36 +0000</pubDate>
		<dc:creator>iain_emsley</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[streaming]]></category>

		<guid isPermaLink="false">http://austgate.co.uk/?p=404</guid>
		<description><![CDATA[In the midst of doing some research for work into some technologies that we&#8217;ve begun, or are thinking of,  using, I&#8217;ve gone back to playing with Node.js . The ever useful Elegant Code blog has a quick guide to streaming files using Node that pretty much comes out to the box, or Github. Using some [...]]]></description>
			<content:encoded><![CDATA[<p>In the midst of doing some research for work into some technologies that we&#8217;ve begun, or are thinking of,  using, I&#8217;ve gone back to playing with Node.js .</p>
<p>The ever useful <a title="Elegent Code on nodejs and streaming data" href="http://elegantcode.com/2011/04/06/taking-baby-steps-with-node-js-pumping-data-between-streams/" target="_blank">Elegant Code blog has a quick guide to streaming files</a> using Node that pretty much comes out to the box, or Github. Using some of the code and upgrading my own copy of Node.js to version 0.59 and reinstalling NPM, I started streaming a couple of MP3s off my laptop as a quick experiment towards something that might be of use to me. One of the ideas that I&#8217;ve been having is creating a streaming layer using Node to reduce Apache traffic.</p>
<p>This is the first stirrings towards a hack that I&#8217;ve really had a chance to play with recently but I&#8217;m hoping to get back into some real Node development again. It looks like there is at least one really useful <a title="Schaarmu's FFMPEG fluent library" href="https://github.com/schaermu/node-fluent-ffmpeg" target="_blank">FFMPEG library</a> to do transcoding and produce thumbnails.</p>
]]></content:encoded>
			<wfw:commentRss>http://austgate.co.uk/2011/10/streaming-mp3s-with-node-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More autocompletion with Redis and Drupal</title>
		<link>http://austgate.co.uk/2011/07/more-autocompletion-with-redis-and-drupal/</link>
		<comments>http://austgate.co.uk/2011/07/more-autocompletion-with-redis-and-drupal/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 20:26:22 +0000</pubDate>
		<dc:creator>iain_emsley</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[redis]]></category>

		<guid isPermaLink="false">http://austgate.co.uk/?p=372</guid>
		<description><![CDATA[Last week I began working on an auto-complete function using Redis behind Drupal 7 to do some auto-completing functions. I needed to get some county data, and possibly other sorts, put into some forms so that it can be standardised. One of the issues that I&#8217;ve been trying to do is to make sure that [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I began working on <a title="Auto-Complete with Redis and Drupal 7" href="http://austgate.co.uk/2011/07/auto-completing-drupal-with-redis/" target="_blank">an auto-complete function</a> using Redis behind <a title="Drupal CMS" href="http://drupal.org/" target="_blank">Drupal 7</a> to do some auto-completing functions.</p>
<p>I needed to get some county data, and possibly other sorts, put into some forms so that it can be standardised. One of the issues that I&#8217;ve been trying to do is to make sure that data is clean across various systems.</p>
<p>One of the issues that has come up is the connection library to the Redis server. I&#8217;ve used <a title="PHPRedis" href="https://github.com/nicolasff/phpredis" target="_blank">Nicholas FF&#8217;s phpredis</a> library and the <a title="Rediska library" href="http://rediska.geometria-lab.net/" target="_blank">Rediska</a> library. The matters that I&#8217;ve been considering are the size and complexity of each library.</p>
<p>I do like phpredis but as it is a C library needs compiling so that puts a potential barrier to its use in Drupal. Also the user may not have root access to compile it. As earlier posts might show, I loved Rediska but it seems overly large and complex for such a slight task. I was running some tests today on another project and it did not appear to be closing its connections properly (an issue which might be &#8216;QDH&#8217;able in the short term). Both libraries are complete and large which is what makes them great Swiss Army knives for Redis and PHP.</p>
<p>But I would like something small and light that has access to a subset of commands and is pure PHP. I suppose a long term desire might be to implement some of the pub/sub commands but I cannot think of a use at the moment.</p>
<p>I&#8217;ve taken ideas from <a title="Antirez on Redis, autocomplete and Redis" href="http://antirez.com/post/autocomplete-with-redis.html" target="_blank">Salvatore Sanfillipo&#8217;s post</a> which uses Ruby and ported these into PHP so the code uses Redis&#8217;s sorted sets to get the relevant items. I need to complete the code to see how it fairs under AJAX in Drupal. It would be a great sidetrack to follow some of the other possibilities such as search prediction, or perhaps this might go sideways into using that to pull up homonyms or synonyms where these are stored.</p>
<p>But that is definitely another day and another project.</p>
]]></content:encoded>
			<wfw:commentRss>http://austgate.co.uk/2011/07/more-autocompletion-with-redis-and-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auto-completing Drupal with Redis</title>
		<link>http://austgate.co.uk/2011/07/auto-completing-drupal-with-redis/</link>
		<comments>http://austgate.co.uk/2011/07/auto-completing-drupal-with-redis/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 17:33:32 +0000</pubDate>
		<dc:creator>iain_emsley</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[redis]]></category>

		<guid isPermaLink="false">http://austgate.co.uk/?p=369</guid>
		<description><![CDATA[I&#8217;ve been working on some functions for a forthcoming site at Janet and have been looking at the user functionality in some of our forms. In a reversal of roles, I&#8217;ve been trying to find ways of making it easier for users to complete the forms for various products and services which has taken me down [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on some functions for a forthcoming site at Janet and have been looking at the user functionality in some of our forms. In a reversal of roles, I&#8217;ve been trying to find ways of making it easier for users to complete the forms for various products and services which has taken me down some interesting avenues.</p>
<p>One of them is the idea of autocomplete. Nothing new there but something that can be easily overlooked when looking at the data instead. User Experience (UX) isn&#8217;t the only reason I&#8217;ve been looking at this. I&#8217;m also trying to find ways of keeping some of our data cleaner than it is and limiting options to a validated set currently seems to be the best way of doing this. To that end, as I&#8217;m still in the early stages of learning Drupal, i searched the Drupal forums and came across this comment (<a title="Autocomplete code in Drupal forums" href="http://drupal.org/node/1117562#comment-4452968" target="_blank">http://drupal.org/node/1117562#comment-4452968</a>) which has really helped me understand this. I&#8217;ve only implemented a cursory version of this code at the moment, throwing some rough values into the array to return, but the results appear to show fruit.</p>
<p>My intention is to back this onto a <a title="Redis key value store" href="http://redis.io" target="_blank">Redi</a>s store which will hold the cached data so that the site is not putting undue strain onto the main database and that the data store can be shared with other applications on the site. I&#8217;ve got the <a title="Rediska library" href="http://rediska.geometria-lab.net/" target="_blank">Rediska</a> library which I&#8217;m currently using but it has far more functions in it than I&#8217;ll ever need so I might roll my own pure PHP stripped down library. I&#8217;ll see what time I have.</p>
]]></content:encoded>
			<wfw:commentRss>http://austgate.co.uk/2011/07/auto-completing-drupal-with-redis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Node, Twitter and storing data</title>
		<link>http://austgate.co.uk/2011/06/node-twitter-and-storing-data/</link>
		<comments>http://austgate.co.uk/2011/06/node-twitter-and-storing-data/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 20:03:00 +0000</pubDate>
		<dc:creator>iain_emsley</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[data mining]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://austgate.co.uk/?p=360</guid>
		<description><![CDATA[I&#8217;ve been meaning to get into doing some work using Node.js for bits and pieces. Node offers some serious possibilities for server side programming without using cron jobs, creating event driven programmes that reduce load on the CPU (not using cron jobs) and for more agile and responsive backends to be created. After a conversation [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been meaning to get into doing some work using <a title="Node js website" href="http://nodejs.org/" target="_blank">Node.js</a> for bits and pieces. Node offers some serious possibilities for server side programming without using cron jobs, creating event driven programmes that reduce load on the CPU (not using cron jobs) and for more agile and responsive backends to be created.</p>
<p>After a conversation at work, I&#8217;ve started work on a  content aggregation system to store feeds from Twitter for some of the associated feeds from work. The idea had been to allow some of the users to search older tweets and to push the users back to Twitter and the relevant timelines if they want to follow them.</p>
<p>As the feeds had moved in a recent update to Twitter, I did have a little trouble finding the JSON feeds. georgep83&#8242;s <a title="Software Hacks on Twitter feed locations" href="http://softwarehacks.net/2011/04/twitter-create-rss-feed-from-a-users-timeline/" target="_blank">post on Software Hacks</a> got me there. I&#8217;ve used some Node code knocking around in my /home directory that quite probably comes from a tutorial (I think one from reading Tweets and presenting them to the browser) but gives me a start in trying to create something to understand node.</p>
<p>I&#8217;ve also used the Redis code downloaded from <a title="Node Package Manager website" href="http://npmjs.org" target="_blank">NPM</a>,  and popped the data into a store. I&#8217;ve adapted the code to parse a stream from my timeline and then parsing the JSON and stringifying it to store it into the key. What would be good is to be able to iterate over a list of relevant public Janet user names and to use the name as the key value and store data against each key. A further refinement (though might be one too far) is to add a time to each key so that it contains the tweets for the day. Looking at that sentence, I think that might be too far.</p>
<p>Anyhow, once I&#8217;ve got the iteration sorted I can build the parser to return relevant pieces of data to the Janet users. I might try and do this in Javascript as a learning exercise but I think I might be better off with something like PHP or Python. There is a large amount of data in the returned JSON now which presents some serious possibilities.</p>
<p>However I&#8217;m reading the Twitter <a title="Twitter API terms and conditions" href="http://dev.twitter.com/pages/api_terms" target="_blank">API&#8217;s terms and conditions</a> and <a title="Twitter guidelines on offline use" href="http://support.twitter.com/articles/114233" target="_blank">offline use</a> guidelines which are fairly fierce. I&#8217;d read that they were (and think I got caught in an earlier life on Twitter for JISCMail and got my desktop IP banned whilst writing a Perl script that got a bit over enthusiastic in a loop &#8211; oops!) but there is a lot to think about in terms of our own intended use. As well as offering some advice, it does offer some examples of how to use the data in our own services.</p>
<p>There are issues to think about within the web and marketing teams to ensure compliance with the terms. Much to think about and potentially getting into some serious waters&#8230; It does make me think twice about trying to use the Twitter API at all though.</p>
]]></content:encoded>
			<wfw:commentRss>http://austgate.co.uk/2011/06/node-twitter-and-storing-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weeknotes: Open Correspondence toolkit and converting XML into JSON</title>
		<link>http://austgate.co.uk/2011/05/weeknotes-open-correspondence-toolkit-and-converting-xml-into-json/</link>
		<comments>http://austgate.co.uk/2011/05/weeknotes-open-correspondence-toolkit-and-converting-xml-into-json/#comments</comments>
		<pubDate>Thu, 26 May 2011 19:25:47 +0000</pubDate>
		<dc:creator>iain_emsley</dc:creator>
				<category><![CDATA[Open Knowledge]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[Text Mining]]></category>
		<category><![CDATA[weeknotes]]></category>

		<guid isPermaLink="false">http://austgate.co.uk/?p=342</guid>
		<description><![CDATA[I&#8217;ve been quiet for a bit though generally because I&#8217;ve been quite busy on projects and exploring ideas. After Book Hackday, I&#8217;ve written a post about beginning to develop the Open Correspondence toolkit for the Open Knowledge Foundation&#8217;s Notebook blog. I was also contacted regarding converting the TEI XML pages into JSON, which I am [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been quiet for a bit though generally because I&#8217;ve been quite busy on projects and exploring ideas.</p>
<p>After Book Hackday, I&#8217;ve written a post about <a title="Open Correspondence toolkit" href="http://notebook.okfn.org/2011/05/25/mining-the-personal-using-open-correspondence-to-explore-correspondents/" target="_blank">beginning to develop the Open Correspondence toolkit</a> for the Open Knowledge Foundation&#8217;s Notebook blog. I was also contacted regarding converting the TEI XML pages into JSON, which I am currently working on.</p>
<p>Once I&#8217;ve done some more work on it, I&#8217;ll post the code and more about it.</p>
<p>I&#8217;ve been working on another project which may or may not be open. It is certainly interesting but I am not sure I can say much more than that. I hope to have a blog post up soon about it but I am rather excited by it and its possibilities.</p>
<p>Meanwhile, the work project continues apace with some surprising outcomes for me. Following watching a video on Facebook&#8217;s architecture, I&#8217;m beginning to see certain parts very differently. I really do hope more on this but I&#8217;ve got some building to do and a bit more delving and reading that needs completion.</p>
]]></content:encoded>
			<wfw:commentRss>http://austgate.co.uk/2011/05/weeknotes-open-correspondence-toolkit-and-converting-xml-into-json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

