Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

jhorwitz (4227)

  {jeff} {at} {}

System administrator, Perl hacker, author of "Unix System Management Primer Plus" (SAMS 2003), mod_parrot, extproc_perl, Authen::Krb4, Authen::Krb5.

Journal of jhorwitz (4227)

Tuesday August 02, 2005
06:22 PM

mod_parrot 0.3

I'm pleased to announce the release of mod_parrot 0.3. The most notable changes include support for all apache hooks, autogeneration of request_rec methods, and a mod_pugs proof of concept. It also supports both the new (leo-ctx5) and old calling conventions.

You can download it here, or from subversion at If you decide to try it, please use a recent svn revision of parrot -- things change quickly around here!

Changes from 0.2:

  • Support for Parrot 0.2.2 (geeksunite)
  • Support new Parrot calling conventions (still backwards compatible)
  • Autogeneration of request_rec methods
  • All Apache hooks are implemented
  • The init file is no longer required to be PBC
  • Include a very simple mod_pugs proof of concept, with tests
  • ParrotTrace now accepts flags that are passed Parrot's trace facility
  • Parrot*Handler takes an optional language specifier
  • Use parrot-config.imc to fetch parrot configuration
  • no longer requires Apache::Test
  • ModParrot::NCI::backtrace returns a backtrace string
  • New APR::Table class
  • New Apache::RequestRec methods:
    • notes (returns APR::Table object)
    • main
    • prev
    • next
    • status
Monday July 18, 2005
01:26 PM

Almost at 0.3

mod_parrot development has been moving along at an almost Pugs-like pace* this past week, moving us ever closer toward our next release, 0.3. Almost all Apache hooks have been implemented (only filters are missing), and right now I'm working on some new examples. The coolest one is a minimal version of mod_rewrite written in PIR using PGE. Funky!

On another note, particle has joined the fun and will be helping to port mod_parrot to Windows. More power to him. :)

Also, thanks to Geoff for integrating Parrot support into Apache::Test. Now we can write true server side tests. Drinks all around!

* Developing at the speed of Pugs is an asymptotic process -- it can be approached, but never truly reached. ;-)

Thursday June 30, 2005
10:15 AM

There, here, there, here, there and back again

Finally back in Philly after YAPC. Had a great time. But Wednesday was not a great day to travel along the eastern seaboard. Matt and Heather were kind enough to drive Geoff and myself to the airport from the hotel. After a lot of traffic, we got there around 5 I think -- 3 hours before our flight left at 8. When we got to the ticket counter, the agent said our flight had been canceled due to weather, and there was another one boarding *now* that we were now booked on. So we rush over to customs, but the line was predictably long. After making it through and getting to the gate, we'd missed our flight by 10 minutes. So we were booked on *another* flight, which was supposed to have left earlier, but was now delayed until...8:00 -- right back where we started! On the way to the gate we saw Havana Mike and Jerry Gay, who we'd said our goodbyes to at the hotel. Mike was delayed too, so we went up and grabbed some dinner.

Back at the gate, our flight had been pushed back to at least 8:30. At 8:00 the gate agent announced that they were unsure when our plane would be released, so they were bringing back another flight to Philly that had been sitting on the runway for 3 hours, and kicking off all the connecting passengers who were going to miss their flights anyway. So we got yet another set of boarding passes and headed across the terminal to the other gate.

As the local Philly passengers got off the plane to stretch a bit, we saw Jim Wismer from Turns out the flight sitting on the runway for 3 hours was the one we missed by 10 minutes. Ouch!

A few minutes before boarding the gate agents noticed an unattended piece of luggage a few feet from me. As we were boarding, they cleared the row of seats. In the jetway a security guard came up the stairs from the ground with a bomb sniffing dog! But that's the last I saw of it, as we were now stepping onto the plane. Shortly after we took off, finally heading back home.

When it was all said and done, we arrived in Philadelphia an hour behind schedule. That was *way* too much work for only getting in an hour late!

Thursday May 05, 2005
05:23 PM

I am lambda, hear me code

Found my lambda-fu today and made my first significant contribution to Pugs: eval_parrot. This lets Pugs execute arbitrary IMC code and enabled Autrijus to add a Parrot backend to Pugs. This project gets more interesting every day.

Anyway, that's my good deed for the day. Now for some dinner...

Monday May 02, 2005
03:35 PM


Just booked everything for YAPC. Sadly, I was shut out of both OSCON and YAPC with my talk proposals, but I'm heading up to Toronto anyway and having a damn good time! :)
Wednesday April 27, 2005
03:14 PM

mmmm...pugs goodness

Actingly quickly on a feature request, Autrijus resurrected the Parrot backend for Pugs and implemented subroutines in a matter of hours. That means objects (or lack thereof) are the only thing standing in the way of mod_pugs.

However, with subroutine support, I can now create a very minimal proof-of-concept mod_pugs that just spews content instead of interacting with the Apache API directly. This will also give me the chance to create the framework for mod_pugs so it's ready once objects are.

Progress is a good thing!

Sunday April 03, 2005
10:27 AM

Fortune for you, Mr. Dallas

Seen in my fortune cookie on Thursday:

You have an unusual equipment for success, use it properly.

Monday March 28, 2005
12:49 PM

mod_parrot 0.2 released

Get your mod_parrot here.
  • Formal support for Parrot 0.1.2 "Phoenix"
  • New handlers: authz, access, open_logs
  • Added test to detect mod_parrot NCI signatures in parrot
  • Implement HLL layer for language specific handler wrappers
  • PIR HLL handler passes request_rec as first argument to Parrot handler
  • Replaced global per-process context with thread-safe context pool
  • New Apache::RequestRec methods:
    • hostname
    • user
  • log severity constants in Apache::Constants
  • more design documentation, updated examples
Tuesday March 22, 2005
11:14 AM

$self->recover or die;

I've been exremely sick these past few weeks with a nasty stomach virus and various complications, but this week I'm finally feeling closer to 100% than I've felt in a long time. I couldn't eat much more than two full meals over the course of a week and half, and even though I dropped a few pounds I was looking to lose anyway, it's not a diet I recommend.

I've completely ignored my projects like mod_parrot while I was sick, and now it's time to get back on track. I eased into things yesterday by attending the philly perlmongers social outing, which was fun, and it was just good to be out of the house!

Anyway, time to get back to work. It's nice to be able to concentrate on something other than my poor digestive system for once!

Saturday February 26, 2005
02:27 PM

die if $address =~ /box/;

My cell phone finally died last night and by some miraculous alignment of the planets, today was the first day I was eligible for a free upgrade phone. So I go to order my new phone on Verizon's site, and as part of the last step, I enter my shipping address. It bombs out, saying they can't deliver to a P.O. box. Um, I live on a street, not a P.O. box!

After retrying 2 or 3 times, I realized what was happening. My street name is Boxford, and some idiot programmer decided that anything with the string "box" in it was a P.O. box. Brilliant!

Anyway, instead of taking hours to explain this problem to some customer service rep who doesn't deal with website problems, I went to the nearest Verizon store and got my phone there. I ended up paying $20 more for an accessory package (car charger, etc.) that was cheaper online, but I'll be writing Verizon to complain about that.