It's been a long week, culminating today in Frozen Perl 2010, a Perl conference for and by Perl hackers, here in the Twin Cities. I gave two talks at today's conference,
one on Swish3 and
the other on Devel::NYTProf and
Search::Tools. Both talks seemed well-received.
In the process of preparing the talks I also released a few new, related
modules to CPAN this week:
Search::Query now has support for SQL and SWISH Dialects. I hope to add
KinoSearch and Xapian dialects soon. The Search::Query::Parser now has
(undocumented and experimental) support for range queries, so that you can say:
foo=( 1..4 )
and that'll be expanded to
foo=( 1 OR 2 OR 3 OR 4 )
when the Dialect query object is stringified. Handy for things like ranges of
dates, which is how I am using it as $work.
Search::Tools, SWISH::API::*
New releases of these older modules as well, with some bug fixes and
refactoring to support the Search::Query.
So, yes. A busy week.
I enjoyed hearing other folks' talks today at Frozen Perl. There was a good
variety: pack/unpack, Unicode, i18n and best practice-related presentations. I
met some new people, renewed friendships with folks I already knew, and drank
lots of free coffee. The cookies were good too.
So I don't surf youtube very much. Or rather, only when my kids are wanting to watch
Wallace and Gromit trailers. So I'm always waaaay behind the times. That said, this video
is a riot.
For the last ten years I have used the color #E3BF70#fddc8e (hex) as my terminal background color. It's a darkish amber color
that is very easy on the eyes. I'm recording it here because every year or so I have to set up a new system
and always have to eyeball the settings till I get something close to what I am used to.
Update: 26 Jan 2009
Here's my .Xdefaults file for my xterm under X11 on OS X.
Contextual Query Language is defined
by the Library of Congress. I discovered it via CQL::Parser.
Brian Cassidy is involved, so it must be good.
I immediately thought "oh shit. Now my new Search::Query module feels late-to-the-party." But on further reading,
I think a CQL dialect in Search::Query makes some sense.
Search::Query is a SQL::Translator-like module for free-text search. I coded it up this week after brewing the idea for some many months. I'm imagining it now as a next-generation Search::QueryParser::SQL, for contexts beyond SQL. Example: I have a query string that works with Xapian and want to convert it to one that works with Swish-e 2.x or KinoSearch. Just parse it with Search::Query::Parser and assign it a target dialect and then call $query->stringify to get the translated version out.
Saw David Rawlings and Gillian Welch in concert just before Christmas.
Heard this interview just now. I like
the record even more after hearing Dave talk about it.
I know the people who read this blog generally do not care about Perl at all (hi Mom!)
but I spend a great deal of time writing code in the language and talking with other
members of the Perl community about our common projects, and so like anyone who has lived
in the Perl world for any length of time, I have an opinion about Perl6. For those not
in the know, Perl5 is the current version of Perl and has been around for over 10 years.
Perl6 is the next major version evolution, but it has been in development for nearly the same
length of time. The problem is that 10 years is a long time for a computer language release
to gestate and many folks whose opinions count (i.e. managers) see that lack of a release
as a sign that Perl Is Dead and not a good choice for their next programming project. So (the
argument goes) Perl6's vaporware status makes it hard for Perl5 programmers to find jobs, because
the "if it ain't new it ain't sexy" ethos of technology counts for more than it should with those
making the money decisions.
The real problem isn't that Perl6 hasn't been released. The real problem is the name Perl6. Perl6
is not a single executable "thing" like Perl5 is; it's an umbrella for several different projects. Right
now I can sit down at just about any modern Unix-like computer and type 'perl' and write some code
that runs. Perl6 doesn't work quite that way. It's a whole new language, not just a major revision to
an existing language. So the version number 5 vs 6 is misleading. That's the problem. Perl is alive and well.
Perl5 continues to be maintained and developed. I get lots of work done every day using it.
Reading through Matt Trout's blog
just now I found this wonderful quote:
Because in free software a question in the form of a well thought out patch is one that almost always gets a constructive answer.
Yes. That's just it. A patch -- real, applicable code -- indicates genuine forethought and effort and I will reward
that kind of conversation every time with equal effort.
So I've been playing in this country band for the last several years, purely for fun. Our cardinal rule
as a band is "do not overprepare" which means we might practice for an hour or so ahead of a gig,
but rarely more than that. The second rule is "you may not sing a song you wrote" which sounds funny till
you realize that nearly everyone in the band is a songwriter.
It's a fun bunch of folks and the vibe is definitely low key.
The Xapian backend for Swish3 has been getting some love lately.
The swish_xapian command line tool has most of the features now that swish-e v2.x does.
I recently reactivated my free yahoo.com email account so that I could test something for $work.
I signed up for it 12 years ago, but stopped using it a couple of years later when I got my own
domain @peknet.com. So yahoo finally deactivated it. All I had to do was click a couple of buttons
to reactivate account, so that was painless. All my mail was, understandably, deleted.
Within 60 seconds of reactivating it, while I watched, I got one new message. In my Spam bucket.
Hilarious.
I'd been keeping an email with a link to Ovid's journal article
about reviewing Perl Training websites. Now I've deleted the email. But the link was worth keeping here.