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 ]

triv (2745)

  reversethis-{gro.virt} {ta} {lrep.esu}

I hack perl for, I maintain Net::DNS, I play drums in a band.. I do this, I do that.. yada yada yada...

Journal of triv (2745)

Monday December 01, 2003
09:36 PM

Cygwin/Windows Gurus Needed

There is some hazy areas in Net::DNS. Neither I nor the original author have access to a windows machine, and there are some questions that we need to get answered. See this RT ticket for the background.

Basically, the questions are:

  • Does IO::Select work correctly on windows (and cygwin for that matter, though it appears that it does)?
  • Does using UPD for sending and receiving DNS packets work properly on windows? I'm rather sure it should.
  • Does IO::Socket::INET's Timeout parameter work correctly on windows?

Net::DNS is used behind the scenes in several popular perl applications (SpamAssassin comes to mind). Net::DNS needs to run better on windows, and I can't do that without people's help. So if you know the answers to those questions, or you have the means to find out, please contact me.

Saturday November 30, 2002
01:50 PM

Random Things

I keep a livejournal that I update much more often. Perhaps I should merge this with that. Or maybe get a copy of moveable type going....

I really wish that BBEdit had syntax highlighting for Mason components. I looked into doing it myself, but I quickly became scared of the idea. Maybe I can hire someone that knows how to write those things to make a Mason one.

I had a thought that Time::tm objects should have an overloaded stringify that return something like scalar localtime. I couldn't think of an efficient way to do it, though localtime has the dirty little secret of just doing an indirect sprintf to create that string... hrrrm...

Sunday November 17, 2002
04:05 PM


BBEdit has long been my favorite program of any category. Version 7.0 has some pretty nice CVS integration features. I just wish I could put a newline in the log message when I do a commit. I email barebones, and they said they would at that to the next version. I suppose that's enough to keep me using BBEdit ;).
Friday November 08, 2002
03:52 AM


I have a minor pet peeve.

Someone writes a really cool patch with includes a cool features that I want in my module. However, in the notes for the patch you'll get something like this (I'm totally making this up, no real people were harmed in the creation of this rant):

Here's my patch to make Foo transactions non-blocking if you're running under ithreads. I also reorganized the test suite so that it makes more sense.

Linus was right on one point; short, concise patches are best. I didn't realize that till I started being the person that accepted the patches, not the person sending them.

Friday October 04, 2002
06:29 AM


Someone just sent me a rather long rant complaining that Net::DNS requires parrot. Logic as follows:
  1. Net::DNS requires Test::More
  2. If you search for Test::More on, the 8th result (also the result directly below the correct result) is parrot.
  3. Therefore, Net::DNS requires parrot.

With some pride, I announce that I have released the first mainstream module for perl6. :-D

Saturday August 10, 2002
01:25 AM

POE can do everything, POE6 will do more or err....

I had the moment of light the other day. I was playing around with the project and Casey and myself are currently working on, an asynchronous credit card processor in POE. Clouds parted, trumpets sang, and POE suddenly made sense to me. Sessions are like threads, components are like little magic boxes, and the kernel is god of this little world. Good fun.

The processor was pretty simple, we just hacked up Buisness::OnlinePayment::AuthorizeNet to use LWP instead of Net::SSLeay, that way we can pass a HTTP::Request object that Buisness::OnlinePayment::AuthorizeNet generates to POE::Component::Client::HTTP and then send the HTTP::Response object back to Buisness::OnlinePayment::AuthorizeNet. CPAN baby, CPAN! Name another language where you can build an asynchronous creditcard processor in a day!

I also noticed that // is not feeling well in bleedperl. Due to the nature of the perl syntax, the tokenizer doesn't ways know if you mean // in the err sense, or // in the regex sense. This means that my $foo = shift // 0; does not work. I personally think it is fine for shift < 5 not to work, but a large number of people are going to expect that they can just use // like ||.

The thread on p5p regarding this has stopped with Larry saying that they just avoiding the problem by making // only the err operator in perl6, it is not a valid regex.

Sunday August 04, 2002
02:54 PM

Quote of the Day

From Schwern, on p1p:

No syntax changes. perl5-porters is ten years down, first swirling vortex on your left.

Saturday August 03, 2002
11:58 PM

Mr West!

I know nothing about POE, but I feel I should. Luckily Casey is going to be coming out to my place to work on projects, and he does! There's a slight PITA factor with this, as I found out today that Net::SSLeay and OS X do not play well together. Just have to fiddle with it on the FreeBSD machine.

Ohhh... and we hired Casey too. ;-)

Thursday July 18, 2002
07:08 AM


I've been working on getting Net::DNS::RR::new_from_string faster (new version is first):

timethis 100000:  0 wallclock secs ( 0.75 usr +  0.00 sys =  0.75 CPU) @ 133333.33/s (n=100000)
timethis 100000:  3 wallclock secs ( 2.65 usr +  0.00 sys =  2.65 CPU) @ 37735.85/s (n=100000)

Tuesday July 02, 2002
09:57 PM

Apartment evilness

My apartment's air connditioning seems to have died. Hopefully tomorrow it will get fixed, but until then I have found a few fans and gotten some airflow going. Until this gets fixed, I have a feeling that real work will be interupted. Ahh well, I need to catch up on real life, non-geeky stuff anyways.

There will be a new version of Net::DNS out soon, as soon as I rewrite Net::DNS::RR::new_from_string() to not use $'. Matts found a patch to do this a while back, but it's sloooow. Slinging arrays around is not always faster than just using $'. I have a gut feeling that just using a regex to do all the work in one shot is best. Ditch the loop all together.