Kake's Journal http://use.perl.org/~Kake/journal/ Kake's use Perl Journal en-us use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners. 2012-01-25T01:58:17+00:00 pudge pudge@perl.org Technology hourly 1 1970-01-01T00:00+00:00 Kake's Journal http://use.perl.org/images/topics/useperl.gif http://use.perl.org/~Kake/journal/ Eek! I wrote some Perl! http://use.perl.org/~Kake/journal/40498?from=rss I haven't written any Perl in a long time, but some fell out yesterday so I thought I'd mention it here. It's to do with Chinese text, specifically ways to grep in a traditional-simplified-insensitive way. More details <a href="http://kake.dreamwidth.org/45318.html">on my regular blog</a>. (Comments are enabled here, but preferred there &#8212; you can use OpenID or just sign your name so I know who you are.) Kake 2010-08-16T09:54:56+00:00 journal YAPC Europe http://use.perl.org/~Kake/journal/34406?from=rss <p>So I figured I should probably write something here about why I didn't go to YAPC::Europe this year, even though I was supposed to go and moderate a hackathon.</p><p>The problem was that I was supposed to moderate a hackathon.</p><p>For various reasons, there are some things that I find very very difficult, even though my skills and experience mean that I should be quite capable of them. Doing things in person at specific times comes under this. I'm not going to go into details, but I don't mean reasons like "is too disorganised to prepare a presentation in time", or "doesn't feel like getting out of bed in the morning" &#8212; it's more systemic and less easy to overcome than that.</p><p>The thing is that <i>because</i> I should be quite capable of things like running a training session, giving a live demonstration, moderating a hackathon, or indeed working full-time, it's very hard for other people to understand that these things are more difficult for me than they would be for most other people with my skills and motivation. This means that when I say "no, I can't do that", other people hear "I'm scared to do that", or "I need you to talk me into doing that", and hence they proceed to try to talk me into doing it. Because I am a nice person, and I like to oblige, this sometimes leads to me agreeing to do something that I really shouldn't.</p><p>(I do want to say here that I'm <i>absolutely not</i> saying anything against the people who encouraged me to propose the OpenGuides hackathon at YAPC. With most people, what you did would have been absolutely the right thing to do. The reason I'm writing this now is that I recognise that my situation is unusual enough to require documentation.)</p><p>So, when I found myself at the point where the situation had been affecting my work and personal life for months, and I was seriously contemplating cutting up my passport (and perhaps more) so nobody could <i>make</i> me go to Vienna, I realised that I had to pull out. So I did.</p><p>Some people have wondered why I didn't just cancel the hackathon and go to the conference anyway. Because of the way I am, I have spent far too much of my life apologising for dropping out of things. I've had people call me rude, lazy, stupid, inconsiderate, and unprofessional, and I'm sure there are a number of people in the Perl community who consider me unemployable. So I hope people can understand why I didn't want to go to Vienna that week, in that context, as a failure, again.</p><p> <small>This postscript is for the people who are going to pop up and suggest that I try therapy or drugs or NLP or something to "fix" myself.</small> </p><p> <small>Over the many many years that this has been the case, I have indeed put a lot of effort into trying to "fix" the "problem", but with time I've realised that this effort could be better spent somewhere else &#8212; for example, in doing things that I actually can accomplish well and efficiently. And in this, I am mostly succeeding. The work that remains to be done lies not in wasting more energy trying to change myself into a "normal" person, but in getting better at saying "no" and sticking to it.</small> </p> Kake 2007-09-10T16:18:09+00:00 journal OpenGuides hackfest. http://use.perl.org/~Kake/journal/33485?from=rss <p>Hello. Long time, no write. (I'm mostly writing on <a href="http://nou.livejournal.com/">LiveJournal</a> these days<small>[0][1]</small>.)</p><p> <small>[0] Mostly friends-only, so get an account or an OpenID, and poke me, and I'll add you.<br> [1] <a href="http://twitter.com/Kake/">ObTwitter</a> </small> </p><p>We had an <a href="http://openguides.org/">OpenGuides</a> hackfest at our house this weekend, focusing on clearing out all the cruft in our <a href="http://dev.openguides.org/report">Trac bugreps</a>. You know how some bugreps just sit and fester? Well, we got fed up of having festering bugreps, so we got a pile of OpenGuides hackers (old and new) together in our living room, talked each rep through, assigned them to various people, and started hacking. Commits happened, bugs got closed, and new people got familiar with the codebase. It feels like a fresh start.</p><p>The weekend went so well<small>[2]</small> that we plan to try and fit another one in between now and the <a href="http://vienna.yapceurope.org/ye2007/talk/668">hackathon</a> that will be happening at YAPC::Europe in Vienna in August.</p><p> <small>[2] The only thing I regret is the fact that the meatballs I made as part of the buffet lunch on Saturday were a bit dry. I think I'll add some lemon juice and vegetable stock next time.</small> </p><p>One of the best things about it was that new people came along and got stuck in: <a href="http://andrewdblack.livejournal.com/profile">Andrew</a>, <a href="http://www.linkedin.com/in/alaymond">Anne</a>, <a href="http://d-ilmari.livejournal.com/profile">Ilmari</a>, and <a href="http://pedrofigueiredo.org/">Pedro</a>. Hurrah to all of you, and of course hurrah also to the usual suspects, <a href="http://randomness.org.uk/">Bob</a>, <a href="http://www.larted.org.uk/~dom/">Dom</a>, and <a href="http://myweb.tiscali.co.uk/ivorw/">Ivor</a>. </p><p>P.S. If you read this, do say hello.</p> Kake 2007-06-10T23:47:08+00:00 journal Yet another reason for sleeping with me. http://use.perl.org/~Kake/journal/19312?from=rss As if there weren't enough already. I just added a feature to <a href="http://openguides.org/">OpenGuides</a> that I'm fairly sure nobody other than <a href="http://randomness.org.uk/">Bob</a> is ever going to use. He does however assure me that he doesn't just want me for my code. Kake 2004-06-17T05:17:07+00:00 journal Programmer wanted to join OpenGuides team http://use.perl.org/~Kake/journal/15142?from=rss <p>I'm looking for another programmer to join the <a href="http://openguides.org/">OpenGuides</a> project. In particular, I'm looking for someone to overhaul the install process and make it simpler. Any volunteers? Comment here or mail me at <a href="mailto:kake@earth.li">kake@earth.li</a> or mail the dev list at <a href="mailto:openguides-dev@openguides.org">openguides-dev@openguides.org</a>. Or do all three.</p><p>And please feel free to pass this advert on - stick it on perlmonks or livejournal or your local perlmongers mailing list or wherever.</p> Kake 2003-10-09T21:18:35+00:00 journal CGI::Wiki front-end http://use.perl.org/~Kake/journal/13348?from=rss <p>jerakeen is wonderful. He's writing <a href="http://jerakeen.org/programming/CGI-Wiki">a CGI::Wiki front-end</a> to work out of the box.</p><p>Oh yes, and <cite>Building Collaborative Web Applications with CGI::Wiki</cite> is now out, in this month's <a href="http://tpj.com/">The Perl Journal</a>, hurrah.</p> Kake 2003-07-09T10:32:48+00:00 journal The Open Guide to London http://use.perl.org/~Kake/journal/13078?from=rss <p>We finally moved <a href="http://openguides.org/london/">the open community guide to London</a> (previously known as grubstreet) from UseModWiki over to <a href="http://search.cpan.org/author/KAKE/OpenGuides/">OpenGuides</a>. Wow. It only took just under a year from deciding to rewrite UseModWiki in maintainable Perl to coming up with a complete specialised city guide application.</p><p>There are three Open Guides online now:</p><ul> <li> <a href="http://openguides.org/london/">The Open Guide to London</a> </li><li> <a href="http://www.ox.compsoc.net/oxfordguide/">The Oxford Guide</a> </li><li> <a href="http://the.earth.li/~kake/cgi-bin/openguides/vegan-oxford.cgi">The Vegan Guide to Oxford</a> </li></ul><p>More info is available at <a href="http://openguides.org/">the OpenGuides website</a> - if your city doesn't have an Open Guide then why not set one up? It will work right out of the box for any UK city (after you configure it, of course). For cities in other countries, all the features should work fine apart from the location stuff &#8212; offers of assistance in sorting that would be greatly appreciated.</p><p> <a href="http://search.cpan.org/author/KAKE/OpenGuides/">OpenGuides</a> is based on <a href="http://search.cpan.org/author/KAKE/CGI-Wiki/">CGI::Wiki</a> and was written by me, Earle Martin, and Ivor Williams.</p> Kake 2003-06-26T13:47:37+00:00 journal Incomplete bug reports. http://use.perl.org/~Kake/journal/12073?from=rss <p> <a href="https://rt.cpan.org/NoAuth/Bug.html?id=2445">CPAN RT #2445</a> is really confusing me. I'm partly expecting it to turn out to be some kind of <i>mystery shopper</i> gathering data for a new <a href="http://search.cpan.org/author/LBROCARD/Module-CPANTS/"> CPANTS</a> metric &#8212; maintainer patience in the face of &#8220;it doesn't work&#8221; bug reports.</p> Kake 2003-05-08T15:31:36+00:00 journal Sometimes you just have to stop whining... http://use.perl.org/~Kake/journal/11485?from=rss <p>Sometimes you just have to stop whining, and write some code. I was spending far too much time and energy telling everyone that I didn't understand any of this RDF and RSS stuff, so I spent the weekend stealing other people's code and writing <a href="http://search.cpan.org/author/KAKE/CGI-Wiki-Plugin-RSS-ModWiki/">an RSS plugin for CGI::Wiki</a> (see it <a href="http://the.earth.li/~kake/cgi-bin/cgi-wiki/wiki.cgi?action=rss">in action</a> on <a href="http://the.earth.li/~kake/cgi-bin/cgi-wiki/wiki.cgi?Home">my grubstreet clone</a>). Of course I still don't know what I'm doing, since <a href="http://search.cpan.org/author/KELLAN/XML-RSS/">XML::RSS</a> is doing all the actual work, but at least I'm doing it.</p><p> <a href="http://0xff.org/accretion.pl?Kake">My to-do list</a> now has a home in cyberspace, appropriately enough on a wiki. The thing I will probably spend most of my next few spare evenings on is carrying on with the <a href="http://chefmoz.org/rdf/elements/1.0/">ChefMoz</a> stuff that I'm doing <a href="http://esw.w3.org/topic/RestaurantRecommendation">in collaboration with danbri</a>.</p> Kake 2003-04-07T08:54:06+00:00 journal Making tests easier, finding things in London, and SnogWiki http://use.perl.org/~Kake/journal/11071?from=rss <p>I got around to writing <a href="http://search.cpan.org/author/KAKE/CGI-Wiki-Plugin-Locator-UK/">CGI::Wiki::Plugin::Locator::UK</a>. It's not as complicated as I was going on about in <a href="http://use.perl.org/~Kake/journal/10809">my last journal entry</a>, because it doesn't actually need write access to the database tables.</p><blockquote><div><p> <tt>use CGI::Wiki;<br>use CGI::Wiki::Plugin::Locator::UK;<br> <br>my $wiki = CGI::Wiki-&gt;new;<br>my $locator = CGI::Wiki::Plugin::Locator::UK-&gt;new(<br>&nbsp; &nbsp; wiki =&gt; $wiki );<br> <br>$wiki-&gt;write_node( "Jerusalem Tavern",<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"A good pub",<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$checksum,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ os_x =&gt; 531674,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;os_y =&gt; 181950<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );<br> <br># Just retrieve the co-ordinates.<br>my ( $x, $y ) = $locator-&gt;coordinates(<br>&nbsp; &nbsp; node =&gt; "Jerusalem Tavern" );<br> <br># Find the straight-line distance between two nodes,<br># in kilometres.<br>my $distance = $locator-&gt;distance(<br>&nbsp; &nbsp; from_node =&gt; "Jerusalem Tavern",<br>&nbsp; &nbsp; to_node&nbsp; &nbsp;=&gt; "Calthorpe Arms" );<br> <br># Find all the things within 200 metres of a given place.<br>my @others = $locator-&gt;find_within_distance(<br>&nbsp; &nbsp; node&nbsp; &nbsp;=&gt; "Albion",<br>&nbsp; &nbsp; metres =&gt; 200 );</tt></p></div> </blockquote><p>The only change I needed to make to <a href="http://search.cpan.org/author/KAKE/CGI-Wiki/">CGI::Wiki</a> was to put in an extra utility module to make it easier to write standalone tests that can be run at any time after the core distribution is installed. So you can write a CGI::Wiki plugin, <tt>use <a href="http://search.cpan.org/author/KAKE/CGI-Wiki/lib/CGI/Wiki/TestConfig/Utilities.pm">CGI::Wiki::TestConfig::Utilities</a> </tt>, and your tests can be run on every backend that was configured for testing last time CGI::Wiki was installed.</p><p>But, anyway, the Locator plugin. Feel the shininess! Want to see everything that <a href="http://grault.net/grubstreet/">grubstreet</a> knows about within 500 metres of Holborn Station? <a href="http://the.earth.li/~kake/cgi-bin/cgi-wiki/wiki.cgi?distance_in_metres=500&amp;id=Holborn+Station&amp;action=find_within_distance&amp;Go=Go">No problem.</a> </p><p> <a href="http://simon-cozens.org/">Simon</a> noted that the idea of linking wiki nodes using co-ordinates can be extended to all kinds of evilness, hence the title of this entry. <tt>$locator-&gt;find_chain_between</tt> <i>will</i> be written, but my primary motivation is really the more innocent one of <a href="http://grault.net/cgi-bin/grubstreet.pl?Pub_Crawls">pub crawling</a>.</p> Kake 2003-03-17T16:53:46+00:00 journal Plugin fever. http://use.perl.org/~Kake/journal/10809?from=rss <p>Plugins are cool. <a href="http://search.cpan.org/author/RCLAMP/File-Find-Rule/">File::Find::Rule</a> has them. Jerakeen likes them so much he wrote <a href="http://search.cpan.org/author/TOMI/Bot-BasicBot-Pluggable/">Bot::BasicBot::Pluggable.</a></p><p> <a href="http://search.cpan.org/author/KAKE/CGI-Wiki/">CGI::Wiki</a> is going to have plugins, too. 0.20 (which just escaped, some minutes ago) has (intentionally naive) metadata support, like so:</p><p> <code> $wiki-&gt;write_node( "Reun Thai", "A restaurant", undef,<br> { postcode =&gt; "W6 9PL",<br> category =&gt; [ "Thai Food", "Restaurant", "Hammersmith" ] } );<br> @nodes = $wiki-&gt;list_nodes_by_metadata( metadata_type =&gt; "category",<br> metadata_value =&gt; "Pub" );<br> </code> </p><p>(<a href="http://use.perl.org/~hex/">Earle</a> has been an absolute star, testing out pre-releases and encouraging me to get around to adding this stuff.)</p><p>Plugin thoughts, as posted to the grubstreet list:</p><p> <code> use CGI::Wiki;<br> use CGI::Wiki::Plugin::Location;<br> my $locator = CGI::Wiki::Plugin::Location-&gt;new;<br> my $wiki = CGI::Wiki-&gt;new;<br> $wiki-&gt;register_plugin($locator);<br> $wiki-&gt;write_node( "Jerusalem Tavern", "A good pub", $checksum,<br> { os_x =&gt; 531674, os_y =&gt; 181950 } );<br> # Just retrieve the co-ordinates.<br> my ( $x, $y ) = $locator-&gt;coordinates( node =&gt; "Jerusalem Tavern" );<br> # Find the distance between two nodes.<br> my $distance = $locator-&gt;distance( from =&gt; "Jerusalem Tavern",<br> to =&gt; "Calthorpe Arms" );<br> # Find the nearest five other things that our wiki knows about.<br> my @others = $locator-&gt;find_nearest( node =&gt; "Jerusalem Tavern",<br> number =&gt; 5 );<br> </code> </p><p>The way the plugins will get hold of this data is by providing an on_write method that'll get called every time $wiki-&gt;write_node is called, with arguments like so:</p><p> <code> $plugin-&gt;on_write( node =&gt; $node_name,<br> version =&gt; $version_number,<br> content =&gt; $content,<br> checksum =&gt; $checksum,<br> metadata =&gt; \%user_defined_metadata );<br> </code> </p><p>This will happen after the node data is all written, but before any lock is released. The user-defined metadata will already have been stored in the backend but it is available here for you to do what you will with it.</p><p>A plugin named, for example, CGI::Wiki::Plugin::Foo::Bar, will have free read-write access to any/all tables in the wiki's storage backend named like plugin_foo_bar* - for non-database backends if anyone ever writes one, there can be a similar namespace protection. So the CGI:Wiki::Plugin::Location plugin might store all its doo-dads in the 'plugin_location_os_coords' table, for example. This does mean that plugin authors have to care about differences between databases, but I'm strongly disinclined to try and invent a database-independent layer to sit on top of CGI::Wiki::Store::Database and cope with all possible imaginable circumstances.</p><p>Another plugin that I've put a small amount of thought into is one to cope with a hierarchy of categories.</p><p> <small>And can someone tell me which tags to use to put code in so I don't have to put &lt;br<nobr> <wbr></nobr>/&gt; everywhere please?<nobr> <wbr></nobr>:)</small> </p> Kake 2003-02-27T00:03:34+00:00 journal Writing the code was the easy part http://use.perl.org/~Kake/journal/10384?from=rss <p>Now I have to work out what to call it.</p><p>I've done a fair bit of work on a <a href="http://www.usemod.com/cgi-bin/wiki.pl">usemod</a>-style formatter for <a href="http://search.cpan.org/author/KAKE/CGI-Wiki/">CGI::Wiki</a>, and I've got something that would make a decent 0.01 release (when/if I get a couple of patches applied (no, this is not a nag, just an excuse for being so slow about getting it out)). As part of that, I needed to do something like <a href="http://search.cpan.org/author/ROSCH/URI-Find/">URI::Find</a>, but which was prepared for the URIs in the text to be wrapped in delimiters and to contain an optional title, since usemod formatting allows marking up external URLs like so:</p><p> <code>[http://use.perl.org/ the use.perl site]</code> </p><p>which will be turned into <a href="http://use.perl.org/">the use.perl site</a>.</p><p>So, the code exists &#8212; <a href="http://the.earth.li/~kake/URI-Find-Wrapped-0.01.tar.gz">URI::Find::Wrapped 0.01</a> &#8212; but I hate the name. It already confused a couple of people on IRC who assumed it had something to do with the way certain MUAs, newsreaders, etc, linewrap URIs if they're too long. It's got to go. But what do I call it instead?</p><p>Suggestions so far include:</p><ul> <li> <b>URI::Find::Delimited</b> &#8212; possibly my favourite so far.</li><li> <b>URI::Find::Bracketed</b> &#8212; also nice. Mark pointed out that people might want to use things other than brackets as delimiters, but maybe that should be discouraged, in which case using this name would be a <em>good</em> thing.</li><li> <b>URI::Find::Encapsulated</b> &#8212; I'm still thinking about this one.</li><li> <b>URI::Find::Engated</b> &#8212; it's a lovely word, but maybe a little obscure.</li><li> <b>URI::Find::Wiki</b> &#8212; I don't like this, because first of all it doesn't mean anything to people who don't know what a wiki is, and who's to say they won't have use for this code; and secondly the other thing I plan to do with this module (part of a content management thing at work) isn't a wiki.</li><li> <b>URI::Find::Markedup</b> &#8212; does what it says on the tin, but oh, if only &#8220;markedup&#8221; was actually a single word.</li><li> <b>URI::Find::Markup</b> &#8212; to me this sounds like something focused on finding markup rather than on finding URIs, and my module is definitely focused on the latter.</li><li> <b>URI::Find::Embedded</b> &#8212; I can see where this one is coming from, since the URIs are embedded within their delimiters, but I think &#8220;embedded&#8221; has the same problem as &#8220;wrapped&#8221; in that it means too many things.</li></ul><p>Help?</p> Kake 2003-02-04T12:31:10+00:00 journal Backwards (in)compatibility http://use.perl.org/~Kake/journal/9782?from=rss <p>I should have known this was going to bite me in the arse at some point. I needed to add another table to the database schema for <a href="http://search.cpan.org/author/KAKE/CGI-Wiki/">CGI::Wiki</a>, to store details of which nodes link to other nodes, so we can do backlinks properly (ie, find out all nodes which link to a given node).</p><p>This means anyone upgrading from a pre-0.15 version needs to re-run the setup script on their database, so they have the extra table. If they don't, then their code will complain and die when they try to run it on an existing database.</p><p>Unfortunately the setup scripts distributed with pre-0.15 versions of CGI::Wiki have the nasty side-effect of deleting all your data if run on a pre-existing database. This is fixed in 0.15, but it means you really have to be sure which versions of the modules you're running the scripts with, if you're trying to fix up your existing database to work with the latest CGI::Wiki.</p><p>This is documented in README, INSTALL, Changes and the pod of Wiki.pm &#8212; I hope that's going to save anyone from getting annoyed with me.</p><p>On the bright side, we do get real backlinks, which is very cool (<a href="http://devclue.com/">blair christensen</a>'s idea so thank him if you like it).</p><p>This links in to something I've been worrying about for a while &#8212; how do you pick the right balance between: </p><ul> <li>releasing early enough that people can use what you're doing, avoid reinventing wheels, and give you good ideas</li></ul><ul> <li>not releasing so early that you have an absolute nightmare trying to keep backwards compatibility when you add new features that you didn't have time to get in before your first public release</li></ul><p>The first release of CGI::Wiki took two months to escape from when I first thought of it, and I purposely delayed it until I'd decided how I was going to put version information in the tables. I hadn't even thought of backlinks at that point; it was only after I released it and blair mailed me that I realised they'd be useful. So even if I had delayed it longer, I'd still have the backwards compatibility problem now.</p><p>I'm actually less worried about changing the database schema than I am about changing the interface. At some point soon I'm going to start adding the capability to store metadata about the nodes, and right now I'm really feeling that the nodes should have been objects. Which one's neater:</p><p> <code> $node = $wiki-&gt;retrieve_node("Penderel's Oak");<br> $node-&gt;add_metadata( type =&gt; "Categories", data =&gt; "Holborn" );<br> $node-&gt;write; </code> </p><p>or</p><p> <code> %node_data = $wiki-&gt;retrieve_node("Penderel's Oak");<br> $wiki-&gt;write_node("Penderel's Oak", $node_data{content}, $node_data{checksum}, { type =&gt; "Categories", data =&gt; "Holborn"); </code> </p><p>Now guess which one I've saddled myself with.</p><p> However, reasons to be cheerful: </p><ul> <li>Lots of Wiki-related stuff has been happening on CPAN recently; <a href="http://search.cpan.org/author/KERW/Apache-MiniWiki-0.7/">Apache::MiniWiki 0.7</a>, <a href="http://search.cpan.org/author/MSERGEANT/AxKit-XSP-Wiki-0.05/">AxKit::XSP::Wiki 0.05</a> and <a href="http://search.cpan.org/author/CHROMATIC/Text-WikiFormat-0.5/">Text::WikiFormat 0.5</a> have all been uploaded in the past week. Wikis must be sexy again, or something.</li><li>I've got <a href="http://the.earth.li/~kake/cgi-bin/cgi-wiki/wiki.cgi">a reasonable emulation of a usemod wiki running under CGI::Wiki</a> &#8212; it copes with much of the usemod formatting style, plus it does things like redirects and backlinks-via-title-link (except it does them properly instead of just by searching on the page title).</li><li>chromatic was lovely and applied my patches to Text::WikiFormat just like he promised. Then I got all excited and sent him new ones<nobr> <wbr></nobr>:)</li> </ul><p> Current to-do list: </p><ul> <li>Get phrase searching working with Search::InvertedIndex</li><li>Look at the code Roger sent me ages ago (sorry Roger, I'm slack)</li><li>Release CGI::Wiki::Formatter::Usemod</li><li>Think about that damned metadata problem</li><li>Write CGI::Wiki::Formatter::Pod</li><li>Get my head round <a href="http://hummous.earth.li/pipermail/grubstreet/2003-January/000206.html">Jo's RDF/grubstreet ideas</a> </li><li>(very speculative) Think more on the recipe DTD/semantic web stuff I was talking about with Earle</li></ul> Kake 2003-01-05T23:54:07+00:00 journal Release in the middle of the night, don't release very often http://use.perl.org/~Kake/journal/9562?from=rss <p>I've just released CGI::Wiki 0.10 - the observant will notice there are a few versions missing since the last released one, 0.05. This wasn't just to save myself the trouble of uploading a few mistakes before finally getting it right, but to flag a small interface change. I have documented the change in the pod, the example, README and Changes, and added some temporary code to warn if it's called with obsolete parameters, but I still worry that this is going to annoy people. Oh well, I doubt anyone's using this live yet, anyway.</p><p>Next thing to do is finish the SQLite backend to Search::InvertedIndex &#8212; it's passing about two-thirds of its tests now. Then write a wrapper around Search::InvertedIndex to cope with phrase searching (already have an idea of how to do this, planted there by its author via email).</p><p>And at some point I need to prod chromatic again about my suggested changes to Text::WikiFormat -- I need to be able to support usemod-style formatting.</p><p>Finally there's my silly modules to attend to &#8212; I was foolish enough to write a screenscaper for <a href="http://grault.net/grubstreet/">a Wiki</a>, which although really quite useful for finding <a href="http://the.earth.li/~kake/cgi-bin/grubsearch.cgi">food</a> and <a href="http://the.earth.li/~kake/cgi-bin/pubsearch.cgi">drink</a> in London, does require quite a lot of babysitting as people change the site around me<nobr> <wbr></nobr>:) (Code is in the WWW::Grubstreet modules, not CPANned for obvious reasons, but <a href="http://the.earth.li/~kake/code/">available on my website</a>.)</p> Kake 2002-12-20T00:37:25+00:00 journal Search::InvertedIndex in action http://use.perl.org/~Kake/journal/9223?from=rss <p>A couple of hours ago I wrote about <a href="http://search.cpan.org/author/SNOWHARE/Search-InvertedIndex-1.12/">Search::InvertedIndex</a>. I wasn't expecting to get it done this quick, but I've just finished a first attempt at plugging it into <a href="http://search.cpan.org/author/KAKE/CGI-Wiki-0.05/">CGI::Wiki</a>. There's <a href="http://the.earth.li/~kake/code/CGI-Wiki-0.06pre01.tar.gz">a pre-release tarball</a> on my website.</p><p>It's pre-release because: </p><ul> <li>It only supports the MySQL backend of Search::InvertedIndex at the moment, and this is kinda pointless as anything other than an experiment, since DBIx::FullTextSearch works fine with MySQL, and can do phrase searching to boot;</li><li>Search::InvertedIndex is raising warnings &#8212; I think the uninitialised value ones are its fault rather than mine, since it's supposed to default to localhost if you don't give it a hostname for the database host; but I'm not so sure about the cleanup warnings.</li></ul><p>Tomorrow is soon enough to make it better, though.</p> Kake 2002-12-02T00:51:19+00:00 journal Search::InvertedIndex and related things http://use.perl.org/~Kake/journal/9222?from=rss <p>(See also <a href="http://london.pm.org/pipermail/london.pm/Week-of-Mon-20021125/015376.html">the London.pm version of this post</a>.)</p><p>On Sun 17 Nov 2002, Kate L Pugh &lt;kake@earth.li&gt; wrote:</p><blockquote><div><p>Is there anyone here who's used <a href="http://search.cpan.org/author/SNOWHARE/Search-InvertedIndex-1.12/">Search::InvertedIndex</a> and can point me to some working example code? I'm having great trouble getting my head around it.</p></div></blockquote><p>Just for completeness:</p><p>I seem to have finally figured it out. <a href="http://the.earth.li/~kake/code/Search-InvertedIndex-example.pl.txt">Here's an example script</a> if anyone else is interested. Note that script does give a warning about the database not being open when it comes to cleanup time. I've yet to look into that problem properly.</p><p>(Before anyone suggests it &#8212; yes, I will be sending a documentation patch to the maintainer as soon as I manage to get hold of him.)</p><p>All this poking about has also led me to notice that this module doesn't care about the position of keys within the data, so it won't be able to do proper phrase searching. (I would love to be proved wrong here.) What are people using for that kind of thing? <a href="http://search.cpan.org/author/TJMATHER/DBIx-FullTextSearch-0.71/">DBIx::FullTextSearch</a> can do it, but that's limited to MySQL. I can't make head or tail of <a href="http://search.cpan.org/author/ULPFR/WAIT-1.800/">WAIT</a>; does anyone know if that might suit my needs? And if so, could they point me to some idiot-proof documentation and/or examples?</p> Kake 2002-12-01T21:34:40+00:00 journal $self-&gt;_init; http://use.perl.org/~Kake/journal/9221?from=rss <p>Having resisted writing a journal for quite some time, I finally figured out a reason to cave in. I've been posting to the London.pm mailing list pretty much since I joined it, and seen lots of useful and interesting discussion. London.pm is however a somewhat limited community, so this is my chance to branch out a bit.</p><p>I'm very unlikely to post much here that I haven't also posted to places like <a href="http://london.pm.org/join/">London.pm</a> or <a href="http://www.earth.li/">earthlings</a>, but I will try to cross-pollinate where useful. If the duplication annoys anyone then, well, they don't have to read this. Oh, and I'm also very unlikely to post anything that isn't about Perl.</p> Kake 2002-12-01T21:24:11+00:00 journal