<?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 Algedonode</title>
	<atom:link href="http://ianibbo.me/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://ianibbo.me</link>
	<description>Ian's thoughts and musings on information, learning and life</description>
	<lastBuildDate>Tue, 31 Aug 2010 10:13:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Experimenting with JTeam&#8217;s SOLR Spatial Plugin</title>
		<link>http://ianibbo.me/?p=127</link>
		<comments>http://ianibbo.me/?p=127#comments</comments>
		<pubDate>Tue, 31 Aug 2010 10:09:21 +0000</pubDate>
		<dc:creator>ianibbo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ianibbo.me/?p=127</guid>
		<description><![CDATA[Over the past few months it&#8217;s become apparent that there are some deeply rooted issues with the default solr spatial plugin that I&#8217;ve written about in previous posts. Most notably, at different scales (Different radii) search items which were present at a smaller radius disappear when the radius is increased. The confusion is amplified for [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past few months it&#8217;s become apparent that there are some deeply rooted issues with the default solr spatial plugin that I&#8217;ve written about in previous posts. Most notably, at different scales (Different radii) search items which were present at a smaller radius disappear when the radius is increased. The confusion is amplified for users because in the first search the distance to an item will be calculated and returned. Since most users rank by distance, the effect of increasing the radius should only ever be to increase the number of search results. However, this issue means that items can actually vanish when increasing the radius. A bit of digging seems to indicate this is a problem switching between tiers. </p>
<p>The SOLR spatial community seems to be experiencing a flurry of activity, but as is always the way with solr, that activity seems to be focussed on the head revision, leaving anyone with deployed systems in the lurch really rather badly (Again). I know I know if it means that much I can fix it myself&#8230; But with so much effort going into the head, it seems like patching is wasted effort. Fortunately, the JTeam guys have done the work for us, and back ported some of the current development effort to a solr 1.4 spatial plugin. This posting is really just an Aide-mémoire for myself going through the process of replacing the old solr spatial libraries with the JTeam patch, to see if things are any better there.</p>
<p>First step is to get the jar from JTeam, this is (unfortunately, AFAIK) an email-register-download situation. I really understand JTeams desire to track usage and build up a user base, but I&#8217;m really not sure what they are doing is compatible with the letter of the original codes license (And I&#8217;m almost certain it&#8217;s not compatible with the spirit).  Anyway, info about the plugin is here: <a href="http://www.jteam.nl/news/spatialsolr.html">http://www.jteam.nl/news/spatialsolr.html</a></p>
<p>Next up, our build process is maven based, so I need to import the jar:</p>
<p><code><br />
  mvn install:install-file -DgroupId=nl.jteam.search.solrext -DartifactId=spatial-solr -Dversion=1.0-RC5 -Dfile=spatial-solr-1.0-RC5.jar  -Dpackaging=jar -DgeneratePom=true<br />
</code></p>
<p>Hats off to the JTeam guys for their documentation and installation notes&#8230; Here&#8217;s what I&#8217;ve done so far:</p>
<p>We build our own solr war from the apache source so we get a chance to pull in any extra plugins. You can see the source for the jteam branch here: <a href="http://developer.k-int.com/svn/default/solrwar/1.4.1-jteam-spatial">http://developer.k-int.com/svn/default/solrwar/1.4.1-jteam-spatial</a> This project simply removes the old localsolr plugin and all it&#8217;s dependencies and replaces it with the jteam jar. Specifically, the pom has changed: <a href="http://developer.k-int.com/svn/default/solrwar/1.4.1-jteam-spatial/pom.xml">pom.xml</a></p>
<p>Next up, configuration changes in solrconfig.xml</p>
<p>I&#8217;ve updated the updateRequestProcessorChain which referenced com.pjaol.search.solr.update.LocalUpdateProcessorFactory as it&#8217;s processor class and changed the class to nl.jteam.search.solrext.spatial.SpatialTierUpdateProcessorFactory. There is also an additional str parameter <str name="tierPrefix">_tier_</str> in this new update processor</p>
<p>The jteam plugin also adds a SpatialTierQueryParser and geodistance searchComponent. These are neatly documented in the pdf that comes with the JTeam download.</p>
<p>Finally, changes to the schema.xml</p>
<p>Add a dynamic field for the _tier_* fields, I&#8217;ve left the old _local* fields in, and will note later if it can be safely removed. For now, I&#8217;ve left my lat and lon fields as tdouble, even though the JTeam documentation seems different to that.. </p>
<p>That represents the sum total of my mornings work&#8230; on to testing&#8230; more to follow.</p>
]]></content:encoded>
			<wfw:commentRss>http://ianibbo.me/?feed=rss2&amp;p=127</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Generic JPA realisation of the FRBR Model?</title>
		<link>http://ianibbo.me/?p=122</link>
		<comments>http://ianibbo.me/?p=122#comments</comments>
		<pubDate>Mon, 29 Mar 2010 12:42:17 +0000</pubDate>
		<dc:creator>ianibbo</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[FRBR]]></category>
		<category><![CDATA[JPA]]></category>

		<guid isPermaLink="false">http://ianibbo.me/?p=122</guid>
		<description><![CDATA[Ok, so I missed #rsrc &#8211; Rewired State : Rewired Culture   Much as I love our capital, there&#8217;s only so much london I can handle in one week, and a 5am start on a Saturday was going to be one too many   To try and make up for this lack of [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, so I missed #rsrc &#8211; Rewired State : Rewired Culture <img src='http://ianibbo.me/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Much as I love our capital, there&#8217;s only so much london I can handle in one week, and a 5am start on a Saturday was going to be one too many <img src='http://ianibbo.me/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  To try and make up for this lack of enthusiasm, I figured I&#8217;d work on one of an incubating cultural heritage project : an end-user configurable JDBC -> OAI gateway. Been pushing this along for a while now, and having cleared the weekend for #rsrc, it seemed the right thing to work on.</p>
<p>After a couple of hours hacking on saturday I arrived at a point that needed some test data. What to reuse? I figured I could just throw together my usual collection of cybernetics books and use that. What data model? FRBR is getting some air-time at the moment. Wouldn&#8217;t it be great if you could just pick up a JPA definition of the FRBR model and drop it into your project? I thought so.. But a look around didn&#8217;t yield anything I could reuse. Since my test data really only needs work/creator at the moment, I&#8217;ve created some classes under org.frbr.datamodel, pasted a GNU affero license on it, and whacked it out there in the public domain. Think maybe this needs to live at sourceforge, but I don&#8217;t fancy going through the hell of that just for giggles. The sourcecode is here for now: <a href="http://developer.k-int.com/svn/default/sandbox/frbr_rel_model/trunk/">http://developer.k-int.com/svn/default/sandbox/frbr_rel_model</a> (Can be svn checked out from this address too). If this is something of interest, prod me and I&#8217;ll get it up on sourceforge and share out the permissions. </p>
<p>This could be something I work on over the coming months depending on interest, or it might just stay as a neat way to store test data for the generic JDBC<->OAI gateway.</p>
]]></content:encoded>
			<wfw:commentRss>http://ianibbo.me/?feed=rss2&amp;p=122</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finding Ada #10 &#8211; Sue Morton</title>
		<link>http://ianibbo.me/?p=104</link>
		<comments>http://ianibbo.me/?p=104#comments</comments>
		<pubDate>Wed, 24 Mar 2010 16:22:51 +0000</pubDate>
		<dc:creator>ianibbo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[#ald10]]></category>

		<guid isPermaLink="false">http://ianibbo.me/?p=104</guid>
		<description><![CDATA[Ian's post for #ALD10 - Sue Morton of (The then) Sheffield Poly]]></description>
			<content:encoded><![CDATA[<p>Really very difficult to pick any one individual whom I know that I could write about here. So many women in IT have influenced me and deserve this post. To name but a few, Hannah, Gill O, Josie (F and J), Mia, Steph and many others, yer all in line for #s 11, 12 and onwards (In no particular order). At the end of the day tho, the chronological approach wins&#8230;&#8230;&#8230;&#8230;.. </p>
<p>People visiting my goodreads page recently might have noticed a bit of a theme &#8211; Understanding Gregory Bateson, Think Before you Think, etc. Anyone who knows me remotely well knows that I&#8217;ve always had a pretty substantial interest in cybernetics and information theory. This interest has been my saviour in a field of work so often permeated by mechanical &#8220;Systematic&#8221; thinking, allowing alternate perspectives and thinking to shed new light on what seem obvious (ly-wrong) solutions.</p>
<p>Sue Morton was, if memory serves, lead tutor for computer studies at Sheffield Poly when I set out on my degree waaaay back in 1989. Most importantly for me, Sue was the first person who I ever heard utter the magical words &#8220;General Systems Theory&#8221;. Until that moment, I&#8217;d been pretty much stuck on the hard, prickly, matter-of-fact, business-like and essentially ontological idea that a System is something out there &#8211; and really just a construct that helps us sell software. The idea that there are common qualities to what we now call viable systems, that those systems are permeable, and perhaps defined better by their boundaries and interfaces (In the bateson rather than the software sense) than their contents. This thinking led me to a path where critical thinking about our approach to so much more than just developing software is influenced and informed by this idea of &#8220;system&#8221;. Everything from software to the environment, relationships and social constructs were illuminated by this idea.</p>
<p>One of the best things about Finding Ada for me isn&#8217;t just about celebrating women in technology who have most influenced you, it&#8217;s about finding out why. When on placement, my line manager at the time was kind enough to share the reference that Sue had supplied for me. The actual text is long gone from my memory but the insight has stayed with me ever since. Sue, in reasonably direct terms, suggested that when I&#8217;m working in a team of peers who are motivated, enthusiastic and skilled my work could be quite good (OK, I toned that down a bit). But, Sue also warned that she&#8217;d noticed in me a tendency to try really hard to bring every group up to that level of engagement. If, however, at the end of that the team hasn&#8217;t lived up to my expectations, I had a tendency to, well, wander off on my own path. Perhaps harsh, but if I&#8217;m truly honest, one of the most insightful and useful bits of self knowledge I&#8217;ve ever been lucky enough to receive. I&#8217;m sooo lucky these days to work with friends and colleagues both in my day job, and in the wider grassroots scene that this bit of insight so very often works in my favour. Thanks to this I&#8217;m always mindful that when I feel that pull to wander off something deeper is going on. Thats the kind of self knowledge you just can&#8217;t buy or read from a book, it has to come from insight, empathy and skill. Three words that absolutely sum up my recollection of not only a great educator, but a great teacher, in every sense of the word!</p>
<p>I&#8217;m also reminded of the day when I got my degree results, when Sue handed me a bit of paper with the name and contact details of a professor looking for postgrads to do research. That moment and the decision that followed has remained one of the pivotal ones of my life. Not only was this a person I respected hugely, but one who had after all that help was still offering more assistance.  Just recently, I&#8217;ve started a push on reading the latest works in and around general systems theory and more modern theories of complexity theory with the strongest intention of writing an proposal for the OU&#8217;s virtual MPhil. I don&#8217;t think many people could inspire a fresh graduate to an interest in a subject that would last 20 years, yet here I am, 20 years after first hearing Sue utter the words &#8220;General Systems Theory&#8221; pursuing learning in almost the self same subject.</p>
<p>If that doesn&#8217;t qualify as inspiring someone, I&#8217;ve no idea what does.</p>
<p>I&#8217;m sure I never said it at the time, Thankyou Sue! </p>
]]></content:encoded>
			<wfw:commentRss>http://ianibbo.me/?feed=rss2&amp;p=104</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Possible Projects for Rewired State: Culture event.</title>
		<link>http://ianibbo.me/?p=102</link>
		<comments>http://ianibbo.me/?p=102#comments</comments>
		<pubDate>Wed, 24 Mar 2010 08:27:33 +0000</pubDate>
		<dc:creator>ianibbo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ianibbo.me/?p=102</guid>
		<description><![CDATA[3 ideas for projects at the Rewired State : Culture event - Scripting new data silos into culture grid, a generic database -> OAI Gateway, Crowdsourcing data cleansing for cultural data sets.]]></description>
			<content:encoded><![CDATA[<p>Excitingly, I&#8217;m off to <a href="http://rewiredstate.org/events/culture">Rewired State: Culture</a> this saturday. In the run up to this project I&#8217;ve been discussing with Phill and <a href="http://twitter.com/NickPoole1">Nick</a> how we can best make use of the Culture Grid API&#8217;s and make sure that Culture Grid contributes to the day. So I&#8217;ve been pondering ahead of time what projects might be fun&#8230;.</p>
<p>Scripting and Data Import into Culture Grid &#8211; Culture Grid offers indexing of metadata, and search, OAI and preservation services for your metadata. If you can upload your metadata you can take advantage of these services and drive traffic to your resources as well as participate in the wider open/linked data community by sharing your records. To ingest data Culture Grid offers a <a href="http://www.swordapp.org/">SWORD</a> based deposit service. The trouble is, many of our cultural data sets are in spreadsheets, bespoke file formats, custom XML schemas, databases, etc, etc. Culture Grid has an add on &#8211; a stand alone open source component called the Data Upload Tool. The data upload tool is an extensible toolbox that can be used to massage different input datasources into PNDS Dublin Core Application Profile (PNDS-DCAP) records and then deposit those records using the SWORD protocol. We can build in timestamp monitoring and other services at the tool level. It&#8217;s a handy way to get content out of existing silos and in to other systems. To be honest, there&#8217;s no reason to restrict the target to Culture Grid &#8211; any repository that supports SWORD could accept your data. So &#8211; the idea for this project would be instead of hacking together new code, if anyone out there has a dataset they would love to share why not work on some scripts / code for the data upload tool. This would give us a great output for the day &#8211; A bit of data that was previously in a silo thats now open. So, got the tools, really need some datasets now!</p>
<p>Idea 2 &#8211; Is along similar lines&#8230; I&#8217;ve been working (For a while now) on a web based drag/drop Relational Database -> OAI bridge. The idea is you put in your database connection details, wire together any additional relationships that cant be discerned from the database metadata, and then wire together that schema with a host of XML schemas to provider a bridge between any database that supports JDBC and OAI. I know there are a ton of Cultural datasets out there that are in relational databases &#8211; so this seems like a fun idea. In terms of bang-for-buck this is probably the most fun. Unfortunately, unless there are some other developers out there with an interest it&#8217;s probably also the least social as it&#8217;s down-and-dirty generic database code. </p>
<p>Idea 3 &#8211; Is something different. Crowdsourcing data cleansing. The idea here is blatantly inspired by the work <a href="http://twitter.com/tommorris">Tom Morris</a> did on reviewing data sets for Data.gov.uk. Take a cultural dataset and massage it down to a twitter URL. Whenever anyone visits the URL they are presented with the resource described and a form asking them some qualitative questions about the resource. The simple  question seems to be &#8220;Does the metadata adequately describe the resource&#8221; (I know, it&#8217;s a question fraught with danger, but metadata quality is a real issue sometimes). This idea would require a fair amount of cross-working &#8211; From domain specific question design through to the nuts and bolts coding. Crowdsourcing data cleansing of cultural data seems like it should have some legs tho as an idea?</p>
<p>Will post more ideas as I have them <img src='http://ianibbo.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>See you saturday!</p>
]]></content:encoded>
			<wfw:commentRss>http://ianibbo.me/?feed=rss2&amp;p=102</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jetty/Maven2 (Mysql) JDBC Realms &#8211; Headache solved (I think)</title>
		<link>http://ianibbo.me/?p=97</link>
		<comments>http://ianibbo.me/?p=97#comments</comments>
		<pubDate>Sat, 06 Mar 2010 12:01:21 +0000</pubDate>
		<dc:creator>ianibbo</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[maven2]]></category>
		<category><![CDATA[dev8d]]></category>
		<category><![CDATA[jetty]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://ianibbo.me/?p=97</guid>
		<description><![CDATA[As said elsewhere&#8230;&#8230; I&#8217;m often left feeling a bit as though I didn&#8217;t contribute well to hacking events &#8211; It&#8217;s not that I can&#8217;t hack, but it seems so often problems I want to attack require more infrastructure that I have time to assemble. Most often this revolves around simple user functionality. For reasons best [...]]]></description>
			<content:encoded><![CDATA[<p>As said elsewhere&#8230;&#8230; I&#8217;m often left feeling a bit as though I didn&#8217;t contribute well to hacking events &#8211; It&#8217;s not that I can&#8217;t hack, but it seems so often problems I want to attack require more infrastructure that I have time to assemble. Most often this revolves around simple user functionality. For reasons best understood by the universe, php &#8220;Frameworks&#8221; seem to provide this sort of thing out of the bag. The trouble for a middleware developer is that most of our really cool tools are in languages like c++, java, etc. php makes a great front end development environment, but having several technologies in the mix is a pain when you&#8217;re just trying to hack something together. On top of that, most of the java &#8220;Frameworks&#8221; tend to be infrastructure rather than application frameworks. After last weeks #dev8d I decided what I really needed was an &#8220;Application&#8221; framework in java. Something that I could easily add restful services to, but provided out of the box registration, login, user home, etc. The idea is I can copy this empty template app for each project and then get on with the business of &#8220;Hacking&#8221; (Hopefully this will be handy for me at the rewired state &#8211; culture event).</p>
<p>So, long story short, I&#8217;m putting together three framework apps: (One that uses OpenURL and the dyu library for authentication (Great for deployment to google app engine), One that uses spring security, and one that uses a home grown identity service that we already use in loads of k-int open source projects). They are being &#8220;Incubated&#8221; <a href="http://developer.k-int.com/svn/default/templates">here</a>. feel free to copy/edit. They contain some app specific stuff at the moment, but my plan is to keep on cleaning up / adding default functionality to make the process of java-based-hackathon activity as easy as it is in python/ruby/etc.</p>
<p>On the road to this, I also decided it was time to get busy with jetty as a test tool and quick prototyping aid. All was wonderful (JDBC resources in JNDI context etc) right up to the point I tried to configure the jetty JDBCRealm. I&#8217;d configured the mysql connector jar as a dependency of the plugin as per the jetty docs, set up the etc/realm.properties yet the app consistently delivers java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver. 2 days of digging around, and a read through <a href="http://jira.codehaus.org/browse/JETTY-574">JETTY-574</a> made me realise that the jetty container filters some classes. Switching the jdbc driver to com.mysql.jdbc.Driver seems to make everything work just fine. I&#8217;m not so sure about the heritage of this particular driver class, but it&#8217;s a step forwards. I suspect that adding the right <filter> elements to the pom will enable the old style org.gjt driver to be found. Pushing on with the hacking for now. </p>
<p>Specifics of the JDBCRealm are in <a href="http://developer.k-int.com/svn/default/templates/ident_public_webapp/trunk/">this project</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ianibbo.me/?feed=rss2&amp;p=97</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cybernetic temperature maps to show variety hot-spots?</title>
		<link>http://ianibbo.me/?p=95</link>
		<comments>http://ianibbo.me/?p=95#comments</comments>
		<pubDate>Sun, 21 Feb 2010 12:17:09 +0000</pubDate>
		<dc:creator>ianibbo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ianibbo.me/?p=95</guid>
		<description><![CDATA[On Wednesday 17th Feb A few of us (@andymayer @aden_76 @Jagusti @saulcozens &#038; co) got together in the showroom at the request of @Technophobia to discuss how sheffield city council could open up it&#8217;s data streams, what the priorities might be, and what economic benefit could be found.
During the course of this discussion we identified, [...]]]></description>
			<content:encoded><![CDATA[<p>On Wednesday 17th Feb A few of us (@andymayer @aden_76 @Jagusti @saulcozens &#038; co) got together in the showroom at the request of @Technophobia to discuss how sheffield city council could open up it&#8217;s data streams, what the priorities might be, and what economic benefit could be found.</p>
<p>During the course of this discussion we identified, not unexpectedly, that most interesting insights come at the intersection of multiple data sets. One idea that came to mind in this discussion was triggered by the example &#8220;Average age by postcode&#8221;. We then went on to think how this could be shown &#8211; one example was a temperature map &#8211; hotter = higher concentrations of the &#8220;Target age group&#8221;. I&#8217;d been re-reading stafford beer that day (Think before you think) and was reminded of the phrase &#8220;Only variety can absorb variety&#8221;. So, one interesting visualisation we came up with was trying to locate under-serviced regions for specific community groups. Specifically:</p>
<p>One slider increases the &#8220;Heat&#8221; level for one dimension of measurements. In this case, average age. A second slider indicates the provision of services targeted at that age group, EG &#8220;Home help provision&#8221;. As each slider moves up to its max, the &#8220;Cold&#8221; from the home help provision should &#8220;Balance out&#8221; the &#8220;Heat&#8221; from the average age index. If the map returns to a steady state, all is well, but if the map has blotchy red spots, maybe there are gaps in provision that would enable better targeting of services?</p>
<p>Not sure this example really stands up to harsh scrutiny, but I&#8217;d never heard of heat maps being used in quite this context before. Fun times.</p>
<p><img src="http://farm3.static.flickr.com/2442/4410974532_4845d7c7ee_o_d.png" alt="Random notes" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ianibbo.me/?feed=rss2&amp;p=95</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working with LocalSolr and Lucene 2.9.1rc3 / Solr 1.4rc1</title>
		<link>http://ianibbo.me/?p=88</link>
		<comments>http://ianibbo.me/?p=88#comments</comments>
		<pubDate>Mon, 02 Nov 2009 19:52:11 +0000</pubDate>
		<dc:creator>ianibbo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[localsolr]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[SOLR]]></category>
		<category><![CDATA[spatialsearch]]></category>

		<guid isPermaLink="false">http://ianibbo.me/?p=88</guid>
		<description><![CDATA[I've been trying to prepare a project using localsolr for the impending (I hope) arrival of solr 1.4 and Lucene 2.9.1.. Here are some notes in case anyone else is suffering similar issues.]]></description>
			<content:encoded><![CDATA[<p>Copy of a posting made on solr-user list just in case it&#8217;s handy for anyone out there.</p>
<p>I&#8217;ve been trying to prepare a project using localsolr for the impending (I hope) arrival of solr 1.4 and Lucene 2.9.1.. Here are some notes in case anyone else is suffering similarly. Obviously everything here may change by next week.</p>
<p>First problem has been the lack of any stable maven based lucene and solr artifacts to wire into my poms. Because of that, and as an interim only measure, I&#8217;ve built the latest branches of the lucene 2.9.1 and solr 1.4 trees and made them into a *temporary* maven repository at http://developer.k-int.com/m2snapshots/. in there you can find all the jar artifacts tagged as xxx-ki-rc1 (For solr) and xxx-ki-rc3 (For lucene) and finally, a localsolr.localsolr build tagged as 1.5.2-rc1. Sorry for the naming, but I don&#8217;t want these artifacts to clash with the real ones when they come along. This is really just for my own use, but I&#8217;ve seen messages and spoken to people who are really struggling to get their maven deps right, if this helps anyone, please feel free to use these until the real apache artifacts appear. I can&#8217;t take any responsibility for their quality. All the poms have been altered to look for the correct dependent artifacts in the same repository, adding the stanza</p>
<p>  <!-- Emergency repository for storing interim builds of lucene and solr whilst they sort their act out --><br />
  <repositories><br />
    <repository><br />
      <id>k-int-m2-snapshots</id><br />
      <name>K-int M2 Snapshots</name><br />
      <url>http://developer.k-int.com/m2snapshots</url><br />
      <releases><br />
        <enabled>true</enabled><br />
      </releases><br />
    </repository><br />
  </repositories></p>
<p>to your pom will let you use these deps temporarily until we see an official build. If you&#8217;re a maven developer and I&#8217;ve gone way around the houses with this, please tell me of an easier solution <img src='http://ianibbo.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  This repo *will* go away when the real builds turn up.</p>
<p>The localsolr in this repo also contains the patches I&#8217;ve submitted (A good while ago) to the localsolr project to make it build with the lucene 2.9.1 rc3 as the downloadable dist is currently built against an older 2.9 release that had a different API (IE won&#8217;t work with the new lucene and solr)</p>
<p>All this means that there is a working localsolr build.</p>
<p>Second up, I&#8217;ve also seen emails (And seen the exception myself) around asking about the following when trying to get all these revisions working together.</p>
<p>java.lang.NumberFormatException: Invalid shift value in prefixCoded string<br />
(is encoded value really a LONG?)</p>
<p>There are some threads out there telling you that the Lucene indexes are not binary compatible between versions, but if you&#8217;re using localsolr, what you really need to know is:</p>
<p>1) Make sure that your schema.xml contains at least the following fieldType defs</p>
<p>   <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/></p>
<p>2) Convert your old solr sdouble fields to tdoubles:</p>
<p>  <field name="lat" type="tdouble" indexed="true" stored="true"/><br />
  <field name="lng" type="tdouble" indexed="true" stored="true"/><br />
  <dynamicField name="_local*" type="tdouble" indexed="true" stored="true"/></p>
<p>Pretty sure you would need to rebuild your indexes.</p>
<p>Ok, with those changes I managed to get a working spatial search.</p>
<p>My only problem now is that the radius param on the command line seems to need to be way bigger than it needs to be in order to find anything. Specifically, if I search with a radius of 220 I get a record back which marks it&#8217;s geo_distance as &#8220;83.76888211666025&#8243;. Shuffling the radius around ends up that a radius of 205 returns that doc, 204 and it&#8217;s filtered. I&#8217;m going to dig into this now, but if anyone knows about this I&#8217;d really appreciate any help.</p>
<p>Cheers all, hope this is of use to someone out there, if anyone has corrections/comments I&#8217;d really appreciate any info.</p>
<p>Best,<br />
Ian.</p>
]]></content:encoded>
			<wfw:commentRss>http://ianibbo.me/?feed=rss2&amp;p=88</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>bashmash project #2 live &#8211; Roundabout Homlesness.</title>
		<link>http://ianibbo.me/?p=79</link>
		<comments>http://ianibbo.me/?p=79#comments</comments>
		<pubDate>Tue, 11 Aug 2009 14:13:57 +0000</pubDate>
		<dc:creator>ianibbo</dc:creator>
				<category><![CDATA[Geekup]]></category>
		<category><![CDATA[bashmash]]></category>

		<guid isPermaLink="false">http://ianibbo.me/?p=79</guid>
		<description><![CDATA[A quick note and huge grats to roundabout on the go-live of their new website. Roundabout is sheffield based charity working with young people in the city, and were the second clients of the increasingly popular bashmash events. These events are being coordinated by @jagusti and other @sheffieldgeeks to bring the power of social media [...]]]></description>
			<content:encoded><![CDATA[<p>A quick note and huge grats to<a href="http://roundabouthomeless.org/"> roundabout</a> on the go-live of their new website. Roundabout is sheffield based charity working with young people in the city, and were the second clients of the increasingly popular<a href="http://twitter.com/bashmash"> bashmash</a> events. These events are being coordinated by <a href="http://twitter.com/jagusti">@jagusti</a> and other <a href="http://twitter.com/sheffieldgeeks">@sheffieldgeeks</a> to bring the power of social media and action to local charities and deserving organisations through a weekends intensive voluntary effort. Previous events set up the <a href="http://archerproject.org.uk/">Cathederal Archer Project</a> who are already starting to see a benefit on their funding and other activities in the city. Next bashmash event is due this month!</p>
]]></content:encoded>
			<wfw:commentRss>http://ianibbo.me/?feed=rss2&amp;p=79</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ideas for #shacknet projects</title>
		<link>http://ianibbo.me/?p=65</link>
		<comments>http://ianibbo.me/?p=65#comments</comments>
		<pubDate>Sat, 01 Aug 2009 12:54:04 +0000</pubDate>
		<dc:creator>ianibbo</dc:creator>
				<category><![CDATA[Geekup]]></category>
		<category><![CDATA[Shacknet]]></category>
		<category><![CDATA[sheffieldgeeks]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[collapsonomics]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[kids]]></category>
		<category><![CDATA[LETS]]></category>
		<category><![CDATA[shacknet]]></category>

		<guid isPermaLink="false">http://ianibbo.me/?p=65</guid>
		<description><![CDATA[2 project ideas mashing up the #shacknet group and the #geekup community]]></description>
			<content:encoded><![CDATA[<p>After a really interesting evening with the <a href="http://spacemakers.ning.com/group/sheffieldswapshop">sheffield swap shop</a> crew on tuesday of this week (In the excellent CoOp on london road, make an effort to visit) <a href="http://twitter.com/richardrixham">@richardrixham</a> and I retired to the red house for a beer and a chat. I&#8217;ve been meaning to post some ideas on possible <a href="http://shacknet.ning.com/">#shacknet</a> projects that tie in hardware hacking with maybe some code-oriented geekery from #geeekup&#8230; heres some starters for 10&#8230;</p>
<p>1. An idea Aaron and I have mucked about with in the past &#8211; The arduino weather station. The idea here is to put together instructions for building an internet connected weather station capable of reporting wind speed and direction, direct sunlight (strengh), and possibly rainfall, maybe pressure etc. Thats sorta the #shacknet half of the project. The <a href="http://geekup.org">#geekup</a> half would involve setting up some aggregator software capable of pulling data from all installed stations and presenting it in some meaningful manner.. like a real time weather network for sheffield.</p>
<p>I think there are a few practical applications for this.. my personal fave is as a tool for finding the best locations for wind turbines / solar power installations. I know @richardrixham has spoken with teachers about the problelms of getting this funded as an electronics project in schools, but I wonder if there is a way to just get it as a &#8220;Self assembly weather station&#8221; and do the electronics thing by stealth&#8230; anyone really interested could get the info and build one at home. I don&#8217;t doubt that if we had a quick brainstorm we could come up with oodles of add-on sensors and other instrumentation&#8230;. any thoughts?</p>
<p>2. Project 2 seems like a fun hardware/software/network mash-up too&#8230; inspired by the <a href="http://www.sheffieldlets.org.uk/">LETS</a> scheme in sheffield. Richard and I were wondering if we could build a hardware terminal and some software to act as an epos device for the <a href="http://www.sheffieldlets.org.uk/FAQ.htm">stones </a>(The LETS unit of currency) used by all the current <a href="http://www.sheffieldlets.org.uk/">LETS</a> schemes&#8230; basically a cash card for stones. We&#8217;d need to design and build a terminal with some security, and do the same job on the &#8220;Bank&#8221; server&#8230;. My exposure to LETS is only minimal at the moment, but I&#8217;m hoping to get more involved and am currently signing up&#8230; seems like an internet service for your LETS account would be quite a cool thing to have?</p>
<p>Just a brief update&#8230;. Any thoughts?</p>
]]></content:encoded>
			<wfw:commentRss>http://ianibbo.me/?feed=rss2&amp;p=65</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google YouTube (and other) API&#8217;s &#8211; maven2 artifacts</title>
		<link>http://ianibbo.me/?p=44</link>
		<comments>http://ianibbo.me/?p=44#comments</comments>
		<pubDate>Sun, 12 Apr 2009 12:10:00 +0000</pubDate>
		<dc:creator>ianibbo</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[maven2]]></category>
		<category><![CDATA[project-sheffield-virtual-classroom]]></category>

		<guid isPermaLink="false">http://ianibbo.me/?p=44</guid>
		<description><![CDATA[Been playing with the google java API&#8217;s for youtube as a part of the Sheffield virtual classroom project. I was shocked to find there weren&#8217;t any maven artifacts for the jars. Here&#8217;s the commands to take the distributed jars and cram them into your local maven2 repo. (Updated for latest versions as at 22/08/2009).
Download the [...]]]></description>
			<content:encoded><![CDATA[<p>Been playing with the google java API&#8217;s for youtube as a part of the Sheffield virtual classroom project. I was shocked to find there weren&#8217;t any maven artifacts for the jars. Here&#8217;s the commands to take the distributed jars and cram them into your local maven2 repo. (Updated for latest versions as at 22/08/2009).</p>
<p>Download the zip package from googlecode at http://code.google.com/p/gdata-java-client/downloads/list</p>
<p>then cd to the lib directory and run</p>
<pre>mvn install:install-file -DgroupId=gdata -DartifactId=base -Dversion=1.0 -Dfile=gdata-base-1.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger -Dversion=2.0 -Dfile=gdata-blogger-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger-meta -Dversion=2.0 -Dfile=gdata-blogger-meta-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=books -Dversion=1.0 -Dfile=gdata-books-1.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=books-meta -Dversion=1.0 -Dfile=gdata-books-meta-1.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=calendar -Dversion=2.0 -Dfile=gdata-calendar-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=calendar-meta -Dversion=2.0 -Dfile=gdata-calendar-meta-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=client -Dversion=1.0 -Dfile=gdata-client-1.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=client-meta -Dversion=1.0 -Dfile=gdata-client-meta-1.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=codesearch -Dversion=2.0 -Dfile=gdata-codesearch-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=codesearch-meta -Dversion=2.0 -Dfile=gdata-codesearch-meta-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=contacts -Dversion=3.0 -Dfile=gdata-contacts-3.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=contacts-meta -Dversion=3.0 -Dfile=gdata-contacts-meta-3.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=core -Dversion=1.0 -Dfile=gdata-core-1.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=docs -Dversion=2.0 -Dfile=gdata-docs-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=docs-meta -Dversion=2.0 -Dfile=gdata-docs-meta-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=finance -Dversion=2.0 -Dfile=gdata-finance-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=finance-meta -Dversion=2.0 -Dfile=gdata-finance-meta-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=health -Dversion=2.0 -Dfile=gdata-health-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=health-meta -Dversion=2.0 -Dfile=gdata-health-meta-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=media -Dversion=1.0 -Dfile=gdata-media-1.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=photos -Dversion=2.0 -Dfile=gdata-photos-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=photos-meta -Dversion=2.0 -Dfile=gdata-photos-meta-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=spreadsheet -Dversion=3.0 -Dfile=gdata-spreadsheet-3.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=spreadsheet-meta -Dversion=3.0 -Dfile=gdata-spreadsheet-meta-3.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=youtube -Dversion=2.0 -Dfile=gdata-youtube-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=youtube-meta -Dversion=2.0 -Dfile=gdata-youtube-meta-2.0.jar  -Dpackaging=jar -DgeneratePom=true

Edit - With the latest downloads you will also need to download the collections extensions at http://code.google.com/p/google-collections/ and install using

mvn install:install-file -DgroupId=gdata -DartifactId=youtube-meta -Dversion=2.0 -Dfile=gdata-youtube-meta-2.0.jar  -Dpackaging=jar -DgeneratePom=true</pre>
<div class="blogger-post-footer"><img alt="" /></div>
]]></content:encoded>
			<wfw:commentRss>http://ianibbo.me/?feed=rss2&amp;p=44</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
