$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' => 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' => 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' => 'txt',
'text' => 'iTerm
I\'ve suffered with the native Mac OS X Terminal app for over five (six?) years now. I much
prefer the Konsole terminal in KDE on Linux, or even the Gnome terminal. They have tabbed
terms, which helps considerably when I have dozens of terms open. The OS X Terminal app
has always been adequate, but never Really Good.
Over the years I\'ve tried all the alternatives: GLterm, iTerm, and all the Java options.
iTerm came closest to what I wanted but was too slow on my old 1Ghz G4 powerbook.
But now -- now! -- I have a new Intel MacBook Pro. I am happy to say that iTerm is Perfect!
Or at least, so much better than Terminal that I am just giddy.
Geek thrills.
<b>Update 26 Sept 2007:</b>
iTerm is a memory hog. All those tabbed sessions started gobbling ram.
But all is not lost. I discovered that KDE is now native on OS X 10.4. So now
<a href=\'http://ranger.users.finkproject.org/kde/index.php/Home\'>I can use konsole on Linux and OS X.</a>
It has a nice split screen feature and more customizations than Terminal or
iTerm. But it does not let me use many of the same native Mac keyboard
shortcuts. Copy/paste (for example) are cmd-shift-c/cmd-shift-v, which is
awkward to remember. And the convenient highlight/middle-click shortcut does
not appear to work either. Too bad.
Why can\'t I have my terminal AND code too?
<b>More update:</b>
Looks like OS 10.5 (Leopard) will have <a
href=\'http://www.apple.com/macosx/leopard/technology/unix.html\'>Terminal 2.0 with tabs</a>. It remains to
be seen whether I\'ll shell out the $$ for the OS just for that. I might.
',
'mtime' => 1190857626,
'name' => 'iterm',
'url' => 'projects/iterm',
'file' => '/louvin/home/karpet/blog/projects/iterm.txt',
'id' => 'iterm.txt'
}, 'PodBlog::Model::Blog::Entry' )
]
};