<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dcterms="http://purl.org/rss/1.0/modules/dcterms/" version="2.0">
  <channel>
    <generator>Plagger/0.7.15</generator>
    <link>http://use.perl.org/search.pl?op=journals</link>
    <title>use.perl journals</title>
    <pubDate>Thu, 11 Mar 2010 02:50:24 -0800</pubDate>
    <item>
      <author>nobody@example.com (jozef)</author>
      <dc:creator>nobody@example.com (jozef)</dc:creator>
      <link>http://use.perl.org/~jozef/journal/40239</link>
      <description>&lt;div class="intro"&gt;&lt;a href="http://pkg-perl.alioth.debian.org/howto/RFP.html" rel="nofollow"&gt;http://pkg-perl.alioth.debian.org/howto/RFP.html&lt;/a&gt;&lt;/div&gt;
</description>
      <dc:date>2010-03-11T06:35:00</dc:date>
      <title>How to get a CPAN module into Debian</title>
      <pubDate>Thu, 11 Mar 2010 06:35:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;a href="http://pkg-perl.alioth.debian.org/howto/RFP.html" rel="nofollow"&gt;http://pkg-perl.alioth.debian.org/howto/RFP.html&lt;/a&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-11T06:35:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~jozef/journal/40239</guid>
    </item>
    <item>
      <author>nobody@example.com (jozef)</author>
      <dc:creator>nobody@example.com (jozef)</dc:creator>
      <link>http://use.perl.org/~jozef/journal/40238</link>
      <description>"The squeeze freeze is also just around the corner AFAIK so I don't think
there's much chance of 5.12 making it in. If somebody wants to step up
and push for it, they should definitely talk to the release team first."

http://lists.debian.org/debian-perl/2010/03/msg00045.html</description>
      <dc:date>2010-03-11T06:01:00</dc:date>
      <title>Perl 5.12 for Squeeze?</title>
      <pubDate>Thu, 11 Mar 2010 06:01:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;&amp;quot;The squeeze freeze is also just around the corner AFAIK so I don&amp;apos;t think there&amp;apos;s much chance of 5.12 making it in. If somebody wants to step up and push for it, they should definitely talk to the release team first.&amp;quot;&lt;/p&gt;&lt;p&gt;&lt;a href="http://lists.debian.org/debian-perl/2010/03/msg00045.html" rel="nofollow"&gt;http://lists.debian.org/debian-perl/2010/03/msg00045.html&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-11T06:01:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~jozef/journal/40238</guid>
    </item>
    <item>
      <author>nobody@example.com (Ron Savage)</author>
      <dc:creator>nobody@example.com (Ron Savage)</dc:creator>
      <link>http://use.perl.org/~Ron+Savage/journal/40237</link>
      <description>Hi Folks

I've created a page for my Debian TiddlyWiki, which I've built up since
switching to Debian.

The skeleton *.deb file linked to on that page is discussed in the
TiddlyWiki.

A TiddlyWiki is a 1-page wiki with a built-in editor.

Download an empty TiddlyWiki from this page.

Lastly, a warning: Avoid Google's chrome browser (yes, I know it's damn
fast) until you've understood the implications of these notes.

Basically, chrome 'rectifies' your HTML by upper-casing it, so the
TiddlyWiki's editor stops working.</description>
      <dc:date>2010-03-10T19:42:00</dc:date>
      <title>Go on, install Debian. You know you want to...</title>
      <pubDate>Wed, 10 Mar 2010 19:42:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;Hi Folks&lt;/p&gt;&lt;p&gt;I&amp;apos;ve created a page for my &lt;a href="http://savage.net.au/Debian.html" rel="nofollow"&gt;Debian TiddlyWiki&lt;/a&gt;, which I&amp;apos;ve built up since switching to Debian.&lt;/p&gt;&lt;p&gt;The skeleton *.deb file linked to on that page is discussed in the TiddlyWiki.&lt;/p&gt;&lt;p&gt;A &lt;a href="http://tiddlywiki.org/wiki/Main_Page" rel="nofollow"&gt;TiddlyWiki&lt;/a&gt; is a 1-page wiki with a built-in editor.&lt;/p&gt;&lt;p&gt;Download an empty TiddlyWiki from &lt;a href="http://tiddlywiki.org/wiki/TiddlyWiki" rel="nofollow"&gt;this page&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Lastly, a warning: Avoid Google&amp;apos;s chrome browser (yes, I know it&amp;apos;s damn fast) until you&amp;apos;ve understood the implications of &lt;a href="http://tiddlywiki.org/wiki/Chrome" rel="nofollow"&gt;these notes&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Basically, chrome &amp;apos;rectifies&amp;apos; your HTML by upper-casing it, so the TiddlyWiki&amp;apos;s editor stops working.&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-10T19:42:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~Ron+Savage/journal/40237</guid>
    </item>
    <item>
      <author>nobody@example.com (kappa)</author>
      <dc:creator>nobody@example.com (kappa)</dc:creator>
      <link>http://use.perl.org/~kappa/journal/40236</link>
      <description>There's a new site by Mark Keating from UK: Presenting Perl. It's
reportedly based on something called IdiotBox(?!).

There's also YAPC.tv which is more attractive. It also has more features,
e.g. RSS feeds.

And it's too bad that we still have only two videos from YAPC::Europe
2009 available on the web after almost a year and an excplicit written
permission from everyone to publish the recordings.

(surprise) Programmers are more interested in producing tools for content
than in producing content.</description>
      <dc:date>2010-03-10T09:41:00</dc:date>
      <title>Presenting Perl</title>
      <pubDate>Wed, 10 Mar 2010 09:41:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;There&amp;apos;s a new site by Mark Keating from UK: &lt;a href="http://www.presentingperl.org/" rel="nofollow"&gt;Presenting Perl&lt;/a&gt;. It&amp;apos;s reportedly based on something called IdiotBox(?!). &lt;/p&gt;&lt;p&gt;There&amp;apos;s also &lt;a href="http://yapc.tv/" rel="nofollow"&gt;YAPC.tv&lt;/a&gt; which is more attractive. It also has more features, e.g. RSS feeds. &lt;/p&gt;&lt;p&gt;And it&amp;apos;s too bad that we still have &lt;a href="http://videos.sapo.pt/tag.html?yapceu09" rel="nofollow"&gt;only two videos&lt;/a&gt; from YAPC::Europe 2009 available on the web after almost a year and an excplicit written permission from everyone to publish the recordings. &lt;/p&gt;&lt;p&gt;&lt;i&gt;(surprise) Programmers are more interested in producing tools for content than in producing content.&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-10T09:41:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~kappa/journal/40236</guid>
    </item>
    <item>
      <author>nobody@example.com (xsawyerx)</author>
      <dc:creator>nobody@example.com (xsawyerx)</dc:creator>
      <link>http://use.perl.org/~xsawyerx/journal/40235</link>
      <description>&lt;div class="intro"&gt;&lt;a href="http://blogs.perl.org/users/sawyer_x/2010/03/speeding-up-code.html" rel="nofollow"&gt;Speeding Up Code&lt;/a&gt;&lt;/div&gt;
</description>
      <dc:date>2010-03-10T07:44:00</dc:date>
      <title>Speeding Up Code</title>
      <pubDate>Wed, 10 Mar 2010 07:44:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;a href="http://blogs.perl.org/users/sawyer_x/2010/03/speeding-up-code.html" rel="nofollow"&gt;Speeding Up Code&lt;/a&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-10T07:44:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~xsawyerx/journal/40235</guid>
    </item>
    <item>
      <author>nobody@example.com (ddick)</author>
      <dc:creator>nobody@example.com (ddick)</dc:creator>
      <link>http://use.perl.org/~ddick/journal/40234</link>
      <description>I have a application written as CGI scripts that run under mod_perl mode
via ModPerl::Registry or if anyone still uses it Apache::Registry. It
also connects to a variety of databases, including Microsoft SQL Server
via freetds.

Freetds can be controlled via a freetds.conf config file or environment
variables.

I liked the idea of using the distros freetds libraries (actually,
freetds contains the ct library, which is the only one that DBD::Sybase
cares about) and i thought i could avoid the issues with me and everyone
else writing to the freetds.conf file by using environment variables.

Which worked well until it ran in mod_perl

Then it died horribly

Turns out that controlling a C shared library via setting environment
variables in perl is tricky in mod_perl

Just a note in case someone else tries configuring mod_perl to talk to
SQL Server via environment variables

However, so long as you use the freetds.conf file, SQL Server and
mod_perl get along fine... :)</description>
      <dc:date>2010-03-09T05:27:00</dc:date>
      <title>mod_perl, freetds and environment variables???</title>
      <pubDate>Tue, 09 Mar 2010 05:27:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;I have a application written as CGI scripts that run under mod_perl mode via ModPerl::Registry or if anyone still uses it Apache::Registry. It also connects to a variety of databases, including Microsoft SQL Server via freetds.&lt;/p&gt;&lt;p&gt;Freetds can be controlled via a freetds.conf config file or environment variables.&lt;/p&gt;&lt;p&gt;I liked the idea of using the distros freetds libraries (actually, freetds contains the ct library, which is the only one that DBD::Sybase cares about) and i thought i could avoid the issues with me and everyone else writing to the freetds.conf file by using environment variables.&lt;/p&gt;&lt;p&gt;Which worked well until it ran in mod_perl&lt;/p&gt;&lt;p&gt;Then it died horribly&lt;/p&gt;&lt;p&gt;Turns out that controlling a C shared library via setting environment variables in perl is tricky in mod_perl&lt;/p&gt;&lt;p&gt;Just a note in case someone else tries configuring mod_perl to talk to SQL Server via environment variables&lt;/p&gt;&lt;p&gt;However, so long as you use the freetds.conf file, SQL Server and mod_perl get along fine...&lt;nobr&gt; &lt;wbr /&gt;&lt;/nobr&gt;:)&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-09T05:27:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~ddick/journal/40234</guid>
    </item>
    <item>
      <author>nobody@example.com (Eric Wilhelm)</author>
      <dc:creator>nobody@example.com (Eric Wilhelm)</dc:creator>
      <link>http://use.perl.org/~Eric+Wilhelm/journal/40233</link>
      <description>The mentor org activities for this year's Google Summer of Code are
getting underway.

Now is the time to get involved if you are interested in mentoring or
helping The Perl Foundation find students to hack on perl, parrot, or
cpan modules this summer.</description>
      <dc:date>2010-03-09T03:54:00</dc:date>
      <title>Google Summer of Code is coming</title>
      <pubDate>Tue, 09 Mar 2010 03:54:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;The mentor org activities for this year&amp;apos;s Google Summer of Code &lt;a href="http://leto.net/dukeleto.pl/2010/03/google-summer-of-code-2010.html" rel="nofollow"&gt;are getting underway&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Now is the time to get involved if you are interested in mentoring or helping The Perl Foundation find students to hack on perl, parrot, or cpan modules this summer.&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-09T03:54:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~Eric+Wilhelm/journal/40233</guid>
    </item>
    <item>
      <author>nobody@example.com (masak)</author>
      <dc:creator>nobody@example.com (masak)</dc:creator>
      <link>http://use.perl.org/~masak/journal/40232</link>
      <description>Ever wonder why bash closes if blocks with fi? This practice was
inctroduced in Algol 68, a language that Perl 6 was accused of
reinventing yesterday on the perl6-language list.

Curious, I went to the Wikipedia article to read up on Algol 68.

ALGOL 68 (short for ALGOrithmic Language 1968) is an imperative computer
programming language that was conceived as a successor to the ALGOL 60
programming language, designed with the goal of a much wider scope of
application and more rigorously defined syntax and semantics.</description>
      <dc:date>2010-03-08T18:01:00</dc:date>
      <title>The ghost of Algol 68</title>
      <pubDate>Mon, 08 Mar 2010 18:01:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;Ever wonder why &lt;code&gt;bash&lt;/code&gt; closes &lt;code&gt;if&lt;/code&gt; blocks with &lt;code&gt;fi&lt;/code&gt;? This practice was inctroduced in &lt;a href="http://en.wikipedia.org/wiki/ALGOL_68" rel="nofollow"&gt;Algol 68&lt;/a&gt;, a language that Perl 6 &lt;a href="http://www.nntp.perl.org/group/perl.perl6.language/2010/03/msg33321.html" rel="nofollow"&gt;was accused of reinventing&lt;/a&gt; yesterday on the &lt;code&gt;perl6-language&lt;/code&gt; list.&lt;/p&gt;&lt;p&gt;Curious, I went to &lt;a href="http://en.wikipedia.org/wiki/ALGOL_68" rel="nofollow"&gt;the Wikipedia article&lt;/a&gt; to read up on Algol 68.&lt;/p&gt;&lt;p&gt;&lt;div class="quote"&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;ALGOL 68 (short for ALGOrithmic Language 1968) is an imperative computer programming language that was conceived as a successor to the ALGOL 60 programming language, designed with the goal of a much wider scope of application and more rigorously defined syntax and semantics.&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-08T18:01:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~masak/journal/40232</guid>
    </item>
    <item>
      <author>nobody@example.com (xsawyerx)</author>
      <dc:creator>nobody@example.com (xsawyerx)</dc:creator>
      <link>http://use.perl.org/~xsawyerx/journal/40231</link>
      <description>&lt;div class="intro"&gt;&lt;a href="http://blogs.perl.org/users/sawyer_x/2010/03/dancer-1160.html" rel="nofollow"&gt;Dancer 1.160 is out!&lt;/a&gt;&lt;/div&gt;
</description>
      <dc:date>2010-03-08T05:52:00</dc:date>
      <title>Dancer 1.160 is out!</title>
      <pubDate>Mon, 08 Mar 2010 05:52:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;a href="http://blogs.perl.org/users/sawyer_x/2010/03/dancer-1160.html" rel="nofollow"&gt;Dancer 1.160 is out!&lt;/a&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-08T05:52:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~xsawyerx/journal/40231</guid>
    </item>
    <item>
      <author>nobody@example.com (perl6doc)</author>
      <dc:creator>nobody@example.com (perl6doc)</dc:creator>
      <link>http://use.perl.org/~perl6doc/journal/40230</link>
      <description>an impressive post like that one a week ago won't come again so fast.
Last days I added Pawel Murias and Gabor and mentioned pixie, but the
main part is done here. The timeline (structured and with 33 items) is
now also mostly done. You can also see that we exceeded the zenith of
edits. The number of articles touched in last 14 days is now sinking
rapidly. it So whats next?

Well renee needs the next perl 6 article, which I want deliver this week.
All the experience I collected writing the 200+ changes in last 2 weeks
will go into that. But my next goal for the TPF wiki will be the
translation of my perl 6 tut and the release of Kephra 0.4.3, which is
some weeks overdue.</description>
      <dc:date>2010-03-07T21:21:00</dc:date>
      <title>the low hanging fruits are gone</title>
      <pubDate>Sun, 07 Mar 2010 21:21:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;an impressive post like that one a week ago won&amp;apos;t come again so fast. Last days I added Pawel Murias and Gabor and mentioned pixie, but the main part is done here. The &lt;a href="http://www.perlfoundation.org/perl6/index.cgi?timeline" rel="nofollow"&gt;timeline&lt;/a&gt; (structured and with 33 items) is now also mostly done. You can also see that we exceeded the zenith of edits. The number of articles touched in last 14 days is now sinking rapidly. it So whats next? &lt;br /&gt;&lt;br /&gt; Well &lt;a href="http://reneeb-perlblog.blogspot.com/" rel="nofollow"&gt;renee&lt;/a&gt; needs the next perl 6 article, which I want deliver this week. All the experience I collected writing the 200+ changes in last 2 weeks will go into that. But my next goal for the TPF wiki will be the translation of my &lt;a href="http://www.perlfoundation.org/perl6/index.cgi?perl_6_tutorial" rel="nofollow"&gt;perl 6 tut&lt;/a&gt; and the release of &lt;a href="http://kephra.sourceforge.net/site/en/home_news.shtml" rel="nofollow"&gt;Kephra 0.4.3&lt;/a&gt;, which is some weeks overdue.&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-07T21:21:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~perl6doc/journal/40230</guid>
    </item>
    <item>
      <author>nobody@example.com (scrottie)</author>
      <dc:creator>nobody@example.com (scrottie)</dc:creator>
      <link>http://use.perl.org/~scrottie/journal/40228</link>
      <description>I have to get pedantic here, as apparently did $boss. I was given
instructions on how to go about getting people's attention if I get
stuck. I've been repeatedly told to ask questions if I get stuck. At
first, I said no problem, will do. I'm well aware that the most common
gripe with consultants is that they don't ask for help. I try to offer a
good user experience (ha!) and have a laundry list of things to do and
not to do. Frequently status reports is another one. I'm adding frequent
git commits to the list in light of recent experience. Like BASIC, CVS
ruined me a bit. I've been trained not to commit non-working code. With
easy branching, this edict is no longer useful.

Back to "let us know if you get stuck". The first few times I heard this,
I enthusiastically agreed with it. Absolutely will do! My take on this
was to give frequent status reports. If I say "still working on X" four
days running, someone will step in and look at the code.

The next few times, after this was repeated me to with a sound of
frustration and exasperation, I started to ask questions and point out
ways that it really wasn't that simple, but they seem to have been taken
as cop outs and excuses. As the consultant, it's my job to make the
problem go away, and I'm fine with that, but I'm wondering if it isn't
exactly that mindset that got me in this mess.

"Why isn't this working for me?" "Don't know, that method is used all
over the code and it's in the tests and it works fine." This one was
delivered to me in person walking back from dinner. The message there is
clear: find the problem, write a test that exposes it, and then we'll fix
it. That's fine. Free Software does that all the time and I'm perfectly
capable of slogging through large amounts of code. What I'm not capable
of is doing this under the sort of deadline expected where no one spends
any time stuck because another "teammember" rushes to answer any
question. Contrarily, in Free Software, people seem to take far more
responsibility for their code.

Sitting on #perl5i recently, someone griped about autobox::Core not using
wantarray to avoid people having to manually call -&gt;flatten on arrayrefs.
I completely agreed. In fact, I had been wanting to do that improvement
but I was afraid that it would break code. The people with the largest
stake wanted the change. Another autobox:: module is used in perl5i. The
author was mailed asking that he do the same thing. He replied, "I fixed
it with time travel!". Turns out that he already was doing that and we
somehow missed the fact. The reply was immediate. I wrote this as a
contrast to the "find it and fix it if you want to" attitude in a team
that's supposed to "ask for help as soon as you get stuck".

I also wanted to paint a portrait of how looking good and maximizing
efficiency are often at odds. Bosses tend to have unrealistic
expectations about people's willingness to sacrifice looking good for
efficiency, and they tend to see what they want to see in this,
furthering the problem. In this case, I think there's some solid clue
here, though. Taking time to look through your code and someone else's
code to diagnose a problem costs you time; that hurts your own RT docket
progress which makes you look bad. Actually finding a problem in your
code makes you look bad.

In the case of the $work code, the problem was that a library nested
several calls in was directly hitting CGI vars in $ENV even though other
code much earlier on already ripped the same values and put them into
arguments, and it wasn't being called in the CGI environment. If I had
written the code that did this, I'd have been awfully embarrassed. But
the author of this code said nothing when I remarked.

My feelings of dread and defeat hearken back to my pre-college days,
temping. Once I had a data entry job on VAX/VMS, of all things. Another I
was doing data entry on one of the hugely popular IBM 3/60 style mini
computer known as the AS/400. In both cases, I was put into a very
casual, relaxed, loosely supervised office atmosphere where a few women
had a few tasks that took a small part of their day and who were then
told to train me up. In both cases, about a week later, the supervisor
came and asked if I knew how to do "X", where "X" was a task that I had
never been instructed on. In both cases, the women responsible for me
kind of looked at each other awkwardly for a moment and then lied through
their teeth saying that they had shown me X and that I wasn't getting it.
I was fired -- or sent back. Firing a temp is the easiest thing in the
world to do, easier than not ordering overpriced desert. As I so often
do, these people worked against their own interests by being lazy in the
short term at the expense of being able to be lazy in the short term.
Sloppy programming practice always fits this bill. I guess the lesson is
to never trust sloppy programmers to bring other programmers up to speed.

It was also amusing that at that point in temping, I'd been bouncing off
of VAX systems for guest access from terminal servers and had gotten
stuck in a COBOL programming class at a community college for highschool
credit programming the AS/400 system. In both cases where I was accused
of not adequately learning how to do data entry on these systems, I'd
done sysadminish things or programming.

So I'm hearing "let us know if you get stuck" with increasing frequency
in a work place setting where $boss is too busy with other tasks to tend
to day to day operations and doesn't see questions asked and not answered
on the channel and this dread has set in. I'm having those dreams where
the same thing happens and I'm powerless to stop it. In all of my
consulting, I've almost always learned the really valuable lessons too
late and that makes it hard to not obsess over the lesson at the expense
of actually doing work. The urge to sit in my crappy torn leather office
chair its missing wheels and ass smell and just rock back and forth
overwhelms me (the urge, not the ass smell). Asking around a bit, I've
talked to a few other places where the management situation is exactly
the same.

So when do you declare yourself stuck? 15 minutes in? What if the task
normally takes 15 minutes when not stuck? How the fuck should I know,
never having done this task before, how long it could reasonably be
expected to take? This is the root of reason why some consultants (the
novices) horribly under estimate everything (sometimes on purpose, out of
desperation) and others (the pros) horribly over-estimate (sometimes on
purpose, out of hubris). Then if I declare myself stuck and get no
pointers, I'm demoralized. That escalates a situation.

It was long ago observed that the more people in a room a message is
directed at, the less likely any one is to reply. "In a room" is
important.

I'm taking my co-telecommuter as an example. I don't know if he direct
messages people. Probably. Also, he never seems to concede to being
"stuck". Every report from him is that he's working on "X" or "Y". People
might be directed to see what he's doing.

The next few times I heard this "if you get stuck" line, I remarked that
I had no way of knowing if I was stuck so all I could do is give daily
status reports and other people should decide whether I'm spinning my
wheels, and that I'm not qualified to make that assessment. That's at
odds with my needing to be able to work independently. Having someone
read small daily status reports would amount to requiring supervision.
Other programmers are not going to do this sort of supervision and I
essentially report to them. Time for a new plan. Here are the options:

Isolate the failure into a small test case and check it into the master
branch, without permission, as a unit test for the module the failure is
observed in. Play up the "I found a bug" aspect and downplay the "I'm
stuck trying to get my assigned task to work" aspect. This strikes me as
passive aggressive but damn, these guys gave me a commit bit for some
reason. I might as well pretend like I deserve it.

Private message people. x11vnc mixed with Kopete makes this unattractive.
Kopete wedges for about the amount of time it takes me to walk to Circle
K and buy a tallboy of Mickeys and gaim wedged itself so badly that even
the usual trick of nuking directories can't get it to run again. I think
a lot of the problems here stem from working with people who didn't grow
up on IRC and don't converse as naturally (or more naturally) in text
than in spoken English. Seriously -- the time I spent on MUD, then #perl,
then writing email, and that fucking book thrown in there? Text wins,
hands down. I don't even answer my phone without prior arrangement.
That's led to some confusing and frustrating textual exchanges. As an
example, I discovered that a chunk of my company was in town. I was
invited for dinner and thought it was a joke -- "haha, yeah, I'll be
there a bit late". The fact that people were coming to town was just
never mentioned on the channel. Now and then, if there is casual
conversation on the channel, $boss will shush poeple. We've been told
"get to work". I generally take my lunch on the channel just as other
people take their lunch sitting together at a table at Wendy's. That
casual banter is vital. Sneaking off to the side in a private chat avoids
boss convo smooshing, too. Catching up with coworkers one by one is time
and energy consuming. This might be my best option, though.

Another option, one I've explored a bit, is to hack around problems by
any means necessary. My logic is this: this codebase got in its current
state somehow and it wasn't through thoughtful re-evaluation of previous
design decisions everytime a snafu came up. That lead me to doing a few
things that I consider profoundly indicative problems in my code. This
code made it through code review without comment. This doesn't mean that
I'm a good programmer or that other people are bad, just that I need to
have more faith in sinking into the correct level of analness mindset. In
fact, trying to talk through options in one case where I was "stuck", I
was accused of "causing much gnashing of teeth". My nasty ass work-around
was fine, though. Oh, crap... I just realized that the "just fake the
data" approach that was handed to me is probably what caused another
blow-up later that required another nasty work-around. Technical debt
suffers from the tragedy of the commons problem.

I can't think of any other options right now.

I'm realizing that I often don't get really simple punchlines. For
example, Microsoft turned on automatic updates by default, yet most
Windows machines have malware. Even most office Windows machines do, as
reported by reputable security studies. The obvious punchline here is
that everyone turns off the fucking updates. They hose your machine.
Microsoft's "Genuine Advantage" and crap like that is more poorly written
than the malware whose exploits get patched in the same updates.
Likewise, everyone runs Ubuntu, but Ubuntu is based on Debian, and Debian
shits itself like nuts if you actually try to do an update. I've
witnessed this over and over again. Clearly all of these people
installing Ubuntu are turning the motherfucking updates off and
re-installing from scratch, just like the Linux people have been blasting
the Microsoft people for doing for so many years. I'm going to call this
"scrottie's principle of gay sex": everyone is doing it and no one talks
about it. In the realm of telecommuting and consulting, I desperately
need to learn how to put two and two together. Otherwise I risk missing
all of the really good buggery.

I need to write an essay on how to manage telecommuters. You can't not
look at brief status reports and then say that they "required too much
supervision". We're not like Perl frameworks where you just mix a bunch
of us in and we take care of all of the problems you're having in your
code.

I started writing this while I was "stuck" with something that turned out
to be a simple case of silent failure in code (help provided). Apt, I
think.

This post is an untested commit.

-scott</description>
      <dc:date>2010-03-05T16:27:00</dc:date>
      <title>On "Let us Know if You Get Stuck"</title>
      <pubDate>Fri, 05 Mar 2010 16:27:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;I have to get pedantic here, as apparently did $boss. I was given instructions on how to go about getting people&amp;apos;s attention if I get stuck. I&amp;apos;ve been repeatedly told to ask questions if I get stuck. At first, I said no problem, will do. I&amp;apos;m well aware that the most common gripe with consultants is that they don&amp;apos;t ask for help. I try to offer a good user experience (ha!) and have a laundry list of things to do and not to do. Frequently status reports is another one. I&amp;apos;m adding frequent git commits to the list in light of recent experience. Like BASIC, CVS ruined me a bit. I&amp;apos;ve been trained not to commit non-working code. With easy branching, this edict is no longer useful.&lt;/p&gt;&lt;p&gt;Back to &amp;quot;let us know if you get stuck&amp;quot;. The first few times I heard this, I enthusiastically agreed with it. Absolutely will do! My take on this was to give frequent status reports. If I say &amp;quot;still working on X&amp;quot; four days running, someone will step in and look at the code.&lt;/p&gt;&lt;p&gt;The next few times, after this was repeated me to with a sound of frustration and exasperation, I started to ask questions and point out ways that it really wasn&amp;apos;t that simple, but they seem to have been taken as cop outs and excuses. As the consultant, it&amp;apos;s my job to make the problem go away, and I&amp;apos;m fine with that, but I&amp;apos;m wondering if it isn&amp;apos;t exactly that mindset that got me in this mess.&lt;/p&gt;&lt;p&gt;&amp;quot;Why isn&amp;apos;t this working for me?&amp;quot; &amp;quot;Don&amp;apos;t know, that method is used all over the code and it&amp;apos;s in the tests and it works fine.&amp;quot; This one was delivered to me in person walking back from dinner. The message there is clear: find the problem, write a test that exposes it, and then we&amp;apos;ll fix it. That&amp;apos;s fine. Free Software does that all the time and I&amp;apos;m perfectly capable of slogging through large amounts of code. What I&amp;apos;m not capable of is doing this under the sort of deadline expected where no one spends any time stuck because another &amp;quot;teammember&amp;quot; rushes to answer any question. Contrarily, in Free Software, people seem to take far more responsibility for their code.&lt;/p&gt;&lt;p&gt;Sitting on #perl5i recently, someone griped about autobox::Core not using wantarray to avoid people having to manually call -&amp;gt;flatten on arrayrefs. I completely agreed. In fact, I had been wanting to do that improvement but I was afraid that it would break code. The people with the largest stake wanted the change. Another autobox:: module is used in perl5i. The author was mailed asking that he do the same thing. He replied, &amp;quot;I fixed it with time travel!&amp;quot;. Turns out that he already was doing that and we somehow missed the fact. The reply was immediate. I wrote this as a contrast to the &amp;quot;find it and fix it if you want to&amp;quot; attitude in a team that&amp;apos;s supposed to &amp;quot;ask for help as soon as you get stuck&amp;quot;.&lt;/p&gt;&lt;p&gt;I also wanted to paint a portrait of how looking good and maximizing efficiency are often at odds. Bosses tend to have unrealistic expectations about people&amp;apos;s willingness to sacrifice looking good for efficiency, and they tend to see what they want to see in this, furthering the problem. In this case, I think there&amp;apos;s some solid clue here, though. Taking time to look through your code and someone else&amp;apos;s code to diagnose a problem costs you time; that hurts your own RT docket progress which makes you look bad. Actually finding a problem in your code makes you look bad.&lt;/p&gt;&lt;p&gt;In the case of the $work code, the problem was that a library nested several calls in was directly hitting CGI vars in $ENV even though other code much earlier on already ripped the same values and put them into arguments, and it wasn&amp;apos;t being called in the CGI environment. If I had written the code that did this, I&amp;apos;d have been awfully embarrassed. But the author of this code said nothing when I remarked.&lt;/p&gt;&lt;p&gt;My feelings of dread and defeat hearken back to my pre-college days, temping. Once I had a data entry job on VAX/VMS, of all things. Another I was doing data entry on one of the hugely popular IBM 3/60 style mini computer known as the AS/400. In both cases, I was put into a very casual, relaxed, loosely supervised office atmosphere where a few women had a few tasks that took a small part of their day and who were then told to train me up. In both cases, about a week later, the supervisor came and asked if I knew how to do &amp;quot;X&amp;quot;, where &amp;quot;X&amp;quot; was a task that I had never been instructed on. In both cases, the women responsible for me kind of looked at each other awkwardly for a moment and then lied through their teeth saying that they had shown me X and that I wasn&amp;apos;t getting it. I was fired -- or sent back. Firing a temp is the easiest thing in the world to do, easier than not ordering overpriced desert. As I so often do, these people worked against their own interests by being lazy in the short term at the expense of being able to be lazy in the short term. Sloppy programming practice always fits this bill. I guess the lesson is to never trust sloppy programmers to bring other programmers up to speed.&lt;/p&gt;&lt;p&gt;It was also amusing that at that point in temping, I&amp;apos;d been bouncing off of VAX systems for guest access from terminal servers and had gotten stuck in a COBOL programming class at a community college for highschool credit programming the AS/400 system. In both cases where I was accused of not adequately learning how to do data entry on these systems, I&amp;apos;d done sysadminish things or programming.&lt;/p&gt;&lt;p&gt;So I&amp;apos;m hearing &amp;quot;let us know if you get stuck&amp;quot; with increasing frequency in a work place setting where $boss is too busy with other tasks to tend to day to day operations and doesn&amp;apos;t see questions asked and not answered on the channel and this dread has set in. I&amp;apos;m having those dreams where the same thing happens and I&amp;apos;m powerless to stop it. In all of my consulting, I&amp;apos;ve almost always learned the really valuable lessons too late and that makes it hard to not obsess over the lesson at the expense of actually doing work. The urge to sit in my crappy torn leather office chair its missing wheels and ass smell and just rock back and forth overwhelms me (the urge, not the ass smell). Asking around a bit, I&amp;apos;ve talked to a few other places where the management situation is exactly the same.&lt;/p&gt;&lt;p&gt;So when do you declare yourself stuck? 15 minutes in? What if the task normally takes 15 minutes when not stuck? How the fuck should I know, never having done this task before, how long it could reasonably be expected to take? This is the root of reason why some consultants (the novices) horribly under estimate everything (sometimes on purpose, out of desperation) and others (the pros) horribly over-estimate (sometimes on purpose, out of hubris). Then if I declare myself stuck and get no pointers, I&amp;apos;m demoralized. That escalates a situation.&lt;/p&gt;&lt;p&gt;It was long ago observed that the more people in a room a message is directed at, the less likely any one is to reply. &amp;quot;In a room&amp;quot; is important.&lt;/p&gt;&lt;p&gt;I&amp;apos;m taking my co-telecommuter as an example. I don&amp;apos;t know if he direct messages people. Probably. Also, he never seems to concede to being &amp;quot;stuck&amp;quot;. Every report from him is that he&amp;apos;s working on &amp;quot;X&amp;quot; or &amp;quot;Y&amp;quot;. People might be directed to see what he&amp;apos;s doing.&lt;/p&gt;&lt;p&gt;The next few times I heard this &amp;quot;if you get stuck&amp;quot; line, I remarked that I had no way of knowing if I was stuck so all I could do is give daily status reports and other people should decide whether I&amp;apos;m spinning my wheels, and that I&amp;apos;m not qualified to make that assessment. That&amp;apos;s at odds with my needing to be able to work independently. Having someone read small daily status reports would amount to requiring supervision. Other programmers are not going to do this sort of supervision and I essentially report to them. Time for a new plan. Here are the options:&lt;/p&gt;&lt;p&gt;Isolate the failure into a small test case and check it into the master branch, without permission, as a unit test for the module the failure is observed in. Play up the &amp;quot;I found a bug&amp;quot; aspect and downplay the &amp;quot;I&amp;apos;m stuck trying to get my assigned task to work&amp;quot; aspect. This strikes me as passive aggressive but damn, these guys gave me a commit bit for some reason. I might as well pretend like I deserve it.&lt;/p&gt;&lt;p&gt;Private message people. x11vnc mixed with Kopete makes this unattractive. Kopete wedges for about the amount of time it takes me to walk to Circle K and buy a tallboy of Mickeys and gaim wedged itself so badly that even the usual trick of nuking directories can&amp;apos;t get it to run again. I think a lot of the problems here stem from working with people who didn&amp;apos;t grow up on IRC and don&amp;apos;t converse as naturally (or more naturally) in text than in spoken English. Seriously -- the time I spent on MUD, then #perl, then writing email, and that fucking book thrown in there? Text wins, hands down. I don&amp;apos;t even answer my phone without prior arrangement. That&amp;apos;s led to some confusing and frustrating textual exchanges. As an example, I discovered that a chunk of my company was in town. I was invited for dinner and thought it was a joke -- &amp;quot;haha, yeah, I&amp;apos;ll be there a bit late&amp;quot;. The fact that people were coming to town was just never mentioned on the channel. Now and then, if there is casual conversation on the channel, $boss will shush poeple. We&amp;apos;ve been told &amp;quot;get to work&amp;quot;. I generally take my lunch on the channel just as other people take their lunch sitting together at a table at Wendy&amp;apos;s. That casual banter is vital. Sneaking off to the side in a private chat avoids boss convo smooshing, too. Catching up with coworkers one by one is time and energy consuming. This might be my best option, though.&lt;/p&gt;&lt;p&gt;Another option, one I&amp;apos;ve explored a bit, is to hack around problems by any means necessary. My logic is this: this codebase got in its current state somehow and it wasn&amp;apos;t through thoughtful re-evaluation of previous design decisions everytime a snafu came up. That lead me to doing a few things that I consider profoundly indicative problems in my code. This code made it through code review without comment. This doesn&amp;apos;t mean that I&amp;apos;m a good programmer or that other people are bad, just that I need to have more faith in sinking into the correct level of analness mindset. In fact, trying to talk through options in one case where I was &amp;quot;stuck&amp;quot;, I was accused of &amp;quot;causing much gnashing of teeth&amp;quot;. My nasty ass work-around was fine, though. Oh, crap... I just realized that the &amp;quot;just fake the data&amp;quot; approach that was handed to me is probably what caused another blow-up later that required another nasty work-around. Technical debt suffers from the tragedy of the commons problem.&lt;/p&gt;&lt;p&gt;I can&amp;apos;t think of any other options right now.&lt;/p&gt;&lt;p&gt;I&amp;apos;m realizing that I often don&amp;apos;t get really simple punchlines. For example, Microsoft turned on automatic updates by default, yet most Windows machines have malware. Even most office Windows machines do, as reported by reputable security studies. The obvious punchline here is that everyone turns off the fucking updates. They hose your machine. Microsoft&amp;apos;s &amp;quot;Genuine Advantage&amp;quot; and crap like that is more poorly written than the malware whose exploits get patched in the same updates. Likewise, everyone runs Ubuntu, but Ubuntu is based on Debian, and Debian shits itself like nuts if you actually try to do an update. I&amp;apos;ve witnessed this over and over again. Clearly all of these people installing Ubuntu are turning the motherfucking updates off and re-installing from scratch, just like the Linux people have been blasting the Microsoft people for doing for so many years. I&amp;apos;m going to call this &amp;quot;scrottie&amp;apos;s principle of gay sex&amp;quot;: everyone is doing it and no one talks about it. In the realm of telecommuting and consulting, I desperately need to learn how to put two and two together. Otherwise I risk missing all of the really good buggery.&lt;/p&gt;&lt;p&gt;I need to write an essay on how to manage telecommuters. You can&amp;apos;t not look at brief status reports and then say that they &amp;quot;required too much supervision&amp;quot;. We&amp;apos;re not like Perl frameworks where you just mix a bunch of us in and we take care of all of the problems you&amp;apos;re having in your code.&lt;/p&gt;&lt;p&gt;I started writing this while I was &amp;quot;stuck&amp;quot; with something that turned out to be a simple case of silent failure in code (help provided). Apt, I think.&lt;/p&gt;&lt;p&gt;This post is an untested commit.&lt;/p&gt;&lt;p&gt;-scott&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-05T16:27:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~scrottie/journal/40228</guid>
    </item>
    <item>
      <author>nobody@example.com (Phred)</author>
      <dc:creator>nobody@example.com (Phred)</dc:creator>
      <link>http://use.perl.org/~Phred/journal/40227</link>
      <description>As the first talk in series of talks on form validation, Fred Moyer will
present an overview of Data::FormValidator. Real world code examples will
be presented, and you'll see how you can use Data::FormValidator to
implement form validation for legacy codebases as well as new code.
Data::FormValidator is a loosely coupled, highly flexible, and easy to
use form validation module written by Mark Stosberg.

This meeting will take place on Tuesday, March 23rd at 7pm at Six Apart
World Headquarters.

Fred Moyer's CPAN page:
http://search.cpan.org/~phred/

Data::FormValidator on CPAN:
http://search.cpan.org/dist/Data-FormValidator/

Announcement posted via App::PM::Announce

RSVP at Meetup -
http://www.meetup.com/San-Francisco-Perl-Mongers/calendar/12793946/</description>
      <dc:date>2010-03-05T15:01:00</dc:date>
      <title>Simple form validation with Data::FormValidator</title>
      <pubDate>Fri, 05 Mar 2010 15:01:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;As the first talk in series of talks on form validation, Fred Moyer will present an overview of Data::FormValidator. Real world code examples will be presented, and you&amp;apos;ll see how you can use Data::FormValidator to implement form validation for legacy codebases as well as new code. Data::FormValidator is a loosely coupled, highly flexible, and easy to use form validation module written by Mark Stosberg.&lt;/p&gt;&lt;p&gt;This meeting will take place on Tuesday, March 23rd at 7pm at Six Apart World Headquarters.&lt;/p&gt;&lt;p&gt;Fred Moyer&amp;apos;s CPAN page:&lt;br /&gt;http://search.cpan.org/~phred/&lt;/p&gt;&lt;p&gt;Data::FormValidator on CPAN:&lt;br /&gt;http://search.cpan.org/dist/Data-FormValidator/&lt;/p&gt;&lt;p&gt;Announcement posted via App::PM::Announce&lt;/p&gt;&lt;p&gt;RSVP at Meetup - &lt;a href="http://www.meetup.com/San-Francisco-Perl-Mongers/calendar/12793946/" rel="nofollow"&gt;http://www.meetup.com/San-Francisco-Perl-Mongers/calendar/12793946/&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-05T15:01:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~Phred/journal/40227</guid>
    </item>
    <item>
      <author>nobody@example.com (redspike)</author>
      <dc:creator>nobody@example.com (redspike)</dc:creator>
      <link>http://use.perl.org/~redspike/journal/40226</link>
      <description>Well after what seems like several decades I am finally going to Review
'Intermediate Perl by Randal L. Schwartz, brian d foy and Tom Phoenix.
The book is on the whole very well written and has an amusing style which
belies its importance. Initially I read Randal Schwartz and Tom Phoenix
and brian d foy which gave me the basics, enough in fact to use some cgi
scripts that, although now need a re-write to due my added knowledge, are
still in use today.

I then went onto Programming Perl by Larry Wall, Tom Christiansen, Jon
Orwant which I read as a sort of novel, when I told this to Larry Wall at
a YAPC he said that it was mostly fiction anyway. It introduced me to
alot of the advanced features in Perl but was a bit heavy going. After I
had read it I wondered if there was something inbetween this and Learning
Perl, something intermediate.

I know it seems obvious not but I did not look for a book called
Intermediate Perl. I found this sort of pattern happening a lot in my
jourmey through Perl, the obvious is so obvious I miss it. I have tried
to start looking for the obvious before I hare off and look for the
complicated and down right obscure which always seem more easy to see. As
I had not cultivated the culture of 'The Bleeding Obvious' I bought a few
others which, although good in their way were not really suitable at the
time for where I was at. Eventually I got a copy of 'Intermediate Perl'
and it all made more sense.

I read another review online which suggested a different order in which
to read the chapters. The suggested thing was to read Ch 3 after reading
Ch 10 and then read Ch 15 because it was thought that you need to know
about modules after learning about building larger programs. This I did
and it seemed to make more sense. Apart from my normal gripe about not
explaining how to get help through Perldoc and a few examples which when
typed in verbatum do not work (bottom of page 4 in particular its is not
that it is wrong but to make it run you have to do a little more than is
written) the book helped alot. This kind of thing is not a problem half
way through the book, any book, a little assumed knowledge has been
learned, but it is important to make things absolutey implicit in the
first few examples. Implied knowledge is an easy way to dishearted anyone
and could in extreme cases cause someone to give up. Reading it through
at least twice meant that a few things clicked eventually and gave me a
sense of achievement when I understood the concepts and put some of them
to the test. The story of Gilligan, Skipper, The professor and crew meant
a simple but powerful thread kept the example real. Although imagined,
these examples explained in fairly simple terms some very complicated
ideas that I found fairly easy to apply to real world applications.
Having read 'Programming Perl' first meant that I had gone a long way to
understanding many of the ideas but anyone going about it in the right
order would have less of a virtical wall to look at when they got to the
'Camel'. I use Intermediate Perl as a reference at the moment and to
re-read certain chapters when I have a quiet moment.

I would recommend this book to anyone who has just got through Learning
Perl or who is coming to Perl from another language and wants to start in
a comfortable place before scaling the heights.

Whilst reading the chapter on references I was struck by the one of the
many lighthning strikes out of the snaffed and blurreddy that is 'The
Bleeding Obvious'. It may be called a reference but I thought that that
was just its name. Unlike a the fact that a variable is called a variable
because its value can vary but not its declared name,(I know that that is
not necessarily the case as it is its address in memory that does not
change or perhaps something else that I don't know yet, but humour me) a
reference is called a reference because it is a reference to some thing,
usually a scalar, array, subroutine or hash or something. As a reference
it refers to something. You cannot believe how I wondered how I had
managed to get through at least 3 rather large books before it finally
sank in. I am not sure if it was the fact I did not read the right books
in the right order or the fact that I was not really reading what I was
reading. Either way, I have had the same experience several times. I
think that because it has always been pointed out that Larry Wall is a
linguist and therefore has crafted Perl in a liguistic way that I assumed
the opposite. I have the same experience with other languages and with
other things too but that is part of the joys, or not, of not taking the
obvious as obvious. Tell me one thing and I will often assume the
opposite because that is what I thought you meant, and just when I think
I have got it I will the think the opposite of the opposite which is of
course the obvious but not everytime. Sounds dumb when you write it down
but with everyone trying to be so damn clever I am not sure who is
genuinely clever and who is trying to look clever by inference. In
Larry's case I think he is just being genuine.

I will do a more indepth review of this book as it has helped me a great
dealm but this will do to get started for now.</description>
      <dc:date>2010-03-05T06:34:00</dc:date>
      <title>Intermeditae Perl Review</title>
      <pubDate>Fri, 05 Mar 2010 06:34:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;Well after what seems like several decades I am finally going to Review &amp;apos;Intermediate Perl by Randal L. Schwartz, brian d foy and Tom Phoenix. The book is on the whole very well written and has an amusing style which belies its importance. Initially I read Randal Schwartz and Tom Phoenix and brian d foy which gave me the basics, enough in fact to use some cgi scripts that, although now need a re-write to due my added knowledge, are still in use today. &lt;/p&gt;&lt;p&gt;I then went onto Programming Perl by Larry Wall, Tom Christiansen, Jon Orwant which I read as a sort of novel, when I told this to Larry Wall at a YAPC he said that it was mostly fiction anyway. It introduced me to alot of the advanced features in Perl but was a bit heavy going. After I had read it I wondered if there was something inbetween this and Learning Perl, something intermediate. &lt;/p&gt;&lt;p&gt;I know it seems obvious not but I did not look for a book called Intermediate Perl. I found this sort of pattern happening a lot in my jourmey through Perl, the obvious is so obvious I miss it. I have tried to start looking for the obvious before I hare off and look for the complicated and down right obscure which always seem more easy to see. As I had not cultivated the culture of &lt;b&gt;&amp;apos;The Bleeding Obvious&amp;apos;&lt;/b&gt; I bought a few others which, although good in their way were not really suitable at the time for where I was at. Eventually I got a copy of &amp;apos;Intermediate Perl&amp;apos; and it all made more sense.&lt;/p&gt;&lt;p&gt;I read another review online which suggested a different order in which to read the chapters. The suggested thing was to read Ch 3 after reading Ch 10 and then read Ch 15 because it was thought that you need to know about modules after learning about building larger programs. This I did and it seemed to make more sense. Apart from my normal gripe about not explaining how to get help through Perldoc and a few examples which when typed in verbatum do not work (bottom of page 4 in particular its is not that it is wrong but to make it run you have to do a little more than is written) the book helped alot. This kind of thing is not a problem half way through the book, any book, a little assumed knowledge has been learned, but it is important to make things absolutey implicit in the first few examples. Implied knowledge is an easy way to dishearted anyone and could in extreme cases cause someone to give up. Reading it through at least twice meant that a few things clicked eventually and gave me a sense of achievement when I understood the concepts and put some of them to the test. The story of Gilligan, Skipper, The professor and crew meant a simple but powerful thread kept the example real. Although imagined, these examples explained in fairly simple terms some very complicated ideas that I found fairly easy to apply to real world applications. Having read &amp;apos;Programming Perl&amp;apos; first meant that I had gone a long way to understanding many of the ideas but anyone going about it in the right order would have less of a virtical wall to look at when they got to the &amp;apos;Camel&amp;apos;. I use Intermediate Perl as a reference at the moment and to re-read certain chapters when I have a quiet moment.&lt;/p&gt;&lt;p&gt;I would recommend this book to anyone who has just got through Learning Perl or who is coming to Perl from another language and wants to start in a comfortable place before scaling the heights.&lt;/p&gt;&lt;p&gt;Whilst reading the chapter on references I was struck by the one of the many lighthning strikes out of the snaffed and blurreddy that is &lt;b&gt;&amp;apos;The Bleeding Obvious&amp;apos;&lt;/b&gt;. It may be called a reference but I thought that that was just its name. Unlike a the fact that a variable is called a variable because its value can vary but not its declared name,(I know that that is not necessarily the case as it is its address in memory that does not change or perhaps something else that I don&amp;apos;t know yet, but humour me) a reference is called a reference because it is a reference to some thing, usually a scalar, array, subroutine or hash or something. As a reference it refers to something. You cannot believe how I wondered how I had managed to get through at least 3 rather large books before it finally sank in. I am not sure if it was the fact I did not read the right books in the right order or the fact that I was not really reading what I was reading. Either way, I have had the same experience several times. I think that because it has always been pointed out that Larry Wall is a linguist and therefore has crafted Perl in a liguistic way that I assumed the opposite. I have the same experience with other languages and with other things too but that is part of the joys, or not, of not taking the obvious as obvious. Tell me one thing and I will often assume the opposite because that is what I thought you meant, and just when I think I have got it I will the think the opposite of the opposite which is of course the obvious but not everytime. Sounds dumb when you write it down but with everyone trying to be so damn clever I am not sure who is genuinely clever and who is trying to look clever by inference. In Larry&amp;apos;s case I think he is just being genuine. &lt;/p&gt;&lt;p&gt;I will do a more indepth review of this book as it has helped me a great dealm but this will do to get started for now.&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-05T06:34:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~redspike/journal/40226</guid>
    </item>
    <item>
      <author>nobody@example.com (Alias)</author>
      <dc:creator>nobody@example.com (Alias)</dc:creator>
      <link>http://use.perl.org/~Alias/journal/40225</link>
      <description>With Miyagawa's cpanminus (or as I like to think of it, cpantiny, but hey
it's his module) now officially the New Shiny of the moment, the same old
arguments are resurfacing about less is more, and worse is better.

And the great wheel of opinion circles again.

Rather than bother commenting on cpanminus itself (I suspect many could
guess my opinions) I thought I would add some caveats to the praise, that
hopefully can help you identify and engineer your own equivalent
successes.

1. These "subset" modules are truly successful only when you make the
accuracy trade offs worth it.

Thus, the installation must be effortless, the user interface must be
super-simple, zero-conf is an absolute must, and the module must succeed
in all those niches where the "real" application is too hard, too big, or
too clumsy.

If your accuracy is going to suck, NOTHING else is allowed to suck.

2. As I hint about with "real" these subset modules work best when they
are an alternative solution, not the only solution.

If you are inaccurate and the only solution, you are an annoying
limitation.

If you are inaccurate and an alternate solution, you are handy because
you create a kind of user-pays situation. Simple people with simple use
cases get a simple solution. Hardcore people with hardcore needs get a
hardcore solution.

So if you want to make a small solution, it has to be a subset of
something larger that works better. It can't be the only solution.

3. 99% is a just a marketing number, but the real number does matter.

Why? Take a look at the Heavy 100 index (http://ali.as/top100/") and
you'll notice that many major and popular CPAN modules (like, say,
Catalyst) have more than 100 dependencies.

With a 99% success rate (using stupidly naive "statistics") every single
module on that Top 100 list will fail to install. In a large system with
lots of recursive dependencies, it doesn't take much for your install
count to grow to 20 or 50 or 100 dependencies.

So you need to be sure about WHICH subset you want to support, so you can
be sure what percentage you REALLY need.

For example, despite all the work to support it, there is only one single
module currently using Bzip2. Would it be worth it to remove bzip2
support entirely from the CPAN and help that author to convert? Probably.

The biggest benefits of these alternate solutions are often not only to
do what they do. It's to demonstrate what is possible, pushing the
competitors to do it as well.</description>
      <dc:date>2010-03-05T03:29:00</dc:date>
      <title>When a 99% solutions works, and when it doesn't</title>
      <pubDate>Fri, 05 Mar 2010 03:29:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;With Miyagawa&amp;apos;s cpanminus (or as I like to think of it, cpantiny, but hey it&amp;apos;s his module) now officially the New Shiny of the moment, the same old arguments are resurfacing about less is more, and worse is better.&lt;/p&gt;&lt;p&gt;And the great wheel of opinion circles again.&lt;/p&gt;&lt;p&gt;Rather than bother commenting on cpanminus itself (I suspect many could guess my opinions) I thought I would add some caveats to the praise, that hopefully can help you identify and engineer your own equivalent successes.&lt;/p&gt;&lt;p&gt;1. These &amp;quot;subset&amp;quot; modules are truly successful only when you make the accuracy trade offs worth it.&lt;/p&gt;&lt;p&gt;Thus, the installation must be effortless, the user interface must be super-simple, zero-conf is an absolute must, and the module must succeed in all those niches where the &amp;quot;real&amp;quot; application is too hard, too big, or too clumsy.&lt;/p&gt;&lt;p&gt;If your accuracy is going to suck, NOTHING else is allowed to suck.&lt;/p&gt;&lt;p&gt;2. As I hint about with &amp;quot;real&amp;quot; these subset modules work best when they are an alternative solution, not the only solution.&lt;/p&gt;&lt;p&gt;If you are inaccurate and the only solution, you are an annoying limitation.&lt;/p&gt;&lt;p&gt;If you are inaccurate and an alternate solution, you are handy because you create a kind of user-pays situation. Simple people with simple use cases get a simple solution. Hardcore people with hardcore needs get a hardcore solution.&lt;/p&gt;&lt;p&gt;So if you want to make a small solution, it has to be a subset of something larger that works better. It can&amp;apos;t be the only solution.&lt;/p&gt;&lt;p&gt;3. 99% is a just a marketing number, but the real number does matter.&lt;/p&gt;&lt;p&gt;Why? Take a look at the Heavy 100 index (&lt;a href="http://ali.as/top100/"&gt;http://ali.as/top100/&amp;quot;&lt;/a&gt;) and you&amp;apos;ll notice that many major and popular CPAN modules (like, say, Catalyst) have more than 100 dependencies.&lt;/p&gt;&lt;p&gt;With a 99% success rate (using stupidly naive &amp;quot;statistics&amp;quot;) every single module on that Top 100 list will fail to install. In a large system with lots of recursive dependencies, it doesn&amp;apos;t take much for your install count to grow to 20 or 50 or 100 dependencies.&lt;/p&gt;&lt;p&gt;So you need to be sure about WHICH subset you want to support, so you can be sure what percentage you REALLY need.&lt;/p&gt;&lt;p&gt;For example, despite all the work to support it, there is only one single module currently using Bzip2. Would it be worth it to remove bzip2 support entirely from the CPAN and help that author to convert? Probably.&lt;/p&gt;&lt;p&gt;The biggest benefits of these alternate solutions are often not only to do what they do. It&amp;apos;s to demonstrate what is possible, pushing the competitors to do it as well.&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-05T03:29:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~Alias/journal/40225</guid>
    </item>
    <item>
      <author>nobody@example.com (perl6doc)</author>
      <dc:creator>nobody@example.com (perl6doc)</dc:creator>
      <link>http://use.perl.org/~perl6doc/journal/40224</link>
      <description>  * we touched 101 articles in last 2 weeks

  * currently I'm writing on the Perl 6 timeline

  * I saved the content of ponie's page into its's wiki page because it
    might will soon disappear</description>
      <dc:date>2010-03-04T19:35:00</dc:date>
      <title>3 new facts about the TPF wiki</title>
      <pubDate>Thu, 04 Mar 2010 19:35:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?action=recent_changes" rel="nofollow"&gt;we touched 101 articles in last 2 weeks&lt;/a&gt;&lt;/li&gt;&lt;li&gt;currently I&amp;apos;m writing on the &lt;a href="http://www.perlfoundation.org/perl6/index.cgi?timeline" rel="nofollow"&gt;Perl 6 timeline&lt;/a&gt;&lt;/li&gt;&lt;li&gt;I saved the content of &lt;a href="http://www.poniecode.org/" rel="nofollow"&gt;ponie&amp;apos;s page&lt;/a&gt; into &lt;a href="http://www.perlfoundation.org/perl6/index.cgi?poniecode_org" rel="nofollow"&gt;its&amp;apos;s wiki page&lt;/a&gt; because it might will soon disappear&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-04T19:35:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~perl6doc/journal/40224</guid>
    </item>
    <item>
      <author>nobody@example.com (xsawyerx)</author>
      <dc:creator>nobody@example.com (xsawyerx)</dc:creator>
      <link>http://use.perl.org/~xsawyerx/journal/40223</link>
      <description>&lt;div class="intro"&gt;&lt;a href="http://blogs.perl.org/users/sawyer_x/2010/03/searchgin-004-finally-out.html" rel="nofollow"&gt;Search::GIN 0.04 finally out!&lt;/a&gt;&lt;/div&gt;
</description>
      <dc:date>2010-03-04T12:26:00</dc:date>
      <title>Search::GIN 0.04 finally out!</title>
      <pubDate>Thu, 04 Mar 2010 12:26:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;a href="http://blogs.perl.org/users/sawyer_x/2010/03/searchgin-004-finally-out.html" rel="nofollow"&gt;Search::GIN 0.04 finally out!&lt;/a&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-04T12:26:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~xsawyerx/journal/40223</guid>
    </item>
    <item>
      <author>nobody@example.com (kappa)</author>
      <dc:creator>nobody@example.com (kappa)</dc:creator>
      <link>http://use.perl.org/~kappa/journal/40222</link>
      <description>A questionable, but interesting nevertheless article in USA Wired
mentions Perl:

  ...tweets about Lady Gaga’s lingerie can help someone debugging Perl
  code. (Or a tweet about Perl code may help Lady Gaga’s underwear
  stylist.)</description>
      <dc:date>2010-03-04T09:16:00</dc:date>
      <title>Wired about serendipity (and Perl)</title>
      <pubDate>Thu, 04 Mar 2010 09:16:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;A questionable, but interesting nevertheless &lt;a href="http://www.wired.com/magazine/2010/02/st_essay_distraction/" rel="nofollow"&gt;article in USA Wired&lt;/a&gt; mentions Perl:&lt;/p&gt;&lt;blockquote&gt;&lt;div&gt;&lt;p&gt;&lt;nobr&gt; &lt;wbr /&gt;&lt;/nobr&gt;&lt;i&gt;...tweets about Lady Gaga’s lingerie can help someone debugging Perl code. (Or a tweet about Perl code may help Lady Gaga’s underwear stylist.)&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-04T09:16:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~kappa/journal/40222</guid>
    </item>
    <item>
      <author>nobody@example.com (Ron Savage)</author>
      <dc:creator>nobody@example.com (Ron Savage)</dc:creator>
      <link>http://use.perl.org/~Ron+Savage/journal/40221</link>
      <description>Hi Folks

Get it while it's hot (and Plack is certainly hot):
Gentle into to Plack.</description>
      <dc:date>2010-03-03T00:06:00</dc:date>
      <title>For CGI::Application users interested in Plack</title>
      <pubDate>Wed, 03 Mar 2010 00:06:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;Hi Folks&lt;/p&gt;&lt;p&gt;Get it while it&amp;apos;s hot (and Plack is certainly hot):&lt;br /&gt;&lt;a href="http://savage.net.au/Perl/html/plack.for.beginners.html" rel="nofollow"&gt;Gentle into to Plack.&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-03T00:06:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~Ron+Savage/journal/40221</guid>
    </item>
    <item>
      <author>nobody@example.com (bart)</author>
      <dc:creator>nobody@example.com (bart)</dc:creator>
      <link>http://use.perl.org/~bart/journal/40219</link>
      <description>For Strawberry Perl, and Padre, I use a custom entry in the Start Menu,
which technically is a shortcut (*.LNK file). For example, for Padre the
command line in the shortcut file was:

  C:\WINDOWS\system32\cmd.exe /c
  PATH=c:\strawberry\perl\bin;c:\strawberry\c\bin;%PATH% &amp;&amp; padre

Likewise, the command line for my Strawberry shell was:

  C:\WINDOWS\system32\cmd.exe /k
  PATH=c:\strawberry\perl\bin;c:\strawberry\c\bin;%PATH%

Overnight, these both stopped working.

After a bit of puzzling, I figured out that a new program had been
installed by Windows Update, and this had added a new directory to PATH.
As a result, after the environment variable was substituted with its real
value, the length of the expanded command line was now longer than 256
bytes, and now PATH got truncated.

Remember, folks:

  The length of the command line for a shortcut, after expansion,
  should never be longer than 256 bytes.

If you put the code for modification of PATH in a *.BAT file, no such
restriction applies.

So now, my shortcut to start the command shell is:

  C:\WINDOWS\system32\cmd.exe /k c:\strawberry\strawberry_path.bat

where c:\strawberry\strawberry_path.bat contains the lines

  @echo off
  PATH=C:\strawberry\c\bin;C:\strawberry\perl\bin;%PATH%

which makes it easier for me to add more Perl based tools that depend on
these entries in PATH: I now have a central location for the definition,
if I ever need to add or modify a directory.</description>
      <dc:date>2010-03-02T10:26:00</dc:date>
      <title>Headsup on command line for shortcuts in Windows XP</title>
      <pubDate>Tue, 02 Mar 2010 10:26:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;For Strawberry Perl, and Padre, I use a custom entry in the Start Menu, which technically is a shortcut (*.LNK file). For example, for Padre the command line in the shortcut file was:&lt;/p&gt;&lt;blockquote&gt;&lt;div&gt;&lt;p&gt;&lt;tt&gt;C:\WINDOWS\system32\cmd.exe&lt;nobr&gt; &lt;wbr /&gt;&lt;/nobr&gt;/c PATH=c:\strawberry\perl\bin;c:\strawberry\c\bin;%PATH% &amp;amp;&amp;amp; padre&lt;/tt&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;Likewise, the command line for my Strawberry shell was:&lt;/p&gt;&lt;blockquote&gt;&lt;div&gt;&lt;p&gt;&lt;tt&gt;C:\WINDOWS\system32\cmd.exe&lt;nobr&gt; &lt;wbr /&gt;&lt;/nobr&gt;/k PATH=c:\strawberry\perl\bin;c:\strawberry\c\bin;%PATH%&lt;/tt&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;Overnight, these both stopped working.&lt;/p&gt;&lt;p&gt;After a bit of puzzling, I figured out that a new program had been installed by Windows Update, and this had added a new directory to PATH. As a result, after the environment variable was substituted with its real value, the length of the expanded command line was now longer than 256 bytes, and now PATH got truncated.&lt;/p&gt;&lt;p&gt;Remember, folks:&lt;/p&gt;&lt;blockquote&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;The length of the command line for a shortcut, after expansion, should never be longer than 256 bytes.&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;If you put the code for modification of PATH in a *.BAT file, no such restriction applies.&lt;/p&gt;&lt;p&gt;So now, my shortcut to start the command shell is:&lt;/p&gt;&lt;blockquote&gt;&lt;div&gt;&lt;p&gt;&lt;tt&gt;C:\WINDOWS\system32\cmd.exe&lt;nobr&gt; &lt;wbr /&gt;&lt;/nobr&gt;/k c:\strawberry\strawberry_path.bat&lt;/tt&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;where c:\strawberry\strawberry_path.bat contains the lines&lt;/p&gt;&lt;blockquote&gt;&lt;div&gt;&lt;p&gt;&lt;tt&gt;@echo off&lt;br /&gt;PATH=C:\strawberry\c\bin;C:\strawberry\perl\bin;%PATH%&lt;/tt&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;which makes it easier for me to add more Perl based tools that depend on these entries in PATH: I now have a central location for the definition, if I ever need to add or modify a directory.&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-02T10:26:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~bart/journal/40219</guid>
    </item>
    <item>
      <author>nobody@example.com (masak)</author>
      <dc:creator>nobody@example.com (masak)</dc:creator>
      <link>http://use.perl.org/~masak/journal/40218</link>
      <description>Oops. I think excessive distractedness just made me miss a 10-day
interval, thereby falling off the Iron Man challenge. Oh well. [Sidenote:
Is there a way to easily check one's Ironman status?]

Lately, I've been feeling a bit like the snowplows shuffling snow around
outside my office window. I have a lot of things I want to blog about,
but I've been pushing them ahead of me. That's exactly what the Iron Man
thing is supposed to counter. Guess procrastination won out in this case.

So, how much blog would a masak write if a masak could write blog? Here's
a list off the top of my head of the things I've been thinking of
blogging about:

  * The presentation I'm writing for the Open Source Days in Copenhagen
    this weekend. I'm really excited about it.

  * The "7 Wonders of the Ancient Grammar Engine" series. I've started on
    it, and I like what I have so far.

  * More E03 stuff. Guess that's what I didn't blog about in the past 11
    days.

  * snarkyboojum++ and I have started toying with writing a
    time-travelling debugger. Yes, really.

  * A lot of things are happening in Rakudo-land this month, after the
    successful ng merge. colomon++ especially shines like a bright star
    right now, bringing lots of tests back online each day.

  * I'd like to get enums in Rakudo before this month's release. I've
    already done anon enums. Next up: named enums.

  * I've been starting to think seriously about u4x lately. Partly
    because of other people's questions, partly because it seems the the
    time is ripe to start it.

  * However, every time I have that thought I realize that the book is
    more important at the moment. I have some unimplemented ideas there
    as well.

  * GGE is very near being PGE-compliant. Just a few finishing touches
    are needed. This will likely usher in a new era in Perl 6 grammars
    and parsing.

Will I have time in the near future to expand these one-liners into
full-fledged blog posts? Only time will tell.</description>
      <dc:date>2010-03-02T07:15:00</dc:date>
      <title>I'm a snowplow</title>
      <pubDate>Tue, 02 Mar 2010 07:15:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;Oops. I think excessive distractedness just made me miss a 10-day interval, thereby falling off the Iron Man challenge. Oh well. [Sidenote: Is there a way to easily check one&amp;apos;s Ironman status?]&lt;/p&gt;&lt;p&gt;Lately, I&amp;apos;ve been feeling a bit like the snowplows shuffling snow around outside my office window. I have a lot of things I want to blog about, but I&amp;apos;ve been pushing them ahead of me. That&amp;apos;s exactly what the Iron Man thing is supposed to counter. Guess procrastination won out in this case.&lt;/p&gt;&lt;p&gt;So, how much blog would a masak write if a masak could write blog? Here&amp;apos;s a list off the top of my head of the things I&amp;apos;ve been &lt;em&gt;thinking&lt;/em&gt; of blogging about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The presentation I&amp;apos;m writing for the &lt;a href="http://www.opensourcedays.org/2010/node/267" rel="nofollow"&gt;Open Source Days in Copenhagen&lt;/a&gt; this weekend. I&amp;apos;m really excited about it.&lt;/li&gt;&lt;li&gt;The &lt;a href="http://use.perl.org/~masak/journal/39945" rel="nofollow"&gt;&amp;quot;7 Wonders of the Ancient Grammar Engine&amp;quot;&lt;/a&gt; series. I&amp;apos;ve started on it, and I like what I have so far.&lt;/li&gt;&lt;li&gt;More &lt;a href="http://use.perl.org/~masak/journal/40195" rel="nofollow"&gt;E03 stuff&lt;/a&gt;. Guess that&amp;apos;s what I didn&amp;apos;t blog about in the past 11 days.&lt;/li&gt;&lt;li&gt;snarkyboojum++ and I have started toying with writing a &lt;a href="http://github.com/masak/tardis" rel="nofollow"&gt;time-travelling debugger&lt;/a&gt;. Yes, really.&lt;/li&gt;&lt;li&gt;A lot of things are happening in Rakudo-land this month, after the successful ng merge. colomon++ especially shines like a bright star right now, bringing lots of tests back online each day.&lt;/li&gt;&lt;li&gt;I&amp;apos;d like to get enums in Rakudo before this month&amp;apos;s release. I&amp;apos;ve already done anon enums. Next up: named enums.&lt;/li&gt;&lt;li&gt;I&amp;apos;ve been starting to think seriously about &lt;a href="http://use.perl.org/~masak/journal/38279" rel="nofollow"&gt;u4x&lt;/a&gt; lately. Partly because of other people&amp;apos;s questions, partly because it seems the the time is ripe to start it.&lt;/li&gt;&lt;li&gt;However, every time I have that thought I realize that &lt;a href="http://github.com/perl6/book" rel="nofollow"&gt;the book&lt;/a&gt; is more important at the moment. I have some unimplemented ideas there as well.&lt;/li&gt;&lt;li&gt;GGE is &lt;a href="http://github.com/masak/gge/blob/master/STATUS" rel="nofollow"&gt;very near&lt;/a&gt; being PGE-compliant. Just a few finishing touches are needed. This will likely usher in a &lt;a href="http://github.com/masak/gge/blob/master/docs/COOLTHINGS" rel="nofollow"&gt;new era in Perl 6 grammars and parsing&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; Will I have time in the near future to expand these one-liners into full-fledged blog posts? Only time will tell.&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-02T07:15:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~masak/journal/40218</guid>
    </item>
    <item>
      <author>nobody@example.com (chromatic)</author>
      <dc:creator>nobody@example.com (chromatic)</dc:creator>
      <link>http://use.perl.org/~chromatic/journal/40217</link>
      <description>The Perl 6 design team met by phone on 24 February 2010. Larry, Allison,
Patrick, and chromatic attended.

Larry:

  * my work last week was almost entirely responsive to various
    discussions on irc and p6l, even when it doesn't seem like it

  * clarified that LEAVE-style phasers do not trip till after an
    exception is handled (and not resumed)

  * the implementation of take is specifically before unwinding even if
    implemented with a control exception

  * simplified series operator by moving generator function to the left
    side (any function on right side will now be a limiting conditional)

  * a * is no longer required to intuit the series on the left; the
    absence of generator before the ... operator is sufficient

  * first argument on the right of ... is now always a limiter argument

  * for convenience and consistency, added a new ...^ form to exclude a
    literal limiter from the generated series

  * unlike ranges, however, there is no leading exclusion ^... or ^...^

  * series is a list associative list infix, and each ... pays attention
    only the portion of the list immediately to its left (plus the limit
    from the right)

  * an "impossible" limit can terminate a monotonic intuited series even
    if the limit can never match exactly

  * variables now default to a type of Any, and must explicitly declare
    Mu or Junction type to hold junctions

  * this is to reduce pressure to duplicate many functions like == with
    Mu arguments; most of our failure values should be derived from Any
    in any case

  * a Mu result is more indicative of a major malfunction now, and is
    caught at first assignment to an Any variable

  * Instant/Duration types are biased away from Num and towards Rat/FatRat
    semantics

  * Instant is now completely opaque; we no longer pretend to be the same
    as TAI, numerically speaking

  * Instants are now considered a more basic type than epochs, which are
    just particular named instants

  * all culturally aware time can be based on calculations involving
    instants and durations

  * list associative operators now treat non-matching op names as
    non-associative rather than right-associative, forcing parens

  * Whatever semantics now autocurry any prefix, postfix, or infix
    operator that doesn't explicitly declare that it handles whateverness
    itself

  * WhateverCode objects now take a signature to keep clear how many args
    are not yet curried

  * so *+* is now more like WhateverCode:($x,$y)

  * autocurrying is still transitive so multiple ops can curry themselves
    around a *

  * added semilists as Slicel type to go with Parcel

  * this allows us to bind @array[1,2,3] differently from
    @array[1,2,3;4,5,6], for instance

  * the Matcher type now excludes Bool arguments to prevent accidental
    binding to outer $_ when closure is needed

  * when and ~~ will now warn of always/never matching on direct use of
    True or False names as matcher

  * STD generalizes \w lookahead to all twigils now

  * STD now treats non-matching list associatives as non-associative

  * things like 1 min 2 max 3 are now illegal, and require
    parenthesization for clarity

  * STD now treat invocant colon as just a comma variant so it does not
    fall afoul of the list associativity change

  * CORE now recognizes the TrigBase enumeration

Patrick:

  * first release of the new branch of Rakudo last week

  * passing ~25,000 tests at the release

  * thanks to optimizations from chromatic, Jonathan, and Vasily, Rakudo
    has a lot of speed improvements

  * in particular, it can run those tests in under 10 minutes,
    non-parallel, depending on your hardware

  * older releases took 25 minutes and more

  * the regex tests will slow things down

  * ultimately, we're seeing a big speed improvement over the past
    releases

  * cleaned up lists and slices, now they work pretty well

  * worked with Solomon Foster and others to speed up trig operations

  * fixed a bug related to lexicals declared in classes

  * fixed the long-standing and often recurring problem with curlies
    ending a line/statement causing the next statement to be a statement
    modifier

  * easy to fix in the new grammar

  * that was nice

  * made an initial implementation of the sort method

  * it's very short, because Parrot provides one

  * there are a few bugs in Rakudo there still, but I'll get them

  * planning for the Copenhagen hackathon on March 5 - 9

  * Jonathan and I have been updating the Rakudo roadmap

  * will check that in in the next couple of hours

  * so far, every time we review it, we surprise ourselves at how much
    we've accomplished

  * we're meeting all of the top priority goals without making any heroic
    efforts

  * we'll put those goals in as well as timelines

  * most of the major tasks from previous roadmaps have happened

Allison:

  * working on Python this week

  * attended Python VM summit, Python language summit, and PyCon

  * Parrot's on good track to support what Python needs

  * useful to make community connections

  * when I reviewed Pynie, I was surprised to see how close it is to
    supporting the whole Python syntax

  * some of those features are big, like objects

  * but we should support them soon

  * Debian packages delayed by the absence of a sponsor

  * they should go into Debian soon though

  * I put in a request for feature-freeze exception for Ubuntu 10.4

  * Parrot 2.0 should go in

  * haven't made any commits to the PCC branch

  * that'll be a top priority for next week

c:

  * fixed a Parrot GC bug for last week's Rakudo release

  * made some optimizations in Rakudo and Parrot

  * helped Jonathan find a few more

  * fixed a long-standing math MMD bug

  * still working on HLL subclassing; more tricky than you think

  * may be some conflicting design goals about vtable overriding and MMD

Allison:

  * Patrick, do we need an explicit deprecation for old PGE and NQP?

Patrick:

  * I think Will already added one for NQP

  * we can add one for PGE if we need

  * they don't necessarily have to disappear at the next release

  * but no one's planning to maintain them

Allison:

  * no reason not to put in the notice now

  * we don't have to remove them at the earliest possible date</description>
      <dc:date>2010-03-02T01:12:00</dc:date>
      <title>Perl 6 Design Minutes for 24 February 2010</title>
      <pubDate>Tue, 02 Mar 2010 01:12:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;The Perl 6 design team met by phone on 24 February 2010. Larry, Allison, Patrick, and chromatic attended.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Larry:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;my work last week was almost entirely responsive to various discussions on irc and p6l, even when it doesn&amp;apos;t seem like it&lt;/li&gt;&lt;li&gt;clarified that &lt;code&gt;LEAVE&lt;/code&gt;-style phasers do not trip till after an exception is handled (and not resumed)&lt;/li&gt;&lt;li&gt;the implementation of take is specifically &lt;em&gt;before&lt;/em&gt; unwinding even if implemented with a control exception&lt;/li&gt;&lt;li&gt;simplified series operator by moving generator function to the left side (any function on right side will now be a limiting conditional)&lt;/li&gt;&lt;li&gt;a &lt;code&gt;*&lt;/code&gt; is no longer required to intuit the series on the left; the absence of generator before the&lt;nobr&gt; &lt;wbr /&gt;&lt;/nobr&gt;&lt;code&gt;...&lt;/code&gt; operator is sufficient&lt;/li&gt;&lt;li&gt;first argument on the right of&lt;nobr&gt; &lt;wbr /&gt;&lt;/nobr&gt;&lt;code&gt;...&lt;/code&gt; is now always a limiter argument&lt;/li&gt;&lt;li&gt;for convenience and consistency, added a new&lt;nobr&gt; &lt;wbr /&gt;&lt;/nobr&gt;&lt;code&gt;...^&lt;/code&gt; form to exclude a literal limiter from the generated series&lt;/li&gt;&lt;li&gt;unlike ranges, however, there is no leading exclusion &lt;code&gt;^...&lt;/code&gt; or &lt;code&gt;^...^&lt;/code&gt;&lt;/li&gt;&lt;li&gt;series is a list associative list infix, and each&lt;nobr&gt; &lt;wbr /&gt;&lt;/nobr&gt;&lt;code&gt;...&lt;/code&gt; pays attention only the portion of the list immediately to its left (plus the limit from the right)&lt;/li&gt;&lt;li&gt;an &amp;quot;impossible&amp;quot; limit can terminate a monotonic intuited series even if the limit can never match exactly&lt;/li&gt;&lt;li&gt;variables now default to a type of &lt;code&gt;Any&lt;/code&gt;, and must explicitly declare &lt;code&gt;Mu&lt;/code&gt; or &lt;code&gt;Junction&lt;/code&gt; type to hold junctions&lt;/li&gt;&lt;li&gt;this is to reduce pressure to duplicate many functions like &lt;code&gt;==&lt;/code&gt; with &lt;code&gt;Mu&lt;/code&gt; arguments; most of our failure values should be derived from Any in any case&lt;/li&gt;&lt;li&gt;a &lt;code&gt;Mu&lt;/code&gt; result is more indicative of a major malfunction now, and is caught at first assignment to an &lt;code&gt;Any&lt;/code&gt; variable&lt;/li&gt;&lt;li&gt;&lt;code&gt;Instant&lt;/code&gt;/&lt;code&gt;Duration&lt;/code&gt; types are biased away from &lt;code&gt;Num&lt;/code&gt; and towards &lt;code&gt;Rat&lt;/code&gt;/&lt;code&gt;FatRat&lt;/code&gt; semantics&lt;/li&gt;&lt;li&gt;&lt;code&gt;Instant&lt;/code&gt; is now completely opaque; we no longer pretend to be the same as TAI, numerically speaking&lt;/li&gt;&lt;li&gt;&lt;code&gt;Instant&lt;/code&gt;s are now considered a more basic type than epochs, which are just particular named instants&lt;/li&gt;&lt;li&gt;all culturally aware time can be based on calculations involving instants and durations&lt;/li&gt;&lt;li&gt;list associative operators now treat non-matching op names as non-associative rather than right-associative, forcing parens&lt;/li&gt;&lt;li&gt;&lt;code&gt;Whatever&lt;/code&gt; semantics now autocurry any prefix, postfix, or infix operator that doesn&amp;apos;t explicitly declare that it handles whateverness itself&lt;/li&gt;&lt;li&gt;&lt;code&gt;WhateverCode&lt;/code&gt; objects now take a signature to keep clear how many args are not yet curried&lt;/li&gt;&lt;li&gt;so &lt;code&gt;*+*&lt;/code&gt; is now more like &lt;code&gt;WhateverCode:($x,$y)&lt;/code&gt;&lt;/li&gt;&lt;li&gt;autocurrying is still transitive so multiple ops can curry themselves around a &lt;code&gt;*&lt;/code&gt;&lt;/li&gt;&lt;li&gt;added semilists as &lt;code&gt;Slicel&lt;/code&gt; type to go with &lt;code&gt;Parcel&lt;/code&gt;&lt;/li&gt;&lt;li&gt;this allows us to bind &lt;code&gt;@array[1,2,3]&lt;/code&gt; differently from &lt;code&gt;@array[1,2,3;4,5,6]&lt;/code&gt;, for instance&lt;/li&gt;&lt;li&gt;the &lt;code&gt;Matcher&lt;/code&gt; type now excludes &lt;code&gt;Bool&lt;/code&gt; arguments to prevent accidental binding to outer &lt;code&gt;$_&lt;/code&gt; when closure is needed&lt;/li&gt;&lt;li&gt;&lt;code&gt;when&lt;/code&gt; and &lt;code&gt;~~&lt;/code&gt; will now warn of always/never matching on direct use of &lt;code&gt;True&lt;/code&gt; or &lt;code&gt;False&lt;/code&gt; names as matcher&lt;/li&gt;&lt;li&gt;STD generalizes &lt;code&gt;\w&lt;/code&gt; lookahead to all twigils now&lt;/li&gt;&lt;li&gt;STD now treats non-matching list associatives as non-associative&lt;/li&gt;&lt;li&gt;things like &lt;code&gt;1 min 2 max 3&lt;/code&gt; are now illegal, and require parenthesization for clarity&lt;/li&gt;&lt;li&gt;STD now treat invocant colon as just a comma variant so it does not fall afoul of the list associativity change&lt;/li&gt;&lt;li&gt;CORE now recognizes the &lt;code&gt;TrigBase&lt;/code&gt; enumeration&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Patrick:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;first release of the new branch of Rakudo last week&lt;/li&gt;&lt;li&gt;passing ~25,000 tests at the release&lt;/li&gt;&lt;li&gt;thanks to optimizations from chromatic, Jonathan, and Vasily, Rakudo has a lot of speed improvements&lt;/li&gt;&lt;li&gt;in particular, it can run those tests in under 10 minutes, non-parallel, depending on your hardware&lt;/li&gt;&lt;li&gt;older releases took 25 minutes and more&lt;/li&gt;&lt;li&gt;the regex tests will slow things down&lt;/li&gt;&lt;li&gt;ultimately, we&amp;apos;re seeing a big speed improvement over the past releases&lt;/li&gt;&lt;li&gt;cleaned up lists and slices, now they work pretty well&lt;/li&gt;&lt;li&gt;worked with Solomon Foster and others to speed up trig operations&lt;/li&gt;&lt;li&gt;fixed a bug related to lexicals declared in classes&lt;/li&gt;&lt;li&gt;fixed the long-standing and often recurring problem with curlies ending a line/statement causing the next statement to be a statement modifier&lt;/li&gt;&lt;li&gt;easy to fix in the new grammar&lt;/li&gt;&lt;li&gt;that was nice&lt;/li&gt;&lt;li&gt;made an initial implementation of the &lt;code&gt;sort&lt;/code&gt; method&lt;/li&gt;&lt;li&gt;it&amp;apos;s very short, because Parrot provides one&lt;/li&gt;&lt;li&gt;there are a few bugs in Rakudo there still, but I&amp;apos;ll get them&lt;/li&gt;&lt;li&gt;planning for the Copenhagen hackathon on March 5 - 9&lt;/li&gt;&lt;li&gt;Jonathan and I have been updating the Rakudo roadmap&lt;/li&gt;&lt;li&gt;will check that in in the next couple of hours&lt;/li&gt;&lt;li&gt;so far, every time we review it, we surprise ourselves at how much we&amp;apos;ve accomplished&lt;/li&gt;&lt;li&gt;we&amp;apos;re meeting all of the top priority goals without making any heroic efforts&lt;/li&gt;&lt;li&gt;we&amp;apos;ll put those goals in as well as timelines&lt;/li&gt;&lt;li&gt;most of the major tasks from previous roadmaps have happened&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Allison:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;working on Python this week&lt;/li&gt;&lt;li&gt;attended Python VM summit, Python language summit, and PyCon&lt;/li&gt;&lt;li&gt;Parrot&amp;apos;s on good track to support what Python needs&lt;/li&gt;&lt;li&gt;useful to make community connections&lt;/li&gt;&lt;li&gt;when I reviewed Pynie, I was surprised to see how close it is to supporting the whole Python syntax&lt;/li&gt;&lt;li&gt;some of those features are big, like objects&lt;/li&gt;&lt;li&gt;but we should support them soon&lt;/li&gt;&lt;li&gt;Debian packages delayed by the absence of a sponsor&lt;/li&gt;&lt;li&gt;they should go into Debian soon though&lt;/li&gt;&lt;li&gt;I put in a request for feature-freeze exception for Ubuntu 10.4&lt;/li&gt;&lt;li&gt;Parrot 2.0 should go in&lt;/li&gt;&lt;li&gt;haven&amp;apos;t made any commits to the PCC branch&lt;/li&gt;&lt;li&gt;that&amp;apos;ll be a top priority for next week&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;c:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;fixed a Parrot GC bug for last week&amp;apos;s Rakudo release&lt;/li&gt;&lt;li&gt;made some optimizations in Rakudo and Parrot&lt;/li&gt;&lt;li&gt;helped Jonathan find a few more&lt;/li&gt;&lt;li&gt;fixed a long-standing math MMD bug&lt;/li&gt;&lt;li&gt;still working on HLL subclassing; more tricky than you think&lt;/li&gt;&lt;li&gt;may be some conflicting design goals about vtable overriding and MMD&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Allison:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Patrick, do we need an explicit deprecation for old PGE and NQP?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Patrick:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;I think Will already added one for NQP&lt;/li&gt;&lt;li&gt;we can add one for PGE if we need&lt;/li&gt;&lt;li&gt;they don&amp;apos;t necessarily have to disappear at the next release&lt;/li&gt;&lt;li&gt;but no one&amp;apos;s planning to maintain them&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Allison:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;no reason not to put in the notice now&lt;/li&gt;&lt;li&gt;we don&amp;apos;t have to remove them at the earliest possible date&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-02T01:12:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~chromatic/journal/40217</guid>
    </item>
    <item>
      <author>nobody@example.com (perl6doc)</author>
      <dc:creator>nobody@example.com (perl6doc)</dc:creator>
      <link>http://use.perl.org/~perl6doc/journal/40216</link>
      <description>The wiki madness continues, I did 2,3 People stubs(Will Coleda, Gabor)
and a lot stubs around Parrot: PCT, NQP, Blizkost, PIR, Parrot compiler,
PGE but that will slow down. There are some community related things
missing like conferences, hackathons and so on and maybe a perl 6
timeline but what I want to show today, are articles which became well
formated good content.

  * Documentation

  * Parrot

  * Sprixel

Sprixel was done its coauthor Martin.</description>
      <dc:date>2010-03-01T21:15:00</dc:date>
      <title>It's not over yet</title>
      <pubDate>Mon, 01 Mar 2010 21:15:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;The wiki madness continues, I did 2,3 People stubs(Will Coleda, Gabor) and a lot stubs around Parrot: PCT, NQP, Blizkost, PIR, Parrot compiler, PGE but that will slow down. There are some community related things missing like conferences, hackathons and so on and maybe a perl 6 timeline but what I want to show today, are articles which became well formated good content. &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Documentation" rel="nofollow"&gt;Documentation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Parrot" rel="nofollow"&gt;Parrot&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Sprixel" rel="nofollow"&gt;Sprixel&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; Sprixel was done its coauthor Martin.&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-01T21:15:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~perl6doc/journal/40216</guid>
    </item>
    <item>
      <author>nobody@example.com (xsawyerx)</author>
      <dc:creator>nobody@example.com (xsawyerx)</dc:creator>
      <link>http://use.perl.org/~xsawyerx/journal/40215</link>
      <description>original post can be found on my blog.

Many years ago, when I was... roughly 15 (I think), I met Theodor Ts'o
(one of the first hardcore Linux Kernel hackers, since version 0.90, I
believe) at a Linux event IBM organized in Israel. I should note that he
is a very nice person.

After the event, we got to talk a bit. We talked about our favorite
games. Mine was "avoiding segfaults". This was back when I was
programming in C.

Today I wrote the following regex:
qr/^([\w|\.]+)\s+(?(\d+)\s+)?(\w+)\s+(?:(\d+)\s+)?([\w|\d|\.]+)$/;

Then got a Segmentation fault

Can you spot the error?

Here's a hint: it is missing a colon (:).

This is perl, v5.10.0 built for i486-linux-gnu-thread-multi</description>
      <dc:date>2010-03-01T09:20:00</dc:date>
      <title>Gaming FAIL</title>
      <pubDate>Mon, 01 Mar 2010 09:20:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;&lt;i&gt;original post can be found on my &lt;a href="http://blogs.perl.org/users/sawyer_x/" rel="nofollow"&gt;blog&lt;/a&gt;.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Many years ago, when I was... roughly 15 (I think), I met Theodor Ts&amp;apos;o (one of the first hardcore Linux Kernel hackers, since version 0.90, I believe) at a Linux event IBM organized in Israel. I should note that he is a very nice person.&lt;/p&gt;&lt;p&gt;After the event, we got to talk a bit. We talked about our favorite games. Mine was &amp;quot;avoiding segfaults&amp;quot;. This was back when I was programming in C.&lt;/p&gt;&lt;p&gt;Today I wrote the following regex: &lt;em&gt;qr/^([\w|\.]+)\s+(?(\d+)\s+)?(\w+)\s+(?:(\d+)\s+)?([\w|\d|\.]+)$/;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Then got a &lt;em&gt;Segmentation fault&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Can you spot the error?&lt;/p&gt;&lt;p&gt;Here&amp;apos;s a hint: it is missing a colon (&lt;strong&gt;:&lt;/strong&gt;).&lt;/p&gt;&lt;p&gt;&lt;em&gt;This is perl, v5.10.0 built for i486-linux-gnu-thread-multi&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-03-01T09:20:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~xsawyerx/journal/40215</guid>
    </item>
    <item>
      <author>nobody@example.com (Alias)</author>
      <dc:creator>nobody@example.com (Alias)</dc:creator>
      <link>http://use.perl.org/~Alias/journal/40214</link>
      <description>This is just a short promotional post.

If you are interested in the Perl/PostGIS http://geo2gov.com.au/
application we took second prize with during the Mashup Australia
competition (or the subject of open government data in general) my "Nerds
for Democracy" partner in crime Jeffery Candiloro will be giving a talk
as part the Ignite Sydney speaking event on Tuesday night Sydney time.

You should be able to watch a live stream of the talk at the Ignite video
website here.

http://igniteshow.com/

In other Nerds for Democracy news, work is now underway on our entry for
the NSW apps4nsw competition. It's looking pretty awesome, in particular
because it will feature a set of government data we uncovered by
accident, and which we think the public has pretty much never seen
before.</description>
      <dc:date>2010-02-28T22:05:00</dc:date>
      <title>See the live Ignite talk on our http://geo2gov.com.au/</title>
      <pubDate>Sun, 28 Feb 2010 22:05:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;This is just a short promotional post.&lt;/p&gt;&lt;p&gt;If you are interested in the Perl/PostGIS &lt;a href="http://geo2gov.com.au/"&gt;http://geo2gov.com.au/&lt;/a&gt; application we took second prize with during the Mashup Australia competition (or the subject of open government data in general) my &amp;quot;Nerds for Democracy&amp;quot; partner in crime Jeffery Candiloro will be giving a talk as part the Ignite Sydney speaking event on Tuesday night Sydney time.&lt;/p&gt;&lt;p&gt;You should be able to watch a live stream of the talk at the Ignite video website here.&lt;/p&gt;&lt;p&gt;&lt;a href="http://igniteshow.com/"&gt;http://igniteshow.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In other Nerds for Democracy news, work is now underway on our entry for the NSW apps4nsw competition. It&amp;apos;s looking pretty awesome, in particular because it will feature a set of government data we uncovered by accident, and which we think the public has pretty much never seen before.&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-02-28T22:05:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~Alias/journal/40214</guid>
    </item>
    <item>
      <author>nobody@example.com (neilh)</author>
      <dc:creator>nobody@example.com (neilh)</dc:creator>
      <link>http://use.perl.org/~neilh/journal/40213</link>
      <description>&lt;div class="intro"&gt;I would just like it on record that I owe &lt;a href="http://use.perl.org/~nicholas/" rel="nofollow"&gt;nicholas&lt;/a&gt; a house move&lt;/div&gt;
</description>
      <dc:date>2010-02-28T10:56:00</dc:date>
      <title>A debt owing</title>
      <pubDate>Sun, 28 Feb 2010 10:56:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;I would just like it on record that I owe &lt;a href="http://use.perl.org/~nicholas/" rel="nofollow"&gt;nicholas&lt;/a&gt; a house move&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-02-28T10:56:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~neilh/journal/40213</guid>
    </item>
    <item>
      <author>nobody@example.com (kappa)</author>
      <dc:creator>nobody@example.com (kappa)</dc:creator>
      <link>http://use.perl.org/~kappa/journal/40212</link>
      <description>Perl culture is in dire need of fresh showcases and new success stories.
When someone asks about desktop software written in Perl, FrozenBubble
usually springs to mind and then what?

I think it's very cool that Shutter is written in Perl with all kinds of
GNOME goodness like using GooCanvas based on Cairo, installing a
notifying icon and being a «Made on Ubuntu» software.

Try it, it is very feature rich, translated into many languages (my
interface is in Russian, e.g.) and a beauty to look at.

And now I'm going to try to insert some screenshots. Looks like Slash
does not support inline images at all :(

Main window:
http://www.ubuntu-pics.de/bild/44281/__shutter_001_pb6z9g.png,
list of plugins:
http://www.ubuntu-pics.de/bild/44282/shutter______________________002_ry3ohW.png</description>
      <dc:date>2010-02-26T06:15:00</dc:date>
      <title>Shutter — new Gnome screenshot program</title>
      <pubDate>Fri, 26 Feb 2010 06:15:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;Perl culture is in dire need of fresh showcases and new success stories. When someone asks about desktop software written in Perl, &lt;a href="http://www.frozen-bubble.org/" rel="nofollow"&gt;FrozenBubble&lt;/a&gt; usually springs to mind and then what? &lt;/p&gt;&lt;p&gt;I think it&amp;apos;s very cool that &lt;a href="http://shutter-project.org/" rel="nofollow"&gt;Shutter&lt;/a&gt; is written in Perl with all kinds of GNOME goodness like using GooCanvas based on Cairo, installing a notifying icon and being a «Made on Ubuntu» software. &lt;/p&gt;&lt;p&gt;Try it, it is very feature rich, translated into many languages (my interface is in Russian, e.g.) and a beauty to look at. &lt;/p&gt;&lt;p&gt;And now I&amp;apos;m going to try to insert some screenshots. Looks like &lt;a href="http://www.slashcode.com/" rel="nofollow"&gt;Slash&lt;/a&gt; does not support inline images at all&lt;nobr&gt; &lt;wbr /&gt;&lt;/nobr&gt;:( &lt;/p&gt;&lt;p&gt;Main window: &lt;a href="http://www.ubuntu-pics.de/bild/44281/__shutter_001_pb6z9g.png" rel="nofollow"&gt;http://www.ubuntu-pics.de/bild/44281/__shutter_001_pb6z9g.png&lt;/a&gt;,&lt;br /&gt; list of plugins: &lt;a href="http://www.ubuntu-pics.de/bild/44282/shutter______________________002_ry3ohW.png" rel="nofollow"&gt;http://www.ubuntu-pics.de/bild/44282/shutter______________________002_ry3ohW.pn&lt;nobr&gt;g&lt;wbr /&gt;&lt;/nobr&gt; &lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-02-26T06:15:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~kappa/journal/40212</guid>
    </item>
    <item>
      <author>nobody@example.com (perl6doc)</author>
      <dc:creator>nobody@example.com (perl6doc)</dc:creator>
      <link>http://use.perl.org/~perl6doc/journal/40211</link>
      <description>Now its's the third time I'm rambling about the recent TPF wiki overhaul.
Beside the fresh cleaned frontpages that just containes links to the 5
most important pages and aggregation of recent recent blog posts (was
there before), many new pages were created. before we had 3 or 4 pages
about wiki contributers now we have:

  * Larry Wall

  * chromatic

  * Damian Conway

  * Allison Randal

  * Audrey Tang

  * Daniel Ruoso

  * Jonathan Worthington

  * Flávio Soibelmann Glock

  * Patrick Michaud

  * Moritz Lenz

  * Jonathan Leto

  * Stephen Weeks

  * Carl Mäsak

Kudos to lot of these people who helped me to write their article. Masak
is last because the November bug is still there. :) Then we had an
article about KP6, SMOP , Rakudo and Parrot. Now we have:

  * Implementations

  * Rakudo

  * Pugs

  * viv

  * vill

  * mildew

  * Sprixel

  * Elf

  * Perlito

  * KindaPerl6

  * v6

  * Historical Implementations

Special thanks here to chromatic++. Yes, yes almost all of them are
stubs, but i add constantly. then I also added:

  * Specification

  * Synopses

  * STD.pm

  * Test Suite

  * Rakudo Star

  * Open_source_Perl_6_book

  * Whats_up?

  * FAQ

Like said, many of them are very short, but sometimes its only necessary
to give form like a crystalization point.</description>
      <dc:date>2010-02-25T19:46:00</dc:date>
      <title>what we got so far?</title>
      <pubDate>Thu, 25 Feb 2010 19:46:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;Now its&amp;apos;s the third time I&amp;apos;m rambling about the recent TPF wiki overhaul. Beside the fresh cleaned frontpages that just containes links to the 5 most important pages and aggregation of recent recent blog posts (was there before), many new pages were created. before we had 3 or 4 pages about wiki contributers now we have:&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Larry_wall" rel="nofollow"&gt;Larry Wall&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?chromatic" rel="nofollow"&gt;chromatic&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Damian_Conway" rel="nofollow"&gt;Damian Conway&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Allison_Randal" rel="nofollow"&gt;Allison Randal&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Audrey_Tang" rel="nofollow"&gt;Audrey Tang&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Daniel_Ruoso" rel="nofollow"&gt;Daniel Ruoso&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Jonathan_Worthington" rel="nofollow"&gt;Jonathan Worthington&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Flvio_Soibelmann_Glock" rel="nofollow"&gt;Flávio Soibelmann Glock&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Patrick_Michaud" rel="nofollow"&gt;Patrick Michaud&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Moritz_Lenz" rel="nofollow"&gt;Moritz Lenz&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Jonathan_Leto" rel="nofollow"&gt;Jonathan Leto&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Stephen_Weeks" rel="nofollow"&gt;Stephen Weeks&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Carl_Msak" rel="nofollow"&gt;Carl Mäsak&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; Kudos to lot of these people who helped me to write their article. Masak is last because the November bug is still there.&lt;nobr&gt; &lt;wbr /&gt;&lt;/nobr&gt;:) Then we had an article about KP6, SMOP , Rakudo and Parrot. Now we have: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Implementations" rel="nofollow"&gt;Implementations&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?rakudo" rel="nofollow"&gt;Rakudo&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Pugs" rel="nofollow"&gt;Pugs&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?viv" rel="nofollow"&gt;viv&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?vill" rel="nofollow"&gt;vill&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?mildew" rel="nofollow"&gt;mildew&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Sprixel" rel="nofollow"&gt;Sprixel&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Elf" rel="nofollow"&gt;Elf&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Perlito" rel="nofollow"&gt;Perlito&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?KindaPerl6" rel="nofollow"&gt;KindaPerl6&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?v6" rel="nofollow"&gt;v6&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Historical_Implementations" rel="nofollow"&gt;Historical Implementations&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; Special thanks here to chromatic++. Yes, yes almost all of them are stubs, but i add constantly. then I also added: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Specification" rel="nofollow"&gt;Specification&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Synopses" rel="nofollow"&gt;Synopses&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?STD.pm" rel="nofollow"&gt;STD.pm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Test_Suite" rel="nofollow"&gt;Test Suite&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Rakudo_Star" rel="nofollow"&gt;Rakudo Star&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?OpensourcePerl6book" rel="nofollow"&gt;Open_source_Perl_6_book&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?Whats_up?" rel="nofollow"&gt;Whats_up?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.perlfoundation.org/perl6/index.cgi?FAQ" rel="nofollow"&gt;FAQ&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; Like said, many of them are very short, but sometimes its only necessary to give form like a crystalization point.&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-02-25T19:46:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~perl6doc/journal/40211</guid>
    </item>
    <item>
      <author>nobody@example.com (kappa)</author>
      <dc:creator>nobody@example.com (kappa)</dc:creator>
      <link>http://use.perl.org/~kappa/journal/40210</link>
      <description>I was researching into scientific activity metrics and calculated the
h-index for all CPAN authors as an experiment (I used CPANDB by a very
high h-indexed CPAN author).

The above linked Wikipedia article has all the gory details about the
index, but I calculated it as follows: "An author X has h-index of H if
he has at least H distributions each of which is a runtime dependency for
at least H distributions by other CPAN authors".

Strictly speaking this is not the h-index proper. I used CPAN
dependencies as an equivalent of bibliographic citations. Here's everyone
with h-index &gt; 5:

  Adam Kennedy 19
  Dave Rolsky 16
  Florian Ragwitz 14
  Ricardo Signes 13
  Gisle Aas 11
  David Golden 9
  Graham Barr 8
  Steffen Mueller 8
  Alexandr Ciornii 7
  Damian Conway 7
  Tatsuhiko Miyagawa 7
  Michael G Schwern 7
  Andy Lester 7
  Richard Clamp 7
  Chris Williams 6
  Tomas Doran 6
  Ingy dot Net 6
  Marc Lehmann 6
  Yuval Kogman 6

By the way, 6875 of 8029 CPAN authors have h-index of zero.

I don't know whether my restriction of runtime-phase dependencies
invalidates the calculation due to inaccurate data. Will run the suite
without it tomorrow.

Here's the gist of the code (it's 6 a.m. here in Moscow and I may very
well have gone totally nuts):

  sub hindex($author) {
  my $res =
  $dbh-&gt;selectall_arrayref('
  select d.distribution, count(dep.distribution) as deps
  from distribution d, dependency dep, distribution d2
  where d.author = ?
  and dep.dependency = d.distribution
  and dep.phase = "runtime"
  and d2.distribution = dep.distribution
  and d2.author != ?
  group by d.distribution
  order by deps desc
  ',
  undef, $author, $author);

  my $h = 0;
  while ($res-&gt;[$h] &amp;&amp; $res-&gt;[$h]-&gt;[1] &gt; $h) {
  $h++;
  }

  return $h;
  }

This is not pure Perl, it's Perl with signatures which I totally love.</description>
      <dc:date>2010-02-24T23:04:00</dc:date>
      <title>h-index for CPAN</title>
      <pubDate>Wed, 24 Feb 2010 23:04:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;I was researching into scientific activity metrics and calculated the &lt;a href="http://en.wikipedia.org/wiki/H-index" rel="nofollow"&gt;h-index&lt;/a&gt; for all CPAN authors as an experiment (I used &lt;a href="http://ali.as/top100/" rel="nofollow"&gt;CPANDB&lt;/a&gt; by a very high h-indexed CPAN author). &lt;/p&gt;&lt;p&gt;The above linked Wikipedia article has all the gory details about the index, but I calculated it as follows: &lt;i&gt;&amp;quot;An author X has h-index of H if he has at least H distributions each of which is a runtime dependency for at least H distributions by other CPAN authors&amp;quot;.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Strictly speaking this is not the h-index proper. I used CPAN dependencies as an equivalent of bibliographic citations. Here&amp;apos;s everyone with h-index &amp;gt; 5:&lt;/p&gt;&lt;blockquote&gt;&lt;div&gt;&lt;p&gt;&lt;tt&gt;Adam Kennedy          19&lt;br /&gt;Dave Rolsky           16&lt;br /&gt;Florian Ragwitz       14&lt;br /&gt;Ricardo Signes        13&lt;br /&gt;Gisle Aas             11&lt;br /&gt;David Golden          9&lt;br /&gt;Graham Barr           8&lt;br /&gt;Steffen Mueller       8&lt;br /&gt;Alexandr Ciornii      7&lt;br /&gt;Damian Conway         7&lt;br /&gt;Tatsuhiko Miyagawa    7&lt;br /&gt;Michael G Schwern     7&lt;br /&gt;Andy Lester           7&lt;br /&gt;Richard Clamp         7&lt;br /&gt;Chris Williams        6&lt;br /&gt;Tomas Doran           6&lt;br /&gt;Ingy dot Net          6&lt;br /&gt;Marc Lehmann          6&lt;br /&gt;Yuval Kogman          6&lt;/tt&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;By the way, 6875 of 8029 CPAN authors have h-index of zero. &lt;/p&gt;&lt;p&gt;I don&amp;apos;t know whether my restriction of runtime-phase dependencies invalidates the calculation due to inaccurate data. Will run the suite without it tomorrow. &lt;/p&gt;&lt;p&gt;Here&amp;apos;s the gist of the code (it&amp;apos;s 6 a.m. here in Moscow and I may very well have gone totally nuts):&lt;/p&gt;&lt;blockquote&gt;&lt;div&gt;&lt;p&gt;&lt;tt&gt;sub hindex($author) {&lt;br /&gt;    my $res =&lt;br /&gt;    $dbh-&amp;gt;selectall_arrayref(&amp;apos;&lt;br /&gt;        select d.distribution, count(dep.distribution) as deps&lt;br /&gt;            from distribution d, dependency dep, distribution d2&lt;br /&gt;            where   d.author = ?&lt;br /&gt;                and dep.dependency = d.distribution&lt;br /&gt;                and dep.phase = &amp;quot;runtime&amp;quot;&lt;br /&gt;                and d2.distribution = dep.distribution&lt;br /&gt;                and d2.author != ?&lt;br /&gt;            group by d.distribution&lt;br /&gt;            order by deps desc&lt;br /&gt;        &amp;apos;,&lt;br /&gt;        undef, $author, $author);&lt;br /&gt;&lt;br /&gt;    my $h = 0;&lt;br /&gt;    while ($res-&amp;gt;[$h] &amp;amp;&amp;amp; $res-&amp;gt;[$h]-&amp;gt;[1] &amp;gt; $h) {&lt;br /&gt;        $h++;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    return $h;&lt;br /&gt;}&lt;/tt&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;This is not pure Perl, it&amp;apos;s Perl with &lt;a href="http://search.cpan.org/dist/signatures/" rel="nofollow"&gt;signatures&lt;/a&gt; which I totally love.&lt;/p&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-02-24T23:04:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~kappa/journal/40210</guid>
    </item>
    <item>
      <author>nobody@example.com (chromatic)</author>
      <dc:creator>nobody@example.com (chromatic)</dc:creator>
      <link>http://use.perl.org/~chromatic/journal/40209</link>
      <description>The Perl 6 design team met by phone on 17 February 2010. Larry, Allison,
Patrick, and chromatic attended.

Larry:

  * much work clarifying relationship of parcels to everything else (&lt;a
    b&gt;, assignment, arguments, captures, parameters, signatures, gather/take,
    and loop returns)

  * we now list all scope declarators in one spot

  * conjectured some ideas on how to handle the allomorphism of literals
    more dwimmily

  * had already specced some of this behavior for literals found inside
    qw angles.

  * literals that exceed a Rat64's denominator automatically keep the
    string form around for coercion to other types

  * clarified that anon declarator allows a name but simply doesn't
    install it in the symbol table

  * respecced the trig functions to use a pragma to imported fast curried
    functions

  * still uses enum second argument for the general case (rakudo is still
    stuck on slow strings there)

  * on iterators, renamed .getobj to .getarg since arguments are the
    typical positional/slicey usage

  * signatures are never bound against parcels anymore, only against
    captures

  * we now use "argument" as a technical term meaning either a real
    parcel or an object that can be used independent of context as an
    argument

  * anything that would stay discrete when bound to a positional,
    basically

  * return, take, and loop return objects are also arguments in that
    sense

  * they all return either a parcel or anything that can stand on its own
    as an argument

  * STD now adds a shortname alias on adverbialized names, ignores
    collisions on the shortname for now, which is okay for multis

  * STD now complains about longname (adverbialized) collisions

  * STD no longer carps about duplicate anonymous routine declarations

  * made the undeclared type message the same for parameters as for other
    declarations

  * clarify the error message about anonymous variables

  * no longer report a $) variable error where ) is the $*GOAL

  * add WHAT etc. to list of functions that require an argument

Allison:

  * working on two HLL implementations

  * one is Pynie, the other is Camle

  * nothing to do with Caml or ML

  * I've noticed huge improvements in NQP-rx from the previous NQP

  * can't say which feature improvements make the most difference, but
    I'll migrate Pynie pretty soon to take advantage of the new version

  * continuing to shepherd Debian and Ubuntu packages

Patrick:

  * essentially all I did was unify things

  * previously it had been two or three tools

  * it's just one

Allison:

  * even the syntax seems more regular

Patrick:

  * there are more pieces available in NQP-rx

  * Rakudo's -ng is now master

  * the old master is now -alpha

  * we took a big hit on spectests, but they seem to be coming back
    quickly

  * 5000 tests pass on trunk now

  * we have 16k or 17k we haven't re-enabled; they make the spectest
    slower

  * Jonathan thinks we may pass 25,000 tests now

  * that's great, considering where we were a week ago

  * I redid Rakudo's container, value, and assignment module

  * previously variables held values directly

  * now they contain reference PMCs

  * that cleaned up many things

  * we use more PMCs, but now we don't clone and copy as much

  * we move references around more

  * seems closer to how Perl 6 handles things

  * was much easier than I expected

  * updated the NQP-rx regex engine and built in constant types

  * handles Unicode character names

  * reclaims plenty of tests

  * answered lots of questions for people adding things into Rakudo

  * prioritizing other people writing code over writing code

  * increases our developer pool; seems to be working well

  * new release of Rakudo planned for tomorrow

  * don't know how many tests we'll pass, but it should go well

  * plan to put in a few things like sort and grammars over the next week

  * then I'll review the RT queue to find bugs and (hopefully) closeable
    bugs

c:

  * working on GC tuning

  * also working on String PMC tuning

  * working on built-in types and their behavior as classes and parent
    classes

  * the multidispatch bugs in particular I hope to solve</description>
      <dc:date>2010-02-24T20:27:00</dc:date>
      <title>Perl 6 Design Minutes for 17 February 2010</title>
      <pubDate>Wed, 24 Feb 2010 20:27:00 -0000</pubDate>
      <content:encoded>&lt;div class="intro"&gt;&lt;p&gt;The Perl 6 design team met by phone on 17 February 2010. Larry, Allison, Patrick, and chromatic attended.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Larry:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;much work clarifying relationship of parcels to everything else (&lt;code&gt;&amp;lt;a b&amp;gt;&lt;/code&gt;, assignment, arguments, captures, parameters, signatures, &lt;code&gt;gather&lt;/code&gt;/&lt;code&gt;take&lt;/code&gt;, and loop returns)&lt;/li&gt;&lt;li&gt;we now list all scope declarators in one spot&lt;/li&gt;&lt;li&gt;conjectured some ideas on how to handle the allomorphism of literals more dwimmily&lt;/li&gt;&lt;li&gt;had already specced some of this behavior for literals found inside &lt;code&gt;qw&lt;/code&gt; angles.&lt;/li&gt;&lt;li&gt;literals that exceed a &lt;code&gt;Rat64&lt;/code&gt;&amp;apos;s denominator automatically keep the string form around for coercion to other types&lt;/li&gt;&lt;li&gt;clarified that anon declarator allows a name but simply doesn&amp;apos;t install it in the symbol table&lt;/li&gt;&lt;li&gt;respecced the trig functions to use a pragma to imported fast curried functions&lt;/li&gt;&lt;li&gt;still uses enum second argument for the general case (rakudo is still stuck on slow strings there)&lt;/li&gt;&lt;li&gt;on iterators, renamed&lt;nobr&gt; &lt;wbr /&gt;&lt;/nobr&gt;&lt;code&gt;.getobj&lt;/code&gt; to&lt;nobr&gt; &lt;wbr /&gt;&lt;/nobr&gt;&lt;code&gt;.getarg&lt;/code&gt; since arguments are the typical positional/slicey usage&lt;/li&gt;&lt;li&gt;signatures are never bound against parcels anymore, only against captures&lt;/li&gt;&lt;li&gt;we now use &amp;quot;argument&amp;quot; as a technical term meaning either a real parcel or an object that can be used independent of context as an argument&lt;/li&gt;&lt;li&gt;anything that would stay discrete when bound to a positional, basically&lt;/li&gt;&lt;li&gt;&lt;code&gt;return&lt;/code&gt;, &lt;code&gt;take&lt;/code&gt;, and loop return objects are also arguments in that sense&lt;/li&gt;&lt;li&gt;they all return either a parcel or anything that can stand on its own as an argument&lt;/li&gt;&lt;li&gt;STD now adds a shortname alias on adverbialized names, ignores collisions on the shortname for now, which is okay for multis&lt;/li&gt;&lt;li&gt;STD now complains about longname (adverbialized) collisions&lt;/li&gt;&lt;li&gt;STD no longer carps about duplicate anonymous routine declarations&lt;/li&gt;&lt;li&gt;made the undeclared type message the same for parameters as for other declarations&lt;/li&gt;&lt;li&gt;clarify the error message about anonymous variables&lt;/li&gt;&lt;li&gt;no longer report a &lt;code&gt;$)&lt;/code&gt; variable error where &lt;code&gt;)&lt;/code&gt; is the &lt;code&gt;$*GOAL&lt;/code&gt;&lt;/li&gt;&lt;li&gt;add &lt;code&gt;WHAT&lt;/code&gt; etc. to list of functions that require an argument&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Allison:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;working on two HLL implementations&lt;/li&gt;&lt;li&gt;one is Pynie, the other is Camle&lt;/li&gt;&lt;li&gt;nothing to do with Caml or ML&lt;/li&gt;&lt;li&gt;I&amp;apos;ve noticed huge improvements in NQP-rx from the previous NQP&lt;/li&gt;&lt;li&gt;can&amp;apos;t say which feature improvements make the most difference, but I&amp;apos;ll migrate Pynie pretty soon to take advantage of the new version&lt;/li&gt;&lt;li&gt;continuing to shepherd Debian and Ubuntu packages&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Patrick:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;essentially all I did was unify things&lt;/li&gt;&lt;li&gt;previously it had been two or three tools&lt;/li&gt;&lt;li&gt;it&amp;apos;s just one&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Allison:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;even the syntax seems more regular&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Patrick:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;there are more pieces available in NQP-rx&lt;/li&gt;&lt;li&gt;Rakudo&amp;apos;s -ng is now master&lt;/li&gt;&lt;li&gt;the old master is now -alpha&lt;/li&gt;&lt;li&gt;we took a big hit on spectests, but they seem to be coming back quickly&lt;/li&gt;&lt;li&gt;5000 tests pass on trunk now&lt;/li&gt;&lt;li&gt;we have 16k or 17k we haven&amp;apos;t re-enabled; they make the spectest slower&lt;/li&gt;&lt;li&gt;Jonathan thinks we may pass 25,000 tests now&lt;/li&gt;&lt;li&gt;that&amp;apos;s great, considering where we were a week ago&lt;/li&gt;&lt;li&gt;I redid Rakudo&amp;apos;s container, value, and assignment module&lt;/li&gt;&lt;li&gt;previously variables held values directly&lt;/li&gt;&lt;li&gt;now they contain reference PMCs&lt;/li&gt;&lt;li&gt;that cleaned up many things&lt;/li&gt;&lt;li&gt;we use more PMCs, but now we don&amp;apos;t clone and copy as much&lt;/li&gt;&lt;li&gt;we move references around more&lt;/li&gt;&lt;li&gt;seems closer to how Perl 6 handles things&lt;/li&gt;&lt;li&gt;was much easier than I expected&lt;/li&gt;&lt;li&gt;updated the NQP-rx regex engine and built in constant types&lt;/li&gt;&lt;li&gt;handles Unicode character names&lt;/li&gt;&lt;li&gt;reclaims plenty of tests&lt;/li&gt;&lt;li&gt;answered lots of questions for people adding things into Rakudo&lt;/li&gt;&lt;li&gt;prioritizing other people writing code over writing code&lt;/li&gt;&lt;li&gt;increases our developer pool; seems to be working well&lt;/li&gt;&lt;li&gt;new release of Rakudo planned for tomorrow&lt;/li&gt;&lt;li&gt;don&amp;apos;t know how many tests we&amp;apos;ll pass, but it should go well&lt;/li&gt;&lt;li&gt;plan to put in a few things like &lt;code&gt;sort&lt;/code&gt; and grammars over the next week&lt;/li&gt;&lt;li&gt;then I&amp;apos;ll review the RT queue to find bugs and (hopefully) closeable bugs&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;c:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;working on GC tuning&lt;/li&gt;&lt;li&gt;also working on String PMC tuning&lt;/li&gt;&lt;li&gt;working on built-in types and their behavior as classes and parent classes&lt;/li&gt;&lt;li&gt;the multidispatch bugs in particular I hope to solve&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
</content:encoded>
      <dcterms:modified>2010-02-24T20:27:00</dcterms:modified>
      <guid isPermaLink="true">http://use.perl.org/~chromatic/journal/40209</guid>
    </item>
  </channel>
</rss>
