$VAR1 = {
'menu' => [
bless( {
'level' => 1,
'name' => 'books',
'url' => 'books',
'file' => '/louvin/home/karpet/blog/books',
'dir' => 1
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 1,
'name' => 'general',
'url' => 'general',
'file' => '/louvin/home/karpet/blog/general',
'dir' => 1
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 1,
'name' => 'music',
'url' => 'music',
'file' => '/louvin/home/karpet/blog/music',
'dir' => 1
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 1,
'name' => 'ny',
'url' => 'ny',
'file' => '/louvin/home/karpet/blog/ny',
'dir' => 1
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 1,
'name' => 'projects',
'url' => 'projects',
'file' => '/louvin/home/karpet/blog/projects',
'dir' => 1
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => '_intro',
'url' => 'projects/_intro',
'file' => '/louvin/home/karpet/blog/projects/_intro.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'ajax',
'url' => 'projects/ajax',
'file' => '/louvin/home/karpet/blog/projects/ajax.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'blas',
'url' => 'projects/blas',
'file' => '/louvin/home/karpet/blog/projects/blas.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'blue',
'url' => 'projects/blue',
'file' => '/louvin/home/karpet/blog/projects/blue.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'bug_or_feature',
'url' => 'projects/bug_or_feature',
'file' => '/louvin/home/karpet/blog/projects/bug_or_feature.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'catalyst',
'url' => 'projects/catalyst',
'file' => '/louvin/home/karpet/blog/projects/catalyst.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'chars',
'url' => 'projects/chars',
'file' => '/louvin/home/karpet/blog/projects/chars.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'cognition',
'url' => 'projects/cognition',
'file' => '/louvin/home/karpet/blog/projects/cognition.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'cpan',
'url' => 'projects/cpan',
'file' => '/louvin/home/karpet/blog/projects/cpan.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'cql',
'url' => 'projects/cql',
'file' => '/louvin/home/karpet/blog/projects/cql.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'craydoc',
'url' => 'projects/craydoc',
'file' => '/louvin/home/karpet/blog/projects/craydoc.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'crud',
'url' => 'projects/crud',
'file' => '/louvin/home/karpet/blog/projects/crud.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'cssprint',
'url' => 'projects/cssprint',
'file' => '/louvin/home/karpet/blog/projects/cssprint.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'data-dot-gov',
'url' => 'projects/data-dot-gov',
'file' => '/louvin/home/karpet/blog/projects/data-dot-gov.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'forms',
'url' => 'projects/forms',
'file' => '/louvin/home/karpet/blog/projects/forms.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'fp_talk1',
'url' => 'projects/fp_talk1',
'file' => '/louvin/home/karpet/blog/projects/fp_talk1.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'fp_talk2',
'url' => 'projects/fp_talk2',
'file' => '/louvin/home/karpet/blog/projects/fp_talk2.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'fp_talk3',
'url' => 'projects/fp_talk3',
'file' => '/louvin/home/karpet/blog/projects/fp_talk3.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'fp_talks',
'url' => 'projects/fp_talks',
'file' => '/louvin/home/karpet/blog/projects/fp_talks.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'free',
'url' => 'projects/free',
'file' => '/louvin/home/karpet/blog/projects/free.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'freecap',
'url' => 'projects/freecap',
'file' => '/louvin/home/karpet/blog/projects/freecap.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'frozenperl',
'url' => 'projects/frozenperl',
'file' => '/louvin/home/karpet/blog/projects/frozenperl.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'googlealerts',
'url' => 'projects/googlealerts',
'file' => '/louvin/home/karpet/blog/projects/googlealerts.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'great-american-hackathon',
'url' => 'projects/great-american-hackathon',
'file' => '/louvin/home/karpet/blog/projects/great-american-hackathon.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'hacker',
'url' => 'projects/hacker',
'file' => '/louvin/home/karpet/blog/projects/hacker.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'hiliter',
'url' => 'projects/hiliter',
'file' => '/louvin/home/karpet/blog/projects/hiliter.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'hp-psc-1310-printer',
'url' => 'projects/hp-psc-1310-printer',
'file' => '/louvin/home/karpet/blog/projects/hp-psc-1310-printer.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'http_flow',
'url' => 'projects/http_flow',
'file' => '/louvin/home/karpet/blog/projects/http_flow.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'ibmunicode',
'url' => 'projects/ibmunicode',
'file' => '/louvin/home/karpet/blog/projects/ibmunicode.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'ideas',
'url' => 'projects/ideas',
'file' => '/louvin/home/karpet/blog/projects/ideas.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'ishida',
'url' => 'projects/ishida',
'file' => '/louvin/home/karpet/blog/projects/ishida.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'iterm',
'url' => 'projects/iterm',
'file' => '/louvin/home/karpet/blog/projects/iterm.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'just-enough-c',
'url' => 'projects/just-enough-c',
'file' => '/louvin/home/karpet/blog/projects/just-enough-c.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'larry_pm',
'url' => 'projects/larry_pm',
'file' => '/louvin/home/karpet/blog/projects/larry_pm.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'latenights',
'url' => 'projects/latenights',
'file' => '/louvin/home/karpet/blog/projects/latenights.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'long_live_perl',
'url' => 'projects/long_live_perl',
'file' => '/louvin/home/karpet/blog/projects/long_live_perl.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'make-test',
'url' => 'projects/make-test',
'file' => '/louvin/home/karpet/blog/projects/make-test.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'memory',
'url' => 'projects/memory',
'file' => '/louvin/home/karpet/blog/projects/memory.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'mylibrary',
'url' => 'projects/mylibrary',
'file' => '/louvin/home/karpet/blog/projects/mylibrary.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'perl-accessors',
'url' => 'projects/perl-accessors',
'file' => '/louvin/home/karpet/blog/projects/perl-accessors.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'perl-at-peknet',
'url' => 'projects/perl-at-peknet',
'file' => '/louvin/home/karpet/blog/projects/perl-at-peknet.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'perl-marketing',
'url' => 'projects/perl-marketing',
'file' => '/louvin/home/karpet/blog/projects/perl-marketing.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'perl6-v-perl5',
'url' => 'projects/perl6-v-perl5',
'file' => '/louvin/home/karpet/blog/projects/perl6-v-perl5.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'perlisalive',
'url' => 'projects/perlisalive',
'file' => '/louvin/home/karpet/blog/projects/perlisalive.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'perlmyths',
'url' => 'projects/perlmyths',
'file' => '/louvin/home/karpet/blog/projects/perlmyths.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'php',
'url' => 'projects/php',
'file' => '/louvin/home/karpet/blog/projects/php',
'dir' => 1
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => '_intro',
'url' => 'projects/php/_intro',
'file' => '/louvin/home/karpet/blog/projects/php/_intro.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'namespaces',
'url' => 'projects/php/namespaces',
'file' => '/louvin/home/karpet/blog/projects/php/namespaces.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'orms',
'url' => 'projects/php/orms',
'file' => '/louvin/home/karpet/blog/projects/php/orms.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'post',
'url' => 'projects/php/post',
'file' => '/louvin/home/karpet/blog/projects/php/post.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'rant-one',
'url' => 'projects/php/rant-one',
'file' => '/louvin/home/karpet/blog/projects/php/rant-one.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'rant-two',
'url' => 'projects/php/rant-two',
'file' => '/louvin/home/karpet/blog/projects/php/rant-two.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'plack',
'url' => 'projects/plack',
'file' => '/louvin/home/karpet/blog/projects/plack.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'postgresql_on_osx',
'url' => 'projects/postgresql_on_osx',
'file' => '/louvin/home/karpet/blog/projects/postgresql_on_osx.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'profiling_perl',
'url' => 'projects/profiling_perl',
'file' => '/louvin/home/karpet/blog/projects/profiling_perl.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'question-as-a-patch',
'url' => 'projects/question-as-a-patch',
'file' => '/louvin/home/karpet/blog/projects/question-as-a-patch.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'rest',
'url' => 'projects/rest',
'file' => '/louvin/home/karpet/blog/projects/rest.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'ror',
'url' => 'projects/ror',
'file' => '/louvin/home/karpet/blog/projects/ror.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'search-tools',
'url' => 'projects/search-tools',
'file' => '/louvin/home/karpet/blog/projects/search-tools.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'sentences',
'url' => 'projects/sentences',
'file' => '/louvin/home/karpet/blog/projects/sentences.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'stateofsearch',
'url' => 'projects/stateofsearch',
'file' => '/louvin/home/karpet/blog/projects/stateofsearch.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'swish',
'url' => 'projects/swish',
'file' => '/louvin/home/karpet/blog/projects/swish',
'dir' => 1
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'api_docs',
'url' => 'projects/swish/api_docs',
'file' => '/louvin/home/karpet/blog/projects/swish/api_docs',
'dir' => 1
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'bindings',
'url' => 'projects/swish/bindings',
'file' => '/louvin/home/karpet/blog/projects/swish/bindings.pod',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'building-on-osx-10.6',
'url' => 'projects/swish/building-on-osx-10.6',
'file' => '/louvin/home/karpet/blog/projects/swish/building-on-osx-10.6.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'cpan100606',
'url' => 'projects/swish/cpan100606',
'file' => '/louvin/home/karpet/blog/projects/swish/cpan100606.pod',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'first-cpan-release',
'url' => 'projects/swish/first-cpan-release',
'file' => '/louvin/home/karpet/blog/projects/swish/first-cpan-release.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'frozen-perl-2010',
'url' => 'projects/swish/frozen-perl-2010',
'file' => '/louvin/home/karpet/blog/projects/swish/frozen-perl-2010.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'libswish3',
'url' => 'projects/swish/libswish3',
'file' => '/louvin/home/karpet/blog/projects/swish/libswish3.pod',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'original_idea',
'url' => 'projects/swish/original_idea',
'file' => '/louvin/home/karpet/blog/projects/swish/original_idea.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'progress',
'url' => 'projects/swish/progress',
'file' => '/louvin/home/karpet/blog/projects/swish/progress.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'progress2',
'url' => 'projects/swish/progress2',
'file' => '/louvin/home/karpet/blog/projects/swish/progress2.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'progress3',
'url' => 'projects/swish/progress3',
'file' => '/louvin/home/karpet/blog/projects/swish/progress3.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'progress4',
'url' => 'projects/swish/progress4',
'file' => '/louvin/home/karpet/blog/projects/swish/progress4.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'progress5',
'url' => 'projects/swish/progress5',
'file' => '/louvin/home/karpet/blog/projects/swish/progress5.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'swish-3-on-cpan',
'url' => 'projects/swish/swish-3-on-cpan',
'file' => '/louvin/home/karpet/blog/projects/swish/swish-3-on-cpan.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'swish-xapian',
'url' => 'projects/swish/swish-xapian',
'file' => '/louvin/home/karpet/blog/projects/swish/swish-xapian.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'swish3Proposal',
'url' => 'projects/swish/swish3Proposal',
'file' => '/louvin/home/karpet/blog/projects/swish/swish3Proposal.pod',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'swishprog',
'url' => 'projects/swish/swishprog',
'file' => '/louvin/home/karpet/blog/projects/swish/swishprog.pod',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'swishprog2',
'url' => 'projects/swish/swishprog2',
'file' => '/louvin/home/karpet/blog/projects/swish/swishprog2.pod',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'tennant',
'url' => 'projects/swish/tennant',
'file' => '/louvin/home/karpet/blog/projects/swish/tennant.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'tests',
'url' => 'projects/swish/tests',
'file' => '/louvin/home/karpet/blog/projects/swish/tests.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'tokenizer',
'url' => 'projects/swish/tokenizer',
'file' => '/louvin/home/karpet/blog/projects/swish/tokenizer.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'tools',
'url' => 'projects/swish/tools',
'file' => '/louvin/home/karpet/blog/projects/swish/tools.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'utf8.notes',
'url' => 'projects/swish/utf8.notes',
'file' => '/louvin/home/karpet/blog/projects/swish/utf8.notes.pod',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'whySwish3',
'url' => 'projects/swish/whySwish3',
'file' => '/louvin/home/karpet/blog/projects/swish/whySwish3.pod',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'xap_vs_ks',
'url' => 'projects/swish/xap_vs_ks',
'file' => '/louvin/home/karpet/blog/projects/swish/xap_vs_ks.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 3,
'name' => 'xapian10',
'url' => 'projects/swish/xapian10',
'file' => '/louvin/home/karpet/blog/projects/swish/xapian10.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'swished',
'url' => 'projects/swished',
'file' => '/louvin/home/karpet/blog/projects/swished.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'techno-babel',
'url' => 'projects/techno-babel',
'file' => '/louvin/home/karpet/blog/projects/techno-babel.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'term-color',
'url' => 'projects/term-color',
'file' => '/louvin/home/karpet/blog/projects/term-color.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'tests',
'url' => 'projects/tests',
'file' => '/louvin/home/karpet/blog/projects/tests.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'texttools',
'url' => 'projects/texttools',
'file' => '/louvin/home/karpet/blog/projects/texttools.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'user-models',
'url' => 'projects/user-models',
'file' => '/louvin/home/karpet/blog/projects/user-models.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'vbox',
'url' => 'projects/vbox',
'file' => '/louvin/home/karpet/blog/projects/vbox.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'vendor-client-video',
'url' => 'projects/vendor-client-video',
'file' => '/louvin/home/karpet/blog/projects/vendor-client-video.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'widefinder',
'url' => 'projects/widefinder',
'file' => '/louvin/home/karpet/blog/projects/widefinder.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'wrong',
'url' => 'projects/wrong',
'file' => '/louvin/home/karpet/blog/projects/wrong.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'xapian',
'url' => 'projects/xapian',
'file' => '/louvin/home/karpet/blog/projects/xapian.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 2,
'name' => 'yamllint',
'url' => 'projects/yamllint',
'file' => '/louvin/home/karpet/blog/projects/yamllint.txt',
'dir' => 0
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 1,
'name' => 'search',
'url' => 'search',
'file' => '/louvin/home/karpet/blog/search',
'dir' => 1
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 1,
'name' => 'spam',
'url' => 'spam',
'file' => '/louvin/home/karpet/blog/spam',
'dir' => 1
}, 'PodBlog::Model::Menu::Entry' ),
bless( {
'level' => 1,
'name' => 'stpaulbartour',
'url' => 'stpaulbartour',
'file' => '/louvin/home/karpet/blog/stpaulbartour',
'dir' => 1
}, 'PodBlog::Model::Menu::Entry' )
],
'blog' => [
bless( {
'format' => 'pod',
'text' => '=head1 libswish3
I have moved my last 2 years\' work over to the L<SVN repos|http://dev.swish-e.org/wiki/swish3> at swish-e.org.
Pretty significant for me, making the whole thing public now.
At this point, I\'m working under the following assumptions:
=head2 Tokenizing
Swish3 needs a UTF-8 aware tokenizer. This really means either a regexp library or a full UTF-8 character library.
A regexp library is far easier with regard to user configuration, easier even than Swish-e\'s *Characters
directives.
I have looked at standalone C libraries to accomplish this. The best bet standalone is
L<PCRE|http://www.pcre.org/> but building that for Windows is a little tricky. Swish-e offers optional PCRE
support, so there is a precedent.
For the time being, however, I am going to build using Perl, which already has full UTF-8 regexp support.
Why be Compatible when you can have the Real Thing?
Mostly I am using Perl because (a) I know it, (b) it\'s ideal for things like search and indexing,
and (c) I want to include a backend for KinoSearch.
There is nothing in the current libswish3 implementation that precludes using a different tokenizing scheme in
the future. For my purposes, Perl is just fine.
=head2 Swish3
I have set up Perl bindings for libswish3\'s configuation and parser functions in the SWISH::3 namespace.
The plan is to write a Perl
OO library to complement/wrap libswish3\'s C functions. That Perl library can in turn be used to write
applications. I\'ll be implementing a C<swish3> command line app in Perl using SWISH::Prog
and distributing it as part of SWISH::Prog.
=head2 TODO
There\'s still a long todo list. But there is progress, and the shape of what is to come.
',
'mtime' => 1173064461,
'name' => 'libswish3',
'url' => 'projects/swish/libswish3',
'file' => '/louvin/home/karpet/blog/projects/swish/libswish3.pod',
'id' => 'libswish3.pod'
}, 'PodBlog::Model::Blog::Entry' )
]
};