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 ]

Journal of IlyaM (2933)

Monday September 08, 2003
04:11 AM

Scary moment ..

.. is when you realize that you have forgot a password for your GPG private key which you have been using quite actively for 3 years. Memory plays dirty tricks sometimes - I was able to recall this password 15 mins later.
Sunday September 07, 2003
12:47 PM

META.yml, Module::Build and dh-make-perl

Posting here just to keep this knowledge somewhere. To make dh-make-perl work with Module::Build based Perl module distros you need:
  • Apply this patch to enable dh-make-perl to retrieve module name and version information from META.yml.
  • After running dh-make-perl tweak file debian/rules. Replace

    $(PERL) Makefile.PL INSTALLDIRS=vendor


    $(PERL) Build.PL installdirs=vendor


    $(MAKE) install PREFIX=$(TMP)/usr


    ./Build install destdir=$(TMP)

I'd add native Module::Build support to dh-make-perl but this code badly needs refactoring before adding more code.

Thursday September 04, 2003
03:44 AM

RT/Jabber integration

Just got this idea - it would be quite neat if RT ticket watchers could recieve reply/comment notifications via Jabber (or via other IMs probably though it is less interesting for me as we standardize on Jabber at work).
Friday August 29, 2003
08:01 AM

False Security

What I don't get is why many ISPs don't allow ssh access to their boxes while at same time they allow you to run your own cgi scripts. If you can run arbitrary CGI then you can run arbitrary code on the server even without shell.

On similar note why SourceForge disallow SSH access to their CVS servers when they allow you to modify files in CVSROOT? If I can add commit and loginfo scripts there I can run arbitrary code on the server too.

For sysamins: better not waste your time on false security measures especially when it makes life of legimate users harder.

Thursday August 07, 2003
09:14 AM

ExtUtils::MakeMaker and CGI::Carp

Today when installing a module on a test server I've been surprised when 'perl Makefile.PL' printed something like:

$ perl5.6.1 Makefile.PL
[Thu Aug  7 15:09:35 2003] Makefile.PL: Warning: prerequisite Email::Valid failed to load: Can't locate Email/ in @INC (@INC contains: /home/perl-5.6.1/lib/5.6.1/i686-linux /home/perl-5.6.1/lib/5.6.1 /home/perl-5.6.1/lib/site_perl/5.6.1/i686-linux /home/perl-5.6.1/lib/site_perl/5.6.1 /home/perl-5.6.1/lib/site_perl .) at (eval 5) line 3.
[Thu Aug  7 15:09:35 2003] Makefile.PL: Warning: prerequisite MIME::Lite failed to load: Can't locate MIME/ in @INC (@INC contains: /home/perl-5.6.1/lib/5.6.1/i686-linux /home/perl-5.6.1/lib/5.6.1 /home/perl-5.6.1/lib/site_perl/5.6.1/i686-linux /home/perl-5.6.1/lib/site_perl/5.6.1 /home/perl-5.6.1/lib/site_perl .) at (eval 6) line 3.
Writing Makefile for FillForm

Turned out it is because CGI::Carp was listed in PREREQ_PM section.

Monday August 04, 2003
11:58 AM

while() { ... } considered harmful continued ...

For background see this perlmonks node.

Seeing a recent patch at bug report #23141 makes me wonder if doing local $_; while() { ... } will stop working too in general case. In other words if I get things correctly with this patch no CPAN module can use $_ even if it is localized because $_ may be readonly or have some magic attached to it and local will not remove it. Looks like using local with global variables is almost always bad idea unless callee can allow certain assuptions about callers (what is seldom a case for, say, CPAN modules).

Thursday July 31, 2003
02:46 PM

Another developer release of Data::Dumper


has entered CPAN as

  file: $CPAN/authors/id/I/IL/ILYAM/Data-Dumper-2.12_02.tar.gz
  size: 37466 bytes
   md5: 5bf08437a88003604a95cc08418d6b57

This release fixes build errors on 5.6.x with ithreads. Thanks to crazyinsomniac for the bug report. Hopefully there will be no other bug reports and I'll be able to rerelease 2.12_02 as a stable version 2.121.

11:56 AM

I promise ...

I will not hurry and I will not press 'submit' before I correct all typos and other errors in my posts. What a shame to see all these errors when they would not exist in first place if I were to spend 2 mins more on each my post.
04:08 AM

HTML::Mason with HTML::Template

MasonX::Request::HTMLTemplate have been released on CPAN and .. I fail to see the point.

I can understand why somebody may want to use Perl as a templating language - if you are in this camp you may like HTML::Mason (I used to like it but I switched to TT2 now). But using HTML::Mason as a framework to maintain Perl code for anything other than templating tasks is just nonsence. I just don't undestand why. Code in Mason components is harder to unit test than Perl modules, it takes more effort to structure your code - in ordinary Perl you have packages and subroutines, in Mason you can emulate something like this with components and subcomponents but it takes more effort and finally Mason has quite confusing OOP model which may be ok for templates but is not really up to task for anything complex. How can it be easier to put your Perl code in Mason components instead of Perl modules?

Friday July 25, 2003
05:43 AM

PHP annoyance

One reason I extreamly dislike PHP is that they have no analog of CPAN which results in a lot of staff being put in core. Which in turn results being practically imposible to develop backwards compatible code. I.e. if you say develop with 4.2.x, then in each core lib you use there are zillion new features which are not present in former versions. And you occasionally use new features even if you want to stay backward compatible just because there are so many of them.

With perl it's core is much smaller and many core libs have standalone versions avialable from CPAN which still work with old perls. Basically I can keep in my head list of all things I should I avoid if I want to be backward compatible even back to 5.00503. Try this with PHP.