<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>jozef.kutej.net</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/" />
    <link rel="self" type="application/atom+xml" href="http://jozef.kutej.net/atom.xml" />
    <id>tag:jozef.kutej.net,2009-09-25://4</id>
    <updated>2010-03-10T13:01:02Z</updated>
    <subtitle>(1) It Has To Work.
--First Networking Truth, RFC 1925</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.23-en</generator>

<entry>
    <title>eq_deeply with Data::Dumper</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/03/eq-deeply-with-datadumper.html" />
    <id>tag:jozef.kutej.net,2010://4.116</id>

    <published>2010-03-10T12:56:39Z</published>
    <updated>2010-03-10T13:01:02Z</updated>

    <summary>From http://dev.catalystframework.org/svnweb/bast/revision?rev=8823 use Test::Deep qw(eq_deeply); ... return eq_deeply($bind_ref1, $bind_ref2); vs use Data::Dumper; ... local $Data::Dumper::Useqq = 1; local $Data::Dumper::Sortkeys = 1; return Dumper($bind_ref1) eq Dumper($bind_ref2);...</summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<p>From <a href="http://dev.catalystframework.org/svnweb/bast/revision?rev=8823">http://dev.catalystframework.org/svnweb/bast/revision?rev=8823</a></p>

<pre>
use Test::Deep qw(eq_deeply);
...
return eq_deeply($bind_ref1, $bind_ref2);
</pre>

<p>vs</p>

<pre>
use Data::Dumper;
...
local $Data::Dumper::Useqq = 1;
local $Data::Dumper::Sortkeys = 1;
return Dumper($bind_ref1) eq Dumper($bind_ref2);
</pre>]]>
        
    </content>
</entry>

<entry>
    <title>print out all dependencies of an unpacked distributions that are (not) packaged for Debian</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/03/print-out-all-dependencies-of-an-unpacked-distributions-that-are-packaged-for-debian.html" />
    <id>tag:jozef.kutej.net,2010://4.115</id>

    <published>2010-03-09T09:47:37Z</published>
    <updated>2010-03-09T09:55:12Z</updated>

    <summary><![CDATA[ # print out all dependencies of an unpacked distribution that are packaged for Debian perl -MDebian::Apt::PM -MModule::Depends -le \ &nbsp; &nbsp;&#39;$apm=Debian::Apt::PM-&gt;new();$md=Module::Depends-&gt;new-&gt;dist_dir(&quot;.&quot;)-&gt;find_modules; %r=(%{$md-&gt;requires},%{$md-&gt;build_requires}); while (($m, $v) = each %r) { $f=$apm-&gt;find($m, $v); print $f-&gt;{&quot;min&quot;}-&gt;{&quot;package&quot;} if $f-&gt;{&quot;min&quot;} }&#39; \ &nbsp; &nbsp;|...]]></summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="debian" label="debian" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<p><small><code>
# print out all dependencies of an unpacked distribution that are packaged for Debian<br/>
perl -MDebian::Apt::PM -MModule::Depends -le \<br/>
 &nbsp; &nbsp;&#39;$apm=Debian::Apt::PM-&gt;new();$md=Module::Depends-&gt;new-&gt;dist_dir(&quot;.&quot;)-&gt;find_modules; %r=(%{$md-&gt;requires},%{$md-&gt;build_requires}); while (($m, $v) = each %r) { $f=$apm-&gt;find($m, $v); print $f-&gt;{&quot;min&quot;}-&gt;{&quot;package&quot;} if $f-&gt;{&quot;min&quot;}  }&#39; \<br/>
 &nbsp; &nbsp;| sort \<br/>
 &nbsp; &nbsp;| uniq \<br/>
 &nbsp; &nbsp;| xargs echo apt-get install<br/>
<br/>
# print out all dependencies of an unpacked distribution that are not packaged for Debian<br/>
perl -MDebian::Apt::PM -MModule::Depends -le \<br/>
 &nbsp; &nbsp;&#39;$apm=Debian::Apt::PM-&gt;new();$md=Module::Depends-&gt;new-&gt;dist_dir(&quot;.&quot;)-&gt;find_modules; %r=(%{$md-&gt;requires},%{$md-&gt;build_requires}); while (($m, $v) = each %r) { $f=$apm-&gt;find($m, $v); print $m, &quot; &quot;, $v if not $f-&gt;{&quot;min&quot;}  }&#39;<br/>
</code></small></p>]]>
        
    </content>
</entry>

<entry>
    <title>Module::Name-&gt;method</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/02/modulename-method.html" />
    <id>tag:jozef.kutej.net,2010://4.112</id>

    <published>2010-02-25T08:29:45Z</published>
    <updated>2010-02-25T08:37:43Z</updated>

    <summary> package Module::Name; use Moose; use Scalar::Util &apos;blessed&apos;; has &apos;verbose&apos; =&gt; ( is =&gt; &apos;rw&apos;, isa =&gt; &apos;Int&apos;, default =&gt; 1 ); sub method { my $self = shift; $self = $self-&gt;new() if not blessed $self; print &quot;hell world\n&quot; if...</summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<pre>
package Module::Name;

use Moose;
use Scalar::Util 'blessed';

has 'verbose' => ( is => 'rw', isa => 'Int', default => 1 );

sub method {
    my $self = shift;
    $self = $self->new()
        if not blessed $self;

    print "hell world\n"
        if $self->verbose;

    return;
}

1;
</pre>

<p>This allows "method" to be called in two ways:</p>

<pre>
Module::Name->method;
Module::Name->new(verbose => 0)->method;
</pre>
]]>
        
    </content>
</entry>

<entry>
    <title>commit diff to the file with patch...</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/02/commit-diff-to-the-file-with-patch.html" />
    <id>tag:jozef.kutej.net,2010://4.111</id>

    <published>2010-02-24T19:38:07Z</published>
    <updated>2010-02-24T19:41:23Z</updated>

    <summary> @@ -1,25 +1,25 @@ -diff -Naur a/DhMakePerl.pm b/DhMakePerl.pm ---- a/DhMakePerl.pm 2010-02-15 17:28:42.000000000 +0100 -+++ b/DhMakePerl.pm 2010-02-15 17:17:55.000000000 +0100 +diff -Naur DhMakePerl.orig/DhMakePerl.pm DhMakePerl/DhMakePerl.pm +--- DhMakePerl.orig/DhMakePerl.pm 2010-02-19 13:36:58.000000000 +0100 ++++ DhMakePerl/DhMakePerl.pm 2010-02-22 18:40:12.000000000 +0100 @@ -65,6 +65,8 @@ use WWW::Mechanize ();...</summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Programming" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<pre>
@@ -1,25 +1,25 @@
-diff -Naur a/DhMakePerl.pm b/DhMakePerl.pm
---- a/DhMakePerl.pm	2010-02-15 17:28:42.000000000 +0100
-+++ b/DhMakePerl.pm	2010-02-15 17:17:55.000000000 +0100
+diff -Naur DhMakePerl.orig/DhMakePerl.pm DhMakePerl/DhMakePerl.pm
+--- DhMakePerl.orig/DhMakePerl.pm	2010-02-19 13:36:58.000000000 +0100
++++ DhMakePerl/DhMakePerl.pm	2010-02-22 18:40:12.000000000 +0100
 @@ -65,6 +65,8 @@
  use WWW::Mechanize ();
  use YAML           ();
  use version qw( qv );
 +use Debian::Apt::PM;
 +our $aptpm = Debian::Apt::PM-&gt;new();
  
  # TODO:
  # * get more info from the package (maybe using CPAN methods)
-@@ -1132,8 +1134,12 @@
+@@ -1131,9 +1133,11 @@
+             $dep = Debian::Dependency-&gt;new( 'perl',
                  $self-&gt;nice_perl_ver( $dep_hash-&gt;{$module} ) );
          }
-         elsif ($apt_contents) {
+-        elsif ($apt_contents) {
 -            $dep = $apt_contents-&gt;find_perl_module_package( $module,
 -                $dep_hash-&gt;{$module} );
-+            #$dep = $apt_contents-&gt;find_perl_module_package( $module,
-+            #    $dep_hash-&gt;{$module} );
++        else {
 +            my $info = $aptpm-&gt;find($module, $dep_hash-&gt;{$module});
 +            if ($info and $info-&gt;{'min'}) {
 +                $dep = Debian::Dependency-&gt;new( $info-&gt;{'min'}-&gt;{'package'}, $info-&gt;{'min'}-&gt;{'version'} );
 +            }
          }
</pre>

<p>This is really hard to read and understand...</p>]]>
        
    </content>
</entry>

<entry>
    <title>unattended dh-make-pm running this weekend</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/02/unattended-dh-make-pm-running-this-weekend.html" />
    <id>tag:jozef.kutej.net,2010://4.110</id>

    <published>2010-02-21T23:26:43Z</published>
    <updated>2010-02-21T23:28:31Z</updated>

    <summary> libaaaa-crypt-dh-perl_0.02-1_all.deb libaccessors-perl_1.01-1_all.deb libacme-6502-perl_0.75-1_all.deb libacme-badexample-perl_1.00-1_all.deb libacme-buffy-perl_1.5-1_all.deb libacme-colour-perl_1.06-1_all.deb libacme-comment-perl_1.04-1_all.deb libacme-daily-fail-perl_1.02-1_all.deb libacme-datetime-duration-numeric-perl_0.03-1_all.deb libacme-everything-perl_1.01-1_all.deb libacme-greek-perl_1.0-1_all.deb libacme-lolcat-perl_0.0.5-1_all.deb libacme-mirrortracer-perl_2009.052920495001-1_all.deb libacme-perlml-perl_1.00-1_all.deb libacme-poe-acronym-generator-perl_1.18-1_all.deb libacme-read-like-a-monger-perl_0.01-1_all.deb libacme-sneeze-jp-perl_0.01-1_all.deb libacme-sneeze-perl_0.02-1_all.deb libacme-study-perl-perl_0.0.2-1_all.deb libacme-supercollider-programming-perl_0.02-1_all.deb libacme-syspath-perl_0.05-1_all.deb libacme-terror-au-perl_0.01-1_all.deb libai-cbr-perl_0.02-1_all.deb libai-megahal-perl_0.07-1_i386.deb libalgorithm-dependency-mapreduce-perl_0.03-1_all.deb libalgorithm-dependency-perl_1.110-1_all.deb libalgorithm-dependency-source-dbi-perl_1.06-1_all.deb libalgorithm-fec-perl_1.0-1_i386.deb libalgorithm-includeexclude-perl_0.01-1_all.deb libalgorithm-numerical-shuffle-perl_2009110301-1_all.deb libalgorithm-tokenbucket-perl_0.32-1_all.deb libalien-win32-lzma-perl_4.66-1_all.deb libanyevent-dbi-abstract-perl_0.01-1_all.deb libanyevent-dbi-perl_2.0-1_all.deb libanyevent-friendfeed-realtime-perl_0.04-1_all.deb libanyevent-http-perl_1.44-1_all.deb libanyevent-mdns-perl_0.05-1_all.deb libanyevent-redis-perl_0.06-1_all.deb libanyevent-twitter-stream-perl_0.10-1_all.deb...</summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="SysAdmin" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<pre>
libaaaa-crypt-dh-perl_0.02-1_all.deb
libaccessors-perl_1.01-1_all.deb
libacme-6502-perl_0.75-1_all.deb
libacme-badexample-perl_1.00-1_all.deb
libacme-buffy-perl_1.5-1_all.deb
libacme-colour-perl_1.06-1_all.deb
libacme-comment-perl_1.04-1_all.deb
libacme-daily-fail-perl_1.02-1_all.deb
libacme-datetime-duration-numeric-perl_0.03-1_all.deb
libacme-everything-perl_1.01-1_all.deb
libacme-greek-perl_1.0-1_all.deb
libacme-lolcat-perl_0.0.5-1_all.deb
libacme-mirrortracer-perl_2009.052920495001-1_all.deb
libacme-perlml-perl_1.00-1_all.deb
libacme-poe-acronym-generator-perl_1.18-1_all.deb
libacme-read-like-a-monger-perl_0.01-1_all.deb
libacme-sneeze-jp-perl_0.01-1_all.deb
libacme-sneeze-perl_0.02-1_all.deb
libacme-study-perl-perl_0.0.2-1_all.deb
libacme-supercollider-programming-perl_0.02-1_all.deb
libacme-syspath-perl_0.05-1_all.deb
libacme-terror-au-perl_0.01-1_all.deb
libai-cbr-perl_0.02-1_all.deb
libai-megahal-perl_0.07-1_i386.deb
libalgorithm-dependency-mapreduce-perl_0.03-1_all.deb
libalgorithm-dependency-perl_1.110-1_all.deb
libalgorithm-dependency-source-dbi-perl_1.06-1_all.deb
libalgorithm-fec-perl_1.0-1_i386.deb
libalgorithm-includeexclude-perl_0.01-1_all.deb
libalgorithm-numerical-shuffle-perl_2009110301-1_all.deb
libalgorithm-tokenbucket-perl_0.32-1_all.deb
libalien-win32-lzma-perl_4.66-1_all.deb
libanyevent-dbi-abstract-perl_0.01-1_all.deb
libanyevent-dbi-perl_2.0-1_all.deb
libanyevent-friendfeed-realtime-perl_0.04-1_all.deb
libanyevent-http-perl_1.44-1_all.deb
libanyevent-mdns-perl_0.05-1_all.deb
libanyevent-redis-perl_0.06-1_all.deb
libanyevent-twitter-stream-perl_0.10-1_all.deb
libapache2-ppi-html-perl_0.02-1_all.deb
libapache-heavycgi-perl_0.013302-1_all.deb
libapache-javascript-documentwrite-perl_0.02-1_all.deb
libapache-profiler-perl_0.10-1_all.deb
libapache-session-cacheany-perl_0.03-1_all.deb
libapache-session-php-perl_0.05-1_all.deb
libapp-cpan-fresh-perl_0.07-1_all.deb
libapp-cpanminus-perl_0.06-1_all.deb
libapp-cpan-perl_1.57-1_all.deb
libapp-module-lister-perl_0.13-1_all.deb
libapp-smokebox-mini-plugin-irc-perl_0.04-1_all.deb
libapp-stash-perl_0.01-1_all.deb
libapr-http-headers-compat-perl_0.02-1_all.deb
libarchive-builder-perl_1.14-1_all.deb
libarchive-peek-perl_0.34-1_all.deb
libarray-window-perl_1.02-1_all.deb
libaspect-library-nytprof-perl_0.01-1_all.deb
libaspect-library-testclass-perl_0.36-1_all.deb
libauthen-typekey-perl_0.05-1_all.deb
libautobox-datetime-duration-perl_0.02-1_all.deb
libbisect-perl-usinggit-perl_0.33-1_all.deb
libbuild-daily-perl_0.01-1_all.deb
libbusiness-au-abn-perl_1.08-1_all.deb
libbusiness-au-data-anzic-perl_0.01-1_all.deb
libbusiness-ismn-perl_1.11-1_all.deb
libbusiness-issn-perl_0.91-1_all.deb
libcapitalization-perl_0.03-1_all.deb
libcaptcha-recaptcha-mailhide-perl_0.93-1_all.deb
libcarp-clan-perl_6.04-1_all.deb
libcatalyst-engine-psgi-perl_0.07-1_all.deb
libcatalyst-plugin-cookiedsession-perl_0.35-1_all.deb
libcatalyst-plugin-customerrormessage-perl_0.04-1_all.deb
libcatalyst-plugin-simpleauth-perl_0.33-1_all.deb
libcdb-file-perl_0.96-1_i386.deb
libcgi-capture-perl_1.14-1_all.deb
libcgi-compile-perl_0.08-1_all.deb
libcgi-psgi-perl_0.09-1_all.deb
libcgi-uri2param-perl_1.01-1_all.deb
libchamplain-perl_0.11-1_i386.deb
libclass-dbi-view-perl_0.07-1_all.deb
libclass-handle-perl_1.07-1_all.deb
libclass-std-slots-perl_0.31-1_all.deb
libclosure-loop-perl_0v0.0.3-1_all.deb
libcompress-lzf-pp-perl_0.33-1_all.deb
libcompress-lzma-external-perl_0.36-1_all.deb
libcompress-lzw-perl_0.01-1_all.deb
libcpan-cache-perl_0.02-1_all.deb
libcpan-indexer-mirror-perl_0.05-1_all.deb
libcpan-mini-devel-perl_0.03-1_all.deb
libcpan-mini-extract-perl_1.20-1_all.deb
libcpan-mini-fromlist-perl_0.02-1_all.deb
libcpan-mini-live-perl_0.33-1_all.deb
libcpan-mini-visit-perl_0.11-1_all.deb
libcpan-mini-webserver-perl_0.45-1_all.deb
libcpanplus-config-baseenv-perl_0.04-1_all.deb
libcpanplus-dist-build-perl_0.46-1_all.deb
libcpan-site-perl_1.04-1_all.deb
libcpan-sqlite-perl_0.199-1_all.deb
libcpan-test-dummy-perl5-buildormake-perl_1.02-1_all.deb
libcpan-test-dummy-perl5-make-perl_1.05-1_all.deb
libcpan-unpack-perl_0.23-1_all.deb
libcpan-visitor-perl_0.001-1_all.deb
libcpan-www-testers-generator-perl_0.30-1_all.deb
libcrypt-perfectpaperpasswords-perl_0.06-1_all.deb
libcrypt-skip32-xs-perl_0.06-1_i386.deb
libdackup-perl_0.44-1_all.deb
libdata-asxml-perl_0.05-1_all.deb
libdata-constraint-perl_1.16-1_all.deb
libdata-digest-perl_1.04-1_all.deb
libdata-find-perl_0.03-1_all.deb
libdata-object-autowrap-perl_0.02-1_all.deb
libdata-package-csv-perl_1.01-1_all.deb
libdata-package-perl_1.05-1_all.deb
libdata-package-sqlite-perl_1.01-1_all.deb
libdata-swap-perl_0.07-1_i386.deb
libdata-uuid-base64urlsafe-perl_0.34-1_all.deb
libdata-yaml-perl_0.0.6-1_all.deb
libdatetime-stringify-perl_4.11-1_all.deb
libdatetime-tiny-perl_1.04-1_all.deb
libdate-tiny-perl_1.04-1_all.deb
libdbix-export-perl_0.01-1_all.deb
libdbix-mysqlsequence-perl_1.04-1_all.deb
libdebian-apt-pm-perl_0.02-1_all.deb
libdevel-checklib-perl_0.6-1_all.deb
libdevel-checkos-perl_1.61-1_all.deb
libdevel-ditto-perl_0.06-1_all.deb
libdevel-dtrace-perl_0.11-1_i386.deb
libdevel-eval-perl_1.01-1_all.deb
libdevel-leakguard-object-perl_0.06-1_all.deb
libdevel-leak-object-perl_1.00-1_all.deb
libdevel-leaktrace-fast-perl_0.11-1_i386.deb
libdevel-profit-perl_0.34-1_i386.deb
libdevel-stacktrace-ashtml-perl_0.05-1_all.deb
libdevel-traceload-perl_1.04-1_all.deb
libdevel-tracevars-perl_0.01-1_all.deb
libdevel-unplug-perl_0.03-1_all.deb
libdigest-hmac-md6-perl_0.01-1_all.deb
libdigest-md5-m4p-perl_0.01-1_i386.deb
libdigest-md6-perl_0.10-1_i386.deb
libdigest-sha256-perl_0.01-1_i386.deb
libdigest-transformpath-perl_1.00-1_all.deb
libdistribution-cooker-perl_0.11-1_all.deb
libdistribution-guess-buildsystem-perl_0.11-1_all.deb
libemail-send-gandi-perl_0.34-1_all.deb
libemail-send-gmail-perl_0.33-1_all.deb
libemail-stuff-perl_2.102-1_all.deb
libencode-base32-crockford-perl_1.2-1_all.deb
libencode-base58-perl_0.01-1_all.deb
libencode-doubleencodedutf8-perl_0.04-1_all.deb
libencode-first-perl_0.01-1_all.deb
libencode-javascript-ucs-perl_0.01-1_all.deb
libencode-jp-mobile-perl_0.26-1_all.deb
libenv-sanctify-moosified-perl_1.04-1_all.deb
libenv-sanctify-perl_1.04-1_all.deb
libev-perl_3.9-1_i386.deb
libfile-blob-perl_1.06-1_all.deb
libfile-copy-reliable-perl_0.32-1_all.deb
libfile-find-closures-perl_1.09-1_all.deb
libfile-find-parallel-perl_0.51-1_all.deb
libfile-find-rule-filesys-virtual-perl_1.22-1_all.deb
libfile-find-rule-ppi-perl_0.05-1_all.deb
libfile-ignorereadonly-perl_0.01-1_all.deb
libfile-is-perl_0.01-1_all.deb
libfile-monitor-perl_0.10-1_all.deb
libfile-pathlist-perl_1.04-1_all.deb
libfilesys-diskusage-perl_0.04-1_all.deb
libfilesys-notify-simple-perl_0.05-1_all.deb
libfilesys-virtual-perl_0.06-1_all.deb
libfilesys-virtual-plain-perl_0.10-1_all.deb
libfile-tasks-perl_0.07-1_all.deb
libfile-tempdir-perl_0.02-1_all.deb
libfir-perl_0.33-1_all.deb
libgame-pexeso-perl_0.01-1_all.deb
libgames-guessword-perl_0.16-1_all.deb
libgeo-coder-google-perl_0.06-1_all.deb
libgeo-coordinates-itm-perl_0.02-1_all.deb
libgeo-gpx-perl_0.26-1_all.deb
libgeo-hash-perl_0.02-1_all.deb
libgeo-lookup-bytime-perl_0.10-1_all.deb
libgit-github-creator-perl_0.17-1_all.deb
libgit-pureperl-perl_0.46-1_all.deb
libgps-babel-perl_0.11-1_all.deb
libgraph-xgmml-perl_0.01-1_all.deb
libhash-case-perl_1.01-1_all.deb
libhash-multivalue-perl_0.08-1_all.deb
libhtml-declare-perl_2.4-1_all.deb
libhtml-email-obfuscate-perl_1.00-1_all.deb
libhtml-fraction-perl_0.40-1_all.deb
libhtml-frommail-perl_0.11-1_all.deb
libhtml-location-perl_1.03-1_all.deb
libhtml-resolvelink-perl_0.05-1_all.deb
libhtml-spry-dataset-perl_0.01-1_all.deb
libhtml-summary-perl_0.017-1_all.deb
libhtml-trackerlink-perl_1.03-1_all.deb
libhtml-treebuilder-libxml-perl_0.11-1_all.deb
libhtml-widget-constraint-complexpassword-perl_0.01-1_all.deb
libhttp-client-parallel-perl_0.02-1_all.deb
libhttp-cookies-icab-perl_1.120-1_all.deb
libhttp-cookies-mozilla-perl_2.02-1_all.deb
libhttp-cookies-omniweb-perl_1.12-1_all.deb
libhttp-dav-browse-perl_0.03-1_all.deb
libhttp-lite-perl_2.2-1_all.deb
libhttp-parser-xs-perl_0.05-1_i386.deb
libhttp-proxy-greasemonkey-perl_0.05-1_all.deb
libhttp-proxypac-perl_0.01-1_all.deb
libhttp-server-multiplex-perl_0.11-1_all.deb
libhttp-server-simple-authen-perl_0.04-1_all.deb
libhttp-server-simple-bonjour-perl_0.02-1_all.deb
libhttp-server-simple-kwiki-perl_0.29-1_all.deb
libhttp-server-simple-perl_0.42-1_all.deb
libhttp-server-simple-psgi-perl_0.14-1_all.deb
libhttp-simplelinkchecker-perl_1.15-1_all.deb
libimage-delivery-perl_0.14-1_all.deb
libimage-imlib2-thumbnail-perl_0.40-1_all.deb
libimage-imlib2-thumbnail-s3-perl_0.31-1_all.deb
libimage-worldmap-perl_0.15-1_all.deb
libio-any-perl_0.04-1_all.deb
libio-captureoutput-perl_1.1102-1_all.deb
libio-interactive-perl_0.0.6-1_all.deb
libio-mark-perl_0v0.0.1-1_all.deb
libio-null-perl_1.01-1_all.deb
libio-perl_1.25-1_i386.deb
libjava-jvm-classfile-perl_0.20-1_all.deb
libjemplate-perl_0.23-1_all.deb
libjson-util-perl_0.03-1_all.deb
libjson-xs-versiononeandtwo-perl_0.31-1_all.deb
libkasago-perl_0.29-1_all.deb
libkwiki-footnote-perl_0.01-1_all.deb
libkwiki-opensearch-service-perl_0.02-1_all.deb
libkwiki-typekey-perl_0.08-1_all.deb
libkwiki-username-perl_0.14-1_all.deb
libkwiki-userpreferences-perl_0.13-1_all.deb
liblatest-perl_0.03-1_all.deb
liblike-perl_0.02-1_all.deb
liblingua-abbreviate-hierarchy-perl_0.04-1_all.deb
liblingua-ja-hepburn-passport-perl_0.02-1_all.deb
liblist-conditional-perl_0.01-1_all.deb
liblist-flatten-perl_0.01-1_all.deb
liblog-dispatch-config-perl_1.03-1_all.deb
liblog-report-perl_0.26-1_all.deb
liblwp-conncache-maxkeepaliverequests-perl_0.32-1_all.deb
libmac-errors-perl_1.14-1_all.deb
libmac-macbinary-perl_0.06-1_all.deb
libmac-path-util-perl_0.26-1_all.deb
libmail-address-mobilejp-perl_0.09-1_all.deb
libmail-box-parser-c-perl_3.006-1_i386.deb
libmath-polygon-perl_1.01-1_all.deb
libmath-xor-perl_0.02-1_i386.deb
libmealmaster-perl_0.28-1_all.deb
libminismokebox-perl_0.22-1_all.deb
libmodule-build-syspath-perl_0.13-1_all.deb
libmodule-extract-namespaces-perl_0.14-1_all.deb
libmodule-extract-version-perl_0.13-1_all.deb
libmodule-install-assertos-perl_0.10-1_all.deb
libmodule-install-autolicense-perl_0.02-1_all.deb
libmodule-install-automatedtester-perl_0.02-1_all.deb
libmodule-install-checklib-perl_0.04-1_all.deb
libmodule-installedversion-perl_0.05-1_all.deb
libmodule-install-githubmeta-perl_0.10-1_all.deb
libmodule-install-noautomatedtesting-perl_0.06-1_all.deb
libmodule-install-readmefrompod-perl_0.06-1_all.deb
libmodule-install-repository-perl_0.06-1_all.deb
libmodule-list-perl_0.002-1_all.deb
libmodule-list-pluggable-perl_0.08-1_all.deb
libmodule-release-git-perl_0.14-1_all.deb
libmodule-release-perl_2.05-1_all.deb
libnet-amazon-awis-perl_0.36-1_all.deb
libnet-amazon-s3-client-gpg-perl_0.33-1_all.deb
libnet-amazon-simplequeue-perl_0.30-1_all.deb
libnet-cassandra-perl_0.35-1_all.deb
libnet-cidr-set-perl_0.11-1_all.deb
libnet-dav-server-perl_1.29-1_all.deb
libnet-fleetdb-perl_0.33-1_all.deb
libnet-ftp-robust-perl_0.08-1_all.deb
libnet-ftpssl-perl_0.14-1_all.deb
libnet-ftpssl-robust-perl_0.04-1_all.deb
libnet-ftp-throttle-perl_0.32-1_all.deb
libnet-lastfm-perl_0.34-1_all.deb
libnet-mosso-cloudfiles-perl_0.43-1_all.deb
libnet-mythtv-perl_0.33-1_all.deb
libnet-mythweb-perl_0.33-1_all.deb
libnet-openssh-perl_0.45-1_all.deb
libnet-radius-perl_2.103-1_all.deb
libnetscape-bookmarks-perl_1.95-1_all.deb
libnet-server-coro-perl_0.8-1_all.deb
libnet-server-ss-prefork-perl_0.04-1_all.deb
libnet-tacacsplus-perl_1.08-1_all.deb
libnet-vnc-perl_0.37-1_all.deb
libnet-yahoomessenger-perl_0.17-1_all.deb
libnumber-datarate-perl_0.31-1_all.deb
libobject-iterate-perl_1.12-1_all.deb
libobject-tiny-perl_1.06-1_all.deb
liboodoc-template-perl_0.14-1_all.deb
libordb-cpanmeta-generator-perl_0.10-1_all.deb
libordb-cpantesters-perl_0.09-1_all.deb
libordb-cpants-perl_0.04-1_all.deb
libordb-cpanuploads-perl_0.04-1_all.deb
libpalm-magellan-navcompanion-perl_0.53-1_all.deb
libparallel-iterator-perl_1.00-1_all.deb
libparallel-subfork-perl_0.10-1_all.deb
libparse-backpan-packages-perl_0.36-1_all.deb
libparse-cpan-authors-perl_2.27-1_all.deb
libparse-cpan-mirroredby-perl_0.02-1_all.deb
libparse-cpan-ratings-perl_0.33-1_all.deb
libparse-cpan-whois-perl_0.02-1_all.deb
libparse-csv-perl_1.00-1_all.deb
libparse-deb-control-perl_0.03-1_all.deb
libparse-iaslog-perl_1.10-1_all.deb
libparse-irc-perl_1.16-1_all.deb
libpath-class-uri-perl_0.04-1_all.deb
libperl-perl_5.010001-1_i386.deb
libperl-sax-perl_0.08-1_all.deb
libphp-session-perl_0.27-1_all.deb
libplack-middleware-debug-perl_0.07-1_all.deb
libplack-middleware-file-sass-perl_0.01-1_all.deb
libplack-perl_0.9031-1_all.deb
libplack-request-perl_0.09-1_all.deb
libplack-server-anyevent-perl_0.03-1_all.deb
libpod-indesign-taggedtext-perl_0.11-1_all.deb
libpod-indesign-taggedtext-tpr-perl_0.10-1_all.deb
libpod-perldoc-totoc-perl_1.09-1_all.deb
libpod-pseudopod-perl_0.15-1_all.deb
libpod-wordml-perl_0.13-1_all.deb
libpoe-component-ai-megahal-perl_1.18-1_all.deb
libpoe-component-captcha-recaptcha-perl_0.02-1_all.deb
libpoe-component-client-airtunes-perl_0.01-1_all.deb
libpoe-component-client-dnsbl-perl_1.02-1_all.deb
libpoe-component-client-dns-recursive-perl_1.00-1_all.deb
libpoe-component-client-ftp-perl_0.22-1_all.deb
libpoe-component-client-lingr-perl_0.04-1_all.deb
libpoe-component-client-nntp-perl_2.14-1_all.deb
libpoe-component-client-nrpe-perl_0.16-1_all.deb
libpoe-component-client-nsca-perl_0.16-1_all.deb
libpoe-component-client-ntp-perl_0.02-1_all.deb
libpoe-component-client-radius-perl_1.02-1_all.deb
libpoe-component-client-smtp-perl_0.22-1_all.deb
libpoe-component-client-socks-perl_1.00-1_all.deb
libpoe-component-client-whois-perl_1.28-1_all.deb
libpoe-component-cpan-reporter-perl_0.06-1_all.deb
libpoe-component-cpan-yacsmoke-perl_1.36-1_all.deb
libpoe-component-dhcp-monitor-perl_1.02-1_all.deb
libpoe-component-irc-plugin-corelist-perl_1.00-1_all.deb
libpoe-component-irc-plugin-poe-knee-perl_1.08-1_all.deb
libpoe-component-irc-plugin-querydnsbl-perl_1.00-1_all.deb
libpoe-component-irc-plugin-querydns-perl_1.00-1_all.deb
libpoe-component-irc-plugin-role-perl_0.06-1_all.deb
libpoe-component-irc-plugin-rss-headlines-perl_1.08-1_all.deb
libpoe-component-irc-plugin-uri-find-perl_1.08-1_all.deb
libpoe-component-irc-service-perl_0.996-1_all.deb
libpoe-component-proxy-socks-perl_1.02-1_all.deb
libpoe-component-rssaggregator-perl_1.11-1_all.deb
libpoe-component-server-chargen-perl_1.14-1_all.deb
libpoe-component-server-daytime-perl_1.14-1_all.deb
libpoe-component-server-discard-perl_1.14-1_all.deb
libpoe-component-server-dns-perl_0.20-1_all.deb
libpoe-component-server-echo-perl_1.64-1_all.deb
libpoe-component-server-ident-perl_1.16-1_all.deb
libpoe-component-server-inet-perl_0.04-1_all.deb
libpoe-component-server-irc-perl_1.40-1_all.deb
libpoe-component-server-nntp-perl_1.04-1_all.deb
libpoe-component-server-nrpe-perl_0.16-1_all.deb
libpoe-component-server-nsca-perl_0.08-1_all.deb
libpoe-component-server-pop3-perl_0.08-1_all.deb
libpoe-component-server-qotd-perl_1.14-1_all.deb
libpoe-component-server-radius-perl_1.02-1_all.deb
libpoe-component-server-simplesmtp-perl_1.44-1_all.deb
libpoe-component-server-syslog-perl_1.18-1_all.deb
libpoe-component-server-time-perl_1.14-1_all.deb
libpoe-component-smokebox-dists-perl_1.00-1_all.deb
libpoe-component-smokebox-perl_0.34-1_all.deb
libpoe-component-smokebox-recent-perl_1.16-1_all.deb
libpoe-component-smokebox-uploads-cpan-mini-perl_1.00-1_all.deb
libpoe-component-smokebox-uploads-nntp-perl_1.00-1_all.deb
libpoe-component-smokebox-uploads-rss-perl_1.00-1_all.deb
libpoe-component-wakeonlan-perl_1.02-1_all.deb
libpoe-component-www-shorten-perl_1.18-1_all.deb
libpoe-filter-bzip2-perl_1.58-1_all.deb
libpoe-filter-csv-perl_1.16-1_all.deb
libpoe-filter-csv-xs-perl_1.16-1_all.deb
libpoe-filter-finger-perl_0.08-1_all.deb
libpoe-filter-iaslog-perl_1.08-1_all.deb
libpoe-filter-kennyspeak-perl_1.00-1_all.deb
libpoe-filter-lolcat-perl_1.10-1_all.deb
libpoe-filter-lzw-perl_1.72-1_all.deb
libpoe-filter-parsewords-perl_1.06-1_all.deb
libpoe-filter-transparent-smtp-perl_0.2-1_all.deb
libpoe-filter-zlib-perl_2.02-1_all.deb
libpolyglot-perl_0.14-1_all.deb
libppi-app-ppi-version-bdfoy-perl_0.12-1_all.deb
libppi-powertoys-perl_0.14-1_all.deb
libppix-indexoffsets-perl_0.32-1_all.deb
libppix-linetosub-perl_0.33-1_all.deb
libprocess-perl_0.27-1_all.deb
libproc-wait3-perl_0.03-1_i386.deb
libpsgi-perl_1.03-1_all.deb
libre-engine-oniguruma-perl_0.04-1_i386.deb
librun-env-perl_0.03-1_all.deb
libscalar-util-numeric-perl_0.02-1_i386.deb
libsearch-contextgraph-perl_0.15-1_i386.deb
libsearch-queryparser-perl_0.94-1_all.deb
libserver-starter-perl_0.06-1_all.deb
libset-crossproduct-perl_1.93-1_all.deb
libset-intspan-fast-perl_1.15-1_all.deb
libset-intspan-fast-xs-perl_0.05-1_i386.deb
libsna-network-perl_0.04-1_all.deb
libsort-rank-perl_0v0.0.2-1_all.deb
libstorable-perl_2.21-1_i386.deb
libstring-camelcase-perl_0.02-1_all.deb
libstring-perl-warnings-perl_1.02-1_all.deb
libstring-smart-perl_0.4-1_all.deb
libsub-become-perl_0.01-1_all.deb
libsys-path-perl_0.10-1_all.deb
libtap-convert-tet-perl_0.2.1-1_all.deb
libtap-filter-perl_0.04-1_all.deb
libtap-formatter-html-perl_0.08-1_all.deb
libtask-plack-perl_0.17-1_all.deb
libtatsumaki-perl_0.1008-1_all.deb
libtemplate-plugin-comma-perl_0.04-1_all.deb
libtemplate-plugin-shuffle-perl_0.02-1_all.deb
libterm-progressbar-quiet-perl_0.31-1_all.deb
libterm-progressbar-simple-perl_0.03-1_all.deb
libtest-data-perl_1.22-1_all.deb
libtest-env-perl_1.08-1_all.deb
libtest-httpstatus-perl_1.08-1_all.deb
libtest-install-metarequires-perl_0.03-1_all.deb
libtest-isbn-perl_2.01-1_all.deb
libtest-more-diagnostic-perl_0.2-1_all.deb
libtest-more-strict-perl_0.02-1_all.deb
libtest-reporter-perl_1.54-1_all.deb
libtest-server-perl_0.06-1_all.deb
libtest-steering-perl_0.02-1_all.deb
libtest-uri-perl_1.08-1_all.deb
libtest-utf8-perl_0.02-1_all.deb
libtest-www-mechanize-psgi-perl_0.35-1_all.deb
libtest-xml-perl_0.08-1_all.deb
libtext-csv-track-perl_0.7-1_all.deb
libtext-ecsv-perl_0.01-1_all.deb
libtext-emoticon-msn-perl_0.04-1_all.deb
libtext-emoticon-perl_0.04-1_all.deb
libtext-emoticon-yahoo-perl_0.02-1_all.deb
libtext-extractwords-perl_0.08-1_i386.deb
libtext-language-guess-perl_0.02-1_all.deb
libtextmate-jumpto-perl_0.07-1_all.deb
libtext-microtemplate-perl_0.11-1_all.deb
libtext-sass-perl_0.4-1_all.deb
libtheschwartz-simple-perl_0.05-1_all.deb
libtie-cycle-perl_1.17-1_all.deb
libtie-nested-perl_0.10-1_all.deb
libtie-toggle-perl_1.08-1_all.deb
libtime-duration-ja-perl_0.02-1_all.deb
libtime-elapsed-perl_0.29-1_all.deb
libtime-workhours-perl_0.01-1_all.deb
libtv-anytime-perl_0.31-1_all.deb
libuniverse-galaxy-perl_0.02-1_all.deb
liburi-find-utf8-perl_0.01-1_all.deb
liburi-geo-perl_0.05-1_all.deb
liburi-git-perl_0.02-1_all.deb
liburi-tag-perl_0.02-1_all.deb
libvideo-subtitle-srt-perl_0.01-1_all.deb
libweb-oembed-perl_0.04-1_all.deb
libwebservice-bloglines-perl_0.12-1_all.deb
libwebservice-lingr-perl_0.02-1_all.deb
libwww-blog-metadata-language-perl_0.01-1_all.deb
libwww-blog-metadata-mobilelinkdiscovery-perl_0.02-1_all.deb
libwww-blog-metadata-openid-perl_0.01-1_all.deb
libwww-blog-metadata-perl_0.03-1_all.deb
libwww-gazetteer-getty-perl_0.11-1_all.deb
libwww-gazetteer-perl_0.24-1_all.deb
libwww-mechanize-decodedcontent-perl_0.01-1_all.deb
libwww-mechanize-plugin-autowrite-perl_0.05-1_all.deb
libwww-shorten-perl_3.00-1_all.deb
libwww-shorten-revcanonical-perl_0.03-1_all.deb
libwww-shorten-simple-perl_0.01-1_all.deb
libxml-atom-lifeblog-perl_0.03-1_all.deb
libxml-atom-stream-perl_0.11-1_all.deb
libxml-compile-tester-perl_0.05-1_all.deb
libxml-descent-perl_1.04-1_all.deb
libxml-liberal-perl_0.22-1_all.deb
libxml-libxml-simple-perl_0.13-1_all.deb
libxml-opml-libxml-perl_0.03-1_all.deb
libxml-rss-piclens-perl_0.04-1_all.deb
libxml-semanticdiff-perl_1.0000-1_all.deb
libxml-tokeparser-perl_0.05-1_all.deb
libxtract-perl_0.13-1_all.deb
</pre>

<pre>
$ ls *.deb | wc -l
483
</pre>
]]>
        
    </content>
</entry>

<entry>
    <title>When command line is too short :-)</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/02/when-command-line-is-too-short--.html" />
    <id>tag:jozef.kutej.net,2010://4.109</id>

    <published>2010-02-19T19:37:27Z</published>
    <updated>2010-02-21T23:25:55Z</updated>

    <summary><![CDATA[ perl -MDebian::Apt::PM -MList::MoreUtils=uniq -MYAML -MApp::Cache -MCPAN -le '$a=shift @ARGV or die; $p=Debian::Apt::PM-&gt;new(); $c=App::Cache-&gt;new(); do { local *STDOUT; $r = join "\n", grep { not $p->find($_) } grep { CPAN::Shell-&gt;expand("Module", $_) } uniq map { s/-/::/g; $_ } map {...]]></summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<p><code>
perl -MDebian::Apt::PM -MList::MoreUtils=uniq -MYAML -MApp::Cache -MCPAN -le '$a=shift @ARGV or die; $p=Debian::Apt::PM-&gt;new(); $c=App::Cache-&gt;new(); do { local *STDOUT; $r = join "\n", grep { not $p->find($_) } grep { CPAN::Shell-&gt;expand("Module", $_) } uniq map { s/-/::/g; $_ } map { $_-&gt;{"name"} } map { eval { Load($_) } || {} } map { $c->get_url("http://archive.cpan.cz/authors/id/".substr($a,0,1)."/".substr($a,0,2)."/$a/$_") } map { map { $_ =~ /\.meta$/ ? $_ : ()  } @{$_} } CPAN::Shell-&gt;expand("Author", $a)->ls;}; print $r;' GAAS
</code></p>

<p>A little more readable version:</p>

<pre>
use Debian::Apt::PM;
use List::MoreUtils 'uniq';
use YAML;
use App::Cache;
use CPAN;

$a=shift @ARGV or die;
$p=Debian::Apt::PM-&gt;new();
$c=App::Cache-&gt;new();

do {
	local *STDOUT;
	$r =
		join "\n",
		grep { not $p->find($_) }
		grep { CPAN::Shell-&gt;expand("Module", $_) }
		uniq
		map { s/-/::/g; $_ }
		map { $_-&gt;{"name"} }
		map { eval { Load($_) } || {} }
		map { $c->get_url("http://archive.cpan.cz/authors/id/".substr($a,0,1)."/".substr($a,0,2)."/$a/$_") }
		map { map { $_ =~ /\.meta$/ ? $_ : ()  } @{$_} }
		CPAN::Shell-&gt;expand("Author", $a)->ls
	;
};

print $r;
</pre>

<p>It prints out CPAN modules from author id that are not packaged in Debian. Will work for 99% of cases. Only problem are the distributions that have "custom" names, like <a href="http://search.cpan.org/dist/libwww-perl/">libwww-perl</a>, as the package name is created from the distribution name that is read from .meta files.</p>
]]>
        
    </content>
</entry>

<entry>
    <title>Compare Search Engines 20100117 </title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/02/compare-search-engines-20100117.html" />
    <id>tag:jozef.kutej.net,2010://4.108</id>

    <published>2010-02-11T18:40:06Z</published>
    <updated>2010-02-16T06:59:58Z</updated>

    <summary>The Firefox Addon was just approved - 59864...</summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<p>The Firefox Addon was just approved - <a href="https://addons.mozilla.org/en-US/firefox/addon/59864">59864</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>Illegal character 0x1FFFF</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/01/illegal-character-0x1ffff.html" />
    <id>tag:jozef.kutej.net,2010://4.107</id>

    <published>2010-01-27T20:53:50Z</published>
    <updated>2010-01-27T20:51:45Z</updated>

    <summary> $ perl -le &apos;use warnings; my $x=chr(0x1FFFF)&apos; Unicode character 0x1ffff is illegal at -e line 1. XML supports UTF-8 so I check for valid UTF-8 string and use it in XML if valid. Right? No!!! There are some &quot;non-illegal&quot;...</summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="utf8" label="utf8" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<pre>
$ perl -le 'use warnings; my $x=chr(0x1FFFF)' 
Unicode character 0x1ffff is illegal at -e line 1.
</pre>

<p>XML supports UTF-8 so I check for <a href="http://search.cpan.org/perldoc?String::isUTF8">valid UTF-8 string</a> and use it in XML if valid. Right? No!!!</p>

<p>There are some "non-illegal" characters that are perfect valid in UTF-8 (or even in the plain old ASCII), but are invalid for XML. The most obvious 0x00. Here is what <a href="http://www.w3.org/TR/REC-xml/#charsets">W3C XML 1.0 specification</a> say:</p>

<cite>[2]         Char       ::=          #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
    /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */</cite>

<p>I spend some time playing with it and the result is <a href="http://search.cpan.org/perldoc?XML::Char">XML::Char->valid()</a>. The <a href="http://github.com/jozef/Data-asXML">dev Data::asXML</a> is using it now. If you you want, have a look at the test suit and try to break it. :-)
</p>
]]>
        
    </content>
</entry>

<entry>
    <title>My first Perl6 regexp grammar in Perl5</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/01/my-first-perl6-regexp-grammar-in-perl5.html" />
    <id>tag:jozef.kutej.net,2010://4.106</id>

    <published>2010-01-21T17:31:47Z</published>
    <updated>2010-01-21T17:30:42Z</updated>

    <summary>Once I told potyl - &quot;hey let&apos;s have a wiki it will be easy to use for everyone&quot;. He wasn&apos;t so excited, not at all. Why? What is so bad about wiki? Look at this table of 130+ wiki syntaxes....</summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<p>Once I told <a href="http://use.perl.org/~potyl/journal">potyl</a> - "hey let's have a wiki it will be easy to use for everyone". He wasn't so excited, not at all. Why? What is so bad about wiki? Look at this table of <a href="http://www.wikimatrix.org/syntax.php?i=23&x=25&y=19">130+ wiki syntaxes</a>. Anyone still complaining that there are too many simmilar choices on CPAN? The wiki community decided to solve the problem by creating <a href="http://www.wikicreole.org/">yet another wiki syntax</a>...</p>

<p>What this has to do with Perl6 regexp grammars? After <a href="http://search.cpan.org/~DCONWAY/">Damian</a> talk at <a href="http://yapceurope2009.org/ye2009/talk/2088">YAPC::EU::2009</a> I really wanted to try out the <a href="http://search.cpan.org/perldoc?Regexp::Grammars">Regexp::Grammars</a>. Finally I found some time during the Christmas and here is the result:</p>

<p>
<script src="http://gist.github.com/281109.js?file=trac-wiki-regexp-grammar.pl"></script>
<noscript>
<pre>
use Regexp::Grammars;
use re &#39;eval&#39;;
my $parser = qr@
&lt;Wiki&gt;
 
&lt;rule: Wiki&gt; &lt;[Block]&gt;*
&lt;rule: Block&gt; &lt;.EmptyLine&gt; | &lt;Code&gt; | &lt;Para&gt;
&lt;token: Para&gt; &lt;Heading&gt; | &lt;List&gt; | &lt;TextLines&gt;
&lt;token: EmptyLine&gt; ^ \h* \R
&lt;token: TextLines&gt; (?:^ (?! &lt;Code&gt; | &lt;Heading&gt; | &lt;List&gt; | &lt;EmptyLine&gt; ) [^\h] .+? \v)+
&lt;token: CodeStart&gt; ^ {{{ \h* \v
&lt;token: CodeEnd&gt; ^ }}} \h* \v
&lt;token: Code&gt; &lt;.CodeStart&gt; &lt;CodeLines&gt; &lt;.CodeEnd&gt;
&lt;token: CodeLines&gt; .+?
&lt;token: Heading&gt; &lt;HeadingStart&gt; \s &lt;HeadingText&gt; \s =+ \h* \v
&lt;token: HeadingStart&gt; ^=+
&lt;token: HeadingText&gt; [^=\v]+
&lt;token: List&gt; &lt;[ListItem]&gt;+
&lt;token: ListItem&gt; ^ &lt;ListItemSpaces&gt; &lt;ListItemType&gt; \h+ &lt;ListItemText&gt; \v
&lt;token: ListItemSpaces&gt; \h+
&lt;token: ListItemType&gt; (\*|\d+\.|a\.|i\.)
&lt;token: ListItemText&gt; .+?
@xms;
</pre>
</noscript>
</p>

<p>It is probably not the best piece of regexp gramar, Perl6 experts will for sure spot some error, but hey it works! "<a href="http://www.codinghorror.com/blog/archives/000818.html">Works on my computer&trade;</a>". I've used it to transform <a href="http://trac.edgewall.org/wiki/TracWiki">TracWiki</a> syntax to XHTML div and then using XSL to <a href="http://www.dokuwiki.org/syntax">DokuWiki</a> syntax. <a href="http://github.com/jozef/trac-export">Here are the scripts</a> that does it completely.</p>
]]>
        
    </content>
</entry>

<entry>
    <title>I found it!</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/01/i-found-it.html" />
    <id>tag:jozef.kutej.net,2010://4.101</id>

    <published>2010-01-13T21:07:18Z</published>
    <updated>2010-01-13T21:05:14Z</updated>

    <summary>Of course someone else already did it, what were you expecting Jozef? Well the same thing and I knew it (just read on), but it took some time to find it. What I&apos;m talking about? Quintura a search engine based...</summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Life" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<p>Of course someone else already did it, what were you expecting Jozef? Well <a href="http://use.perl.org/comments.pl?sid=44393&cid=71503">the same thing</a> and I knew it (just read on), but it took some time to find it.</p>

<p>What I'm talking about? <a href="http://quintura.com/">Quintura</a> a search engine based on tag cloud. I've seen this kid of searching before in <a href="http://openclipart.org/media/tags">Open Clip Art</a> so I was really not expecting to come up with something new at all, sorry, next time I'll <a href="http://jozef.kutej.net/2010/01/me-a-perl-kid.html">fail again</a>, don't worry. ;-) The idea is really nice. Using tag cloud to hint search directions - positive and also negative keywords. Cool!</p>

<p>Anything else? Yes! Besides some more exercise with <a href="http://jquery.com/">JQuery</a> my <a href="http://jozef.kutej.net/2010/01/wide-screen-let-the-search-engines-fight.html">little project</a> opened my eyes. I've started to look for some more search engines. Out of my mind I knew just couple of them ~10. So I went to <a href="http://en.wikipedia.org/wiki/Search_engines">wikipedia search engines</a> which lists couple more and finally to <a href="http://en.wikipedia.org/wiki/List_of_search_engines">wikipedia list of search engines</a>.
</p>

<p>And? Google, Yahoo, Bing, Wikipedia. This guy has really limited view of the topic! Exactly... So I looked a <a href="http://search.meonl.com/en/?s=gb&q=top%20alternative%20search%20engines">little deeper</a> and found the <a href="http://www.readwriteweb.com/archives/top_100_alternative_search_engines.php">top 100 list</a>. 100? Sounds awful. Well according to <a href="http://www.goshme.com/">GoshMe</a> there are more than half a million search engines out there on the Internet. Believe or not let's not count them by hand.</p>

<p>And finally I found this - <code>Segev, Elad (2008).   "Search engines and power: A politics of online (mis-) information."   Webology, 5(2), Article 54. Available at: <a href="http://www.webology.ir/2008/v5n2/a54.html">http://www.webology.ir/2008/v5n2/a54.html</a></code>. If you are not fan of reading long articles here are some citations from it to support the motivation:</p>

<cite>It is argued and indicated that the dominant American search engines tend to commodify online information and intensify the asymmetry of information flow worldwide, supporting the growth of mainstream, commercial and very often US-centric information. It is therefore suggested that together with their important role in organizing the Web, search engines reinforce certain inequalities and understandings of the world.</cite>

<cite>it has been suggested that any new type of search engine will either be acquired by one of the bigger American hubs or become commercialized in order to support its competitive position. Consequently, it will not be able to sustain information equality and diversity of alternative views, and will mainly represent the views of the richer and more popular nodes. support its competitive position. Consequently, it will not be able to sustain information equality and diversity of alternative views, and will mainly represent the views of the richer and more popular nodes. richer and more popular nodes.</cite>

<cite>Hence, it is suggested that behind the so-called "transparent" services there are various political, economic and increasingly informational forces that continuously shape and reshape the representation of the World.</cite>

<p>One other information caught my attention - <a href="http://www.quaero.org/">Quaero</a> a build in progress that got couple M€. According to the page <a href="http://www.quaero.org/modules/movie/scenes/home/index.php?fuseAction=article&amp;rubric=presentation&amp;article=presentationBudget">298</a>, according to the wikipedia <a href="http://en.wikipedia.org/wiki/Quaero#Announcements_and_history">99</a> from FR government (which is not listed on the official page at all). One million more or less ;-) definitely it is interesting budget.</p>

<p>And the takeovers? There Is More Than One Way To Do It. There Is More Than One View Of The World. And that the pages one visits are shaping an reshaping the personal world and opinions. Obvious? Yes, now yes for me. :-)</p>]]>
        
    </content>
</entry>

<entry>
    <title>The world is not black and white,</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/01/the-world-is-not-black-and-white.html" />
    <id>tag:jozef.kutej.net,2010://4.102</id>

    <published>2010-01-12T19:49:24Z</published>
    <updated>2010-01-12T21:07:43Z</updated>

    <summary>and there is no ultimate truth, and... From the computer point of view - it is a chaos. Fortunately from the human point of view it is beautiful. Some will replace the word beautiful for colourful, some for diverse, some...</summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Life" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<p>and there is no ultimate truth, and... From the computer point of view - it is a chaos. Fortunately from the human point of view it is beautiful.  Some will replace the word beautiful for colourful, some for diverse, some for always different, some for pain and some for hell...</p>

<p>We are now right there in this digital age. The are 10 types of people that either understand the binary or not. You like something or not, you use something or you don't, you are right or wrong, you do right or you do wrong, you follow someone or you don't care, you love someone or you hate. Or? No? Or mostly yes? Mostly no? More yes than no?</p>

<p>Now look at it this different way - the world is base 4. Yes? No? Probably yes? More likely no? :-) Who can say for sure? But you are free to choose any of the four answers. Where did I went for the inspiration? In DNA - ACGT. It is there inside us!</p>

<p>I don't mind if you tell me it is bullshit. For someone it is, for someone it is not, some will say most likely it is and some that there is a hope for that idea. :-)</p>

<p>(actually there is also another state - no opinion, but shhhhh don't tell anyone that it's possible to ignore the world)</p>
]]>
        
    </content>
</entry>

<entry>
    <title>A7: Article about a web site, blog, web forum, webcomic, podcast, browser game, or similar web content, which does not indicate the importance or significance of the subject (CSDH)</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/01/a7-article-about-a-web-site-blog-web-forum-webcomic-podcast-browser-game-or-similar-web-content-whic.html" />
    <id>tag:jozef.kutej.net,2010://4.97</id>

    <published>2010-01-09T16:19:59Z</published>
    <updated>2010-01-09T16:43:47Z</updated>

    <summary> Talk:Meonl.com I was inspired by other similar pages that already are in wikipedia and linked from Search_engines - Blackle.com, Sperse!_Search, Info.com, etc. If you remove Meonl.com that please give some reasons why wikipedia keeps the other ones. Jozef.kutej (talk)...</summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<ol>
<li>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="welcome-to-wikipedia.png" src="http://jozef.kutej.net/img/welcome-to-wikipedia.png" width="640" height="351" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>
</li>
<li>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="criteria-for-speedy-deletion.png" src="http://jozef.kutej.net/img/criteria-for-speedy-deletion.png" width="640" height="435" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>
</li>
<li>
<p><b>Talk:Meonl.com</b></p>
<p>
I was inspired by other similar pages that already are in wikipedia and linked from <a href="/wiki/Search_engines" title="Search engines" class="mw-redirect">Search_engines</a> - <a href="/wiki/Blackle.com" title="Blackle.com">Blackle.com</a>, <a href="/wiki/Sperse%21_Search" title="Sperse! Search">Sperse!_Search</a>, <a href="/wiki/Info.com" title="Info.com">Info.com</a>, etc. If you remove <a href="/wiki/Meonl.com" title="Meonl.com">Meonl.com</a> that please give some reasons why wikipedia keeps the other ones.</p>
<p><a href="/w/index.php?title=User:Jozef.kutej&amp;action=edit&amp;redlink=1" class="new" title="User:Jozef.kutej (page does not exist)">Jozef.kutej</a> (<a href="/wiki/User_talk:Jozef.kutej" title="User talk:Jozef.kutej">talk</a>) 11:43, 9 January 2010 (UTC)
</p>
</li>
<li>
<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="wikipedia-this-page-has-been-deleted.png" src="http://jozef.kutej.net/img/wikipedia-this-page-has-been-deleted.png" width="640" height="123" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>
</li>
</ol>

<hr/>

<p>The article:</p>

<table class="infobox" style="width: 22em; text-align: left; font-size: 88%; line-height: 1.5em;" cellspacing="5">
<tbody><tr class="">
<th style="text-align: left;"><a href="/wiki/Uniform_Resource_Locator" title="Uniform Resource Locator">URL</a></th>
<td class="" style=""><a href="http://meonl.com/" class="external free" rel="nofollow">http://meonl.com/</a></td>

</tr>
<tr class="">
<th style="text-align: left;">Commercial?</th>
<td class="" style="">No</td>
</tr>
<tr class="">
<th style="text-align: left;">Type of site</th>
<td class="" style=""><a href="/wiki/Search_engine" title="Search engine" class="mw-redirect">Search engine</a></td>
</tr>
<tr class="">
<th style="text-align: left;">Registration</th>
<td class="" style="">No</td>

</tr>
<tr class="">
<th style="text-align: left;">Available <a href="/wiki/Natural_language" title="Natural language">language</a>(s)</th>
<td class="" style=""><a href="/wiki/English_language" title="English language">English</a>,</td>
</tr>
<tr class="">
<th style="text-align: left;">Created by</th>
<td class="" style="">Jozef Kutej</td>
</tr>
<tr class="">

<th style="text-align: left;">Launched</th>
<td class="" style="">January <a href="/wiki/2010" title="2010">2010</a></td>
</tr>
<tr class="">
<th style="text-align: left;">Current status</th>
<td class="" style="">Active</td>
</tr>
</tbody></table>
<p><b>Meonl</b> is a website powered by any search engine that allows to be run in <a href="/wiki/HTML_element#Frames" title="HTML element">HTML_element#Frames</a>. Having one input box to do a search on couple of <a href="/wiki/Search_engines" title="Search engines" class="mw-redirect">search engines</a> allows to compare the results very easily.</p>

<table id="toc" class="toc">
<tbody><tr>
<td>
<div id="toctitle">
<h2>Contents</h2>
</div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#History"><span class="tocnumber">1</span> <span class="toctext">History</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#Concept"><span class="tocnumber">2</span> <span class="toctext">Concept</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="#Examination"><span class="tocnumber">3</span> <span class="toctext">Examination</span></a></li>

<li class="toclevel-1 tocsection-4"><a href="#Usage"><span class="tocnumber">4</span> <span class="toctext">Usage</span></a>
<ul>
<li class="toclevel-2 tocsection-5"><a href="#Examples"><span class="tocnumber">4.1</span> <span class="toctext">Examples</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-6"><a href="#External_links"><span class="tocnumber">5</span> <span class="toctext">External links</span></a></li>
</ul>
</td>

</tr>
</tbody></table>
<h2><span class="mw-headline" id="History">History</span></h2>
<p>Created as new year 2010 free time JQuery excercise.</p>
<h2> <span class="mw-headline" id="Concept">Concept</span></h2>

<p>Idea is to make use of wide screens to display more than one search engine at a time side by side. While there are just a couple of major search engines there are a lot of local ones that the users will simply not even try. Having split screen leaves the favourite search engine and shows also the results from an alternative one.</p>
<p>The concept of split screen is also a test how the internet users would like the idea of having a lot of information on one screen. If it proves to be useful than the webmasters should start to think of optimizing not only for low screen resolutions but also for high screen resolutions.</p>
<h2></span> <span class="mw-headline" id="Examination">Examination</span></h2>
<p>As there is rarely one truth answer. There is never one truth search results. Having results from two different companies (that have different people, different culture and different indexes) gives interesting results.</p>
<h2><span class="mw-headline" id="Usage">Usage</span></h2>

<p><b><a href="http://search.meonl.com/en/" class="external free" rel="nofollow">http://search.meonl.com/en/</a></b> url accepts two parameters. "s" and "q". Using "s" a list of desired search engine columns can be set. Using "q" the search query is set.</p>
<h3><span class="mw-headline" id="Examples">Examples</span></h3>
<ul>
<li><a href="http://search.meonl.com/en/?s=gb" class="external text" rel="nofollow">Google vs Bing</a></li>
<li><a href="http://search.meonl.com/en/?s=gac" class="external text" rel="nofollow">Google vs Ask vs Cuil</a></li>
<li><a href="http://search.meonl.com/en/?s=wu" class="external text" rel="nofollow">Wikipedia vs Uncyclopedia</a></li>

<li><a href="http://search.meonl.com/en/?s=sC" class="external text" rel="nofollow">Seznam.cz vs Centrum.cz</a></li>
</ul>
<ul>
<li><a href="http://search.meonl.com/en/?s=gaG&amp;q=alternative%20search%20engine" class="external text" rel="nofollow">Search for alternative search engines</a></li>
</ul>
<h2><span class="mw-headline" id="External_links">External links</span></h2>
<ul>
<li><a href="http://search.meonl.com/" class="external text" rel="nofollow">Official website</a></li>
<li><a href="http://search.meonl.com/en/about.html" class="external text" rel="nofollow">About</a></li>

<li><a href="http://jozef.kutej.net/2010/01/wide-screen-let-the-search-engines-fight.html" class="external text" rel="nofollow">Blog entry announcing the page</a></li>
</ul>
]]>
        
    </content>
</entry>

<entry>
    <title>Wide screen? Let the search engines fight!</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/01/wide-screen-let-the-search-engines-fight.html" />
    <id>tag:jozef.kutej.net,2010://4.95</id>

    <published>2010-01-07T21:10:53Z</published>
    <updated>2010-01-07T21:21:56Z</updated>

    <summary> Google vs Cuil vs Yahoo vs ... Wide screen offers a lot of horizontal space so why not to use it and search with two (or more) search engines at the same time? Try search.meonl.com (about). Where is the...</summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<a href="http://search.meonl.com/"><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="search-meonl-com.png" src="http://jozef.kutej.net/img/search-meonl-com.png" width="128" height="128" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></span></a>

<p><a href="http://google.com/">Google</a> vs <a href="http://cuil.com/">Cuil</a> vs <a href="http://yahoo.com/">Yahoo</a> vs ...</p>

<p>Wide screen offers a lot of horizontal space so why not to use it and search with two (or more) search engines at the same time? Try <a href="http://search.meonl.com/">search.meonl.com</a> (<a href="http://search.meonl.com/en/about.html">about</a>).</p>

<p>Where is the Perl there? There in the back. In the name of <a href="http://yapceurope2009.org/ye2009/talk/1930">static can be more</a> the meonl.com files are pure HTML+CSS+JS generated using <a href="http://search.cpan.org/perldoc?Template">Template Toolkit</a> ttree and some <a href="http://jozef.kutej.net/2009/11/make-for-fun-and-profit.html">Makefile rules</a>.</p>

<p>The <a href="http://search.meonl.com/">search.meonl.com</a> page is basically an input box and 1 or more iframes with search engines. Submitting a text in the input box results in reloading search engines with a search url.</p>

<p>Why was the <a href="http://search.meonl.com/">search.meonl.com</a> created? I got an idea how to do the web searches a little different way. But then I've realized - who the hell will try just another <a href="http://en.wikipedia.org/wiki/Web_search_engine">search engine</a>??? Well no one of course :-), but if there will be a way to keep <a href="http://google.com/">Google</a> (or any other major search engine) next to the new one, may there will be a little chance... I will probably never have enough time, money, energy and the rest one needs to start and finish such a project, but at least now there is a way how to compare how good the current search engines are - side by side.</p>

<p>The few days that I'm playing and searching with multiple search engines at once made me realize that, yes - the search engines are different. And yes - the other (than <a href="http://google.com/">Google</a> in my case) search engines can give better results sometimes. :-)</p>
]]>
        
    </content>
</entry>

<entry>
    <title>I feel like no one ever told the truth to me...</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2010/01/me-a-perl-kid.html" />
    <id>tag:jozef.kutej.net,2010://4.92</id>

    <published>2010-01-04T19:14:39Z</published>
    <updated>2010-01-04T19:19:42Z</updated>

    <summary> I feel like no one ever told the truth to me About growing up and what a struggle it would be In my tangled state of mind, I&apos;ve been looking back to find where I went wrong. -- Queen...</summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Life" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<p>
<cite>
I feel like no one ever told the truth to me<br/>
About growing up and what a struggle it would be<br/>
In my tangled state of mind,<br/>
I've been looking back to find where I went wrong.<br/>
-- Queen - Too Much Love Will Kill You
</cite>
</p>

<p>There are people that say reinventing the wheel is bad, that it shouldn't be done. That we should find an existing project and contribute there. Some even say that there are too many variants and choices of CPAN modules that are doing the same thing, and it is wrong. That it is contra productive and scary for the newbies. There are people that call them self CPAN police that hunt down new uploaders trying to show them how many mistakes they made...</p>

<p>Now look at the kids. Those experience <a href="http://news.bbc.co.uk/2/hi/education/4697461.stm">deferred success</a> 1000 times a day. Even if they don't fail they play most of the day. They play by repeating, copying from adults or other kids. They speak the same sentences wrongly over and over. They do the same things over and over. They fail over and over. They are just kids. Every one knows that this is how they learn. Next to the kids there is always some adult. Until the kids are really small, the adults seems like perfect to them, because they just do everything perfect.</p>

<p>After growing up, one day, kids finds out that the adults are not perfect. They don't do always the right thinks. And they don't know everything. The trouble is that there are many adults that think that they perfect are. But that is different topic. Let's go back to childhood.</p>

<p>To be precise the Perl programmer childhood. Perl programmer life. The difference is everyone is free to be born to the Perl world and grow up here. The other nice thing is that everyone is free to leave it and go and live a different life.</p>

<p>/me a Perl kid. I like to play, I like to try out things. I like to reinvent the wheel over and over. I don't mind that there are Perl grown-ups that do the same thing much better than I do. I don't mind that I will hit the ground while doing weird experiments. And? It's fun and everybody has to fall the first time. (and second and third and ...) And I'm just a kid!</p>

<p>The Perl world is different to the "reality". The biggest difference is that it's hard to see the age. Everyone is growing with a different rate and some will never grow up - like me :-P</p>

<p>So I would like encourage all kids to come play with toys, throw them away if they don't like them any more and not be ashamed that they "just" build "another" sandcastle. You can always destroy it and build another one, don't you?</p>

<p>Now back to the desert of the real. There is a plenty of legacy Perl code every where around us. Legacy sometimes mean undocumented, unmaintained, badly written or just not understood. Sending bad words and blaming people that wrote it will not fix the situation. Everyone is doing the best he can, considering his experience, mood, moon phase, weather conditions, ... at the time of writing the code. If the makes the job done, it is good. If it makes someone happy writing it, it is even better. And if there is no replacement, it is the best code ever!</p>
]]>
        
    </content>
</entry>

<entry>
    <title>Just put it where it belongs</title>
    <link rel="alternate" type="text/html" href="http://jozef.kutej.net/2009/12/just-put-it-where-it-belongs.html" />
    <id>tag:jozef.kutej.net,2009://4.91</id>

    <published>2009-12-17T20:04:16Z</published>
    <updated>2009-12-29T11:41:34Z</updated>

    <summary>Still there after reading this and this?. What I would like to show next is Module::Build::SysPath and the usage for CPAN authors. What are the features? pre/post install paths (dev+test/prod) system paths configured once when Sys::Path is installed &quot;Debian way&quot;...</summary>
    <author>
        <name>Jozef Kutej</name>
        <uri>http://search.cpan.org/~jkutej/</uri>
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://jozef.kutej.net/">
        <![CDATA[<p>Still there after reading <a href="http://jozef.kutej.net/2009/12/once-uppon-a-time-there-was-a-sysadmin.html">this</a> and <a href="http://jozef.kutej.net/2009/12/use-config-discover-your-path.html">this</a>?. What I would like to show next is <a href="http://search.cpan.org/perldoc?Module::Build::SysPath">Module::Build::SysPath</a> and the usage for <a href="http://hexten.net/cpan-faces/">CPAN authors</a>. What are the features?</p>

<ul>
<li>pre/post install paths (dev+test/prod)
<li>system paths configured once when <a href="http://search.cpan.org/perldoc?Sys::Path">Sys::Path</a> is installed
<li>"Debian way" of handling configuration files
<li>automatic all files copying
<li>creating of empty folders (for state, log, etc. files)
</ul>

<p>
The main reason for existence is to install files (configuration, templates, data files, ...) where <a href="http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard">FHS</a> recommends and also to know where to put temporary files (like state, lock, cache, ...).
</p>

<p>
There are couple of stages that the CPAN distribution is going through. Development, smoke testing, pre install and install stage. In all of those it is good to know where our files are. :-P Before the final install the files are always inside the distribution folder, only after install the files are in the system folders. There for the <a href="http://search.cpan.org/perldoc?Module::Build::SysPath">Module::Build::SysPath</a> requires a special module YouModuleName::SPc that gets overwritten with values from <a href="http://search.cpan.org/perldoc?Sys::Path">Sys::Path</a> once installed.
</p>

<p>
There are, as always, couple of other ways how to store and work with non-perl modules files. Here are some that I'm aware of:
</p>

<ul>
<li>storing data inside __DATA__ in .pm file
<li>storing files in the same folder as .pm files
<li>storing files in auto/ - <a href="http://search.cpan.org/perldoc?File::ShareDir">File::ShareDir</a>
<li>hardcoded system folders
<li>use Sys::Path paths directly
<li>???
</ul>

<p>Everyone can choose.</p>]]>
        
    </content>
</entry>

</feed>
