File::Fu has another version out, now with which() support. I looked at possibly replacing File::Which entirely, but unfortunately only had the time to just wrap it. In this case, it's not as painful as wrapping File::Temp, but that sort of choice is an ongoing struggle in the land of revisiting API designs for "good enough" and "what we have works" code.
And it now has a bug report, but Win32 support is on the back burner mostly for lack of a convenient mechanism for testing on that platform (though I honestly haven't had much chance to juggle the trade-offs of how it would be best implemented.) If you're interested, please feel free to take a run at it.
Well, actually Graph::ChainBuilder probably won't work if you're trying to sort-out a human skeleton, but it does allow you to find multiple closed loops in a set of data. I use it for identifying a sequence in an unordered pile of CAD line/arc data. I'm curious if others have a use for such a thing, and in what domain?
So you know a thing or two about RT and want to help make rt.cpan.org be as awesome as the RT you've got running at the office? Or maybe you've been looking for an excuse to learn more about RT and want to help the Perl community? Someone asked me about this sort of thing and the only thing I knew to do was to bother Jesse (who already spends lots of time, money, and effort for the love of all things Perl) about it.
And it turns out, that's sort of the standard procedure for those who would like to help. This is a bit sub-optimal in that you have to feel like you're interrupting someone (and in fact you probably are) to satisfy your curiosity about whether you can help.
Since Jesse and his crew have already taken the trouble to answer my questions about the matter, I figured I would pass some information along.
Currently, the RT on rt.cpan.org is a 3.6 with a set of overlays which were written to work-around problems or missing features in 3.6. These have not yet been tested on version 3.8.1, and it is quite likely that many of the new 3.8 features will render some of the old overlays obsolete (possibly even breaking them.) That is, rt.cpan.org has some custom hacks which probably can (and should) now be "unhacked" so that we don't get additional drift with future versions.
So, who needs to do this? Well, how awesome of you to volunteer! If you think you have what it takes, take a look at the repository and specifically this setup script to get an idea of what you'll need to setup a local copy and test it. The pull-live script has some hard-coded bits assuming an 'rtcpan' user and is going to try to sudo make install several distros from the bestpractical svn, so you'll probably want to either hack it to fit your machine's environment or simply read through it to copy the svn urls it uses to perform the setup yourself. The bit about sudo make upgrade is also suspect because you likely don't have one setup yet.
With any luck, this is making sense to you (or at least, you're now looking forward to reading the RT documentation.)
Once you get it running and working correctly, I would guess that your mission is then to switch the tag to rt/3.8/trunk and see where the magic smoke comes out. Problems at this stage would likely be answered in the #rt channel on irc.perl.org. Patches would also be warmly greeted there. Ultimately, a member of the awesome BPS crew will be in charge of flipping the big switch on the live rt.cpan.org server and your updates to the code will then be subjected to the wrath of 7k+ authors debugging almost 17k distributions (not to mention millions of users).
Ok, we've now exceeded my depth of RT knowledge and I'm out of time for further exploration. Hopefully someone with more tuits can use this information to help bring us the latest and greatest of RT for rt.cpan.org.
Jonathan Leto has volunteered to spearhead the GSoC effort on behalf of the Perl community for 2009. Thank you, Jonathan.
For those who were involved (or just watching closely) in 2008, you may recall that we had a wonderful group of 40+ mentors volunteer and, sadly, not enough students to keep them all occupied.
Jonathan has A Proposal to change that, but will need help from your Perl Mongers group.
If we indeed have 340 active
Today I'm going to try again to do some work on Module::Build. I have one straightforward patch to apply, one very non-straightforward patch to consider, and in the nearly 3 months since the last release there are 15 new bugs in RT.
Given that I can manage to fix one or two bugs per session and only get about one session of hacking on this per month, I can see that this is going to go permanently pear-shaped if I'm alone.
Our December Meeting was a rakudo workshop, where we realized that rakudo had no implementation of warn(). While the implementation that got checked-in by the end of the meeting is not fully compliant with the spec's requirement that warn() throws a certain sort of resumable exception, it does now at least exist, and prints your message on stderr.
Update: read more in Jonathan's blog.
In reply to chromatic's ponderance:
Sometimes I wonder what would happen if we gave Perl 6 the slogan "Yes we can!"...
"Yes we can" only sticks if you provide tools for people to use to motivate more people. If someone tries it and finds that indeed they can make a difference (which they enjoyed making), they will tell others about it.
In my experiences trying to make a difference, I've been bogged-down with historical accident and disorganized information. My threshold is (I think) rather high for absorbing abstract complexity six layers removed from anything which serves my current goal. But once I lose more than a few hours without any feeling of achievement, I have to stop and think whether or not I'll get anything of use from these efforts within the acceptable future. Perhaps I'm lacking in altruism, but I'm going to seek solace in the fact that I'm still alive and selfishly convince me that I have "enough" altruism. Ultimately, you have to somehow provide a sense of satisfaction in the near term to keep people motivated.
So, is "you can make a difference" a convincing and sufficiently motivating message in the context of something which is perhaps just as overwhelming as massive political change (but likely not so universally appreciated), where the consequences of non-participation are not so immediately evident? After all, everyone in the US is subject to the government's policies and the consequences of its knee-jerk reactionary actions, with the only (and difficult) alternative being to defect. Whereas with parrot and Perl 6, the vast majority of programmers have no current investments or residency. Even existing Perl users need not defect to exercise control over their programming environment (unfortunately, many of them do -- but "the CPAN has fallen behind" is another subject.) So, perhaps the rally-cry of "you can make your hell less hellish" which created such unprecedented attention and turnout in our recent political adventure has less power in terms of the short-sighted, time-pressured world of technological change. And, do you really want to pursue the same course as a political campaign, where change is measured in decades? After 8 years in?
But I do think there are lessons to be learned. Particularly, the capital of enthusiasm. The lesson which Obama's campaign showed us is that you have to manage that capital in a way which builds the enthusiasm. Except, that was a relatively easy game compared to parrot. How can I connect with an enthusiastic group in my community and spend some relatively small amount of time to gather more enthusiastic supporters? Having gathered these supporters, what does parrot propose to do with them? Where a meaningful contribution or commitment in a political campaign might be as small as 5 votes or dollars, what constitutes a meaningful contribution to parrot? There are indeed places where dollars can be put to good use handling complex tasks where more developers would hinder the effort. But why invest dollars where you have no current stake toward a quite distant goal? So, how do you use non-monetary resources to build and maintain the enthusiasm to push parrot, and ultimately Perl 6 out the door?
It seems like open source projects have typically relied on "results, today" as a means of gathering user momentum and the ability to have meaningful improvements tomorrow (literally) as a means of converting users into developers. So, what is the compelling case for someone to become a parrot user today? This seems to be missing for me, given my recent experiences with rakudo. But the definition of "user" into which I can be fit is probably limited for this stage of parrot's maturity in that I really need to have suitable performance and compelling usability at a rather high level to get something from being a "user". If there are problems with garbage collection, threads, or anything sufficiently low-level to instill a sense of dread, anyone using one of the many currently available HLL interpreters is not going to be a good candidate for becoming a parrot user today. From what I've seen, becoming a Perl 6 user is also still quite distant, though parrot still seems to be the most direct path to that (but not yet a short one by any means.)
So, assuming that we can find a different definition of "user" than me, what is parrot right now, and what constitutes a possible user base for it? I would have to guess that CS researchers would be the most likely candidates. But this is not my field of study so I'll trust that those with more in-depth knowledge of parrot might be able to make more educated guesses about where to find users. The point is simply that you need to find a sufficient source of people who would be able to say "I used parrot to $thing and it is awesome." I suspect that $thing will not be of immediate interest to many current Perl users, but the number of people and the fields from which they come to parrot will grow as parrot becomes more capable at higher and higher levels.
With this in mind, what does parrot need to do to acquire and maintain user enthusiasm? Then, how do you convert the next group of new users into ambassadors and developers? This would seem to require an astute organizer with a high tolerance for organizational complexity and a large amount of patience. It also implies a trip to academia and some extensive effort to put parrot in front of the right audiences there.
So, while there is probably a lot that I can do for parrot, what can parrot do for me? As far as I can tell, currently: "not much", but I would love for someone to demonstrate otherwise.
Working on VectorSection again, I thought I would take another look at the Wx::GLCanvas and doing a little something with polygons.
From the Wx::GLCanvas demo:
sub cube {
my( @v ) = ( [ 1, 1, 1 ], [ -1, 1, 1 ],
[ -1, -1, 1 ], [ 1, -1, 1 ],
[ 1, 1, -1 ], [ -1, 1, -1 ],
[ -1, -1, -1 ], [ 1, -1, -1 ] );
my( @c ) = ( [ 1, 1, 0 ], [ 1, 0, 1 ],
[ 0, 1, 1 ], [ 1, 1, 1 ],
[ 0, 0, 1 ], [ 0, 1, 0 ],
[ 1, 0, 1 ], [ 1, 1, 0 ] );
my( @s ) = ( [ 0, 1, 2, 3 ], [ 4, 5, 6, 7 ],
[ 0, 1, 5, 4 ], [ 2, 3, 7, 6 ],
[ 1, 2, 6, 5 ], [ 0, 3, 7, 4 ] );
for my $i ( 0
my $s = $s[$i];
glBegin(GL_QUADS);
foreach my $j ( @$s ) {
glColor3f( @{$c[$j]} );
glVertex3f( @{$v[$j]} );
}
glEnd();
}
}
I sense an abstraction layer in my future, but undoubtedly it is going to be at the other end of some very sloggy slogging.
I've always hated web applications, to the point that I'll refuse to edit a wiki and various other things which basically make me completely disfunctional in this age of web 1.999999.
It just occurred to me that maybe the problem is the margins. I'm currently typing this in a 400x200 pixel box within a 1000x600 pixel window, which means that almost my entire screen is currently margin, vs when I use a desktop app and my 800x600 window has at least 780x550 usable area. I'm also looking at two scrollbars right now. This might explain why I don't blog so often.
But I had this realization while reading a web page, where again my view of the world is almost completely overwhelmed by margins! (And then there's the pdf, where the margins just serve as a painful reminder about how the margins cannot be written in.)
You will all now please write "I will not fill the world with useless margins" longhand in your margins until they are full. I suppose that means writing it on paper, scanning it, and uploading it (no image tiling allowed -- that's like using the thing with the 5 chalks.)
This month at pdx.pm we'll be sitting down as a group with parrot on our laptops and Jerry Gay to explore Perl 6 and kick the tires on rakudo. From my experiences running rakudo thus far, it has at least reached the point of "more interesting than frustrating".
I'm hoping that this session will demonstrate that Perl 6 is becoming very real and give the attendees an excuse to learn more about the language and explore what it will be able to do for them. It should be interesting to see what different people bring to it, their expectations, and the learning curve.