Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

kid51 (5328)

kid51
  (email not shown publicly)
http://thenceforward.net/perl/

Journal of kid51 (5328)

Saturday July 25, 2009
01:28 PM

Corehackers Project: Thoughts on Process

So I'm sitting in a conference hall at YAPC on either the second or third day of the conference. A veteran member of the Perl community makes a presentation in one of the short time slots about a new project in which people can help improve Perl and its ecosystem. The presenter defines a body of existing code which would benefit from study by fresh eyeballs. Such study would lead to refactoring and improvements in testing and documentation, making the code more useful and maintainable over the long run. Participants in this project would be seen as assisting the current authors/maintainers of the targeted codebases. Those authors/maintainers would retain final say as to what contributions from the new project would actually get applied. The presenter is one of the relative handful of people in the community who can actually inspire others to devote their free time to new open source development projects. I sign up.

I could be talking about the Perl 5 Corehackers project introduced by Chip Salzenburg at YAPC::10 in Pittsburgh last month -- but I'm not. More precisely, I'm not talking about the Corehackers project *yet*. I'm talking about the Phalanx Project.

The Phalanx Project was an idea first introduced by Andy Lester in 2003. In the Phalanx project, groups of Perl developers would select frequently used -- but non-core -- CPAN distributions and, with a green light from the authors or current maintainers of those distributions, refactor them, write more tests for them and improve their documentation. At first few people knew of the Phalanx Project, but Andy retooled it somewhat and presented it at YAPC::NA::2004 in Buffalo, which is where I first heard about it.

By the summer of 2004 I had been the lead organizer of Perl Seminar New York for four years, had begun contributing distributions to CPAN, and had begun speaking at YAPCs in Canada and the United States. But much of my work was done working by myself at home and I was eager to play a role other than meeting organizer and to collaborate more directly with other Perl folks. I seized on the idea of the Phalanx Project as a hook to gather other New York City Perl people in to working on a project collectively, with face-to-face hacking being the most important aspect of the collective work.

I've spoken about our part in the Phalanx Project elsewhere, so let me get to the essentials. By June of 2005 we (Marc Prewitt, David H Adler, Alex Gill and myself) had done major work on two CPAN distributions: Text-Template and HTML-Template. We submitted our work to the authors of each distribution. Marc and I presented on the Phalanx project at YAPC::NA::2005 in Toronto.

And then, silence. Despite repeated nudging, both by email and in person, we got no feedback on our work from the distribution authors -- for years. Finally, in 2007, quite a bit of our code was incorporated into one of the distributions and we got a commendation from the distribution's author. On one of the few occasions when I ever met that distribution's author in person, he commented, "Don't break it. It's my baby." (It was, I believe, his first CPAN distribution.) As for the other distribution: We never got feedback from its author and it appears none of our work was incorporated into the one CPAN release which that distribution has had in the past four years.

The members of the New York City part of the Phalanx Project learned a tremendous amount about careful preparation and testing of libraries in the process, but only part of our work actually made it out to the larger Perl community. My impression is that that was the outcome in the one other locality in which a group of people came together to phalanx a CPAN distribution. So the Phalanx Project was only modestly successful.

I tell this story now because there are many similarities between the Phalanx Project and the Perl 5 Corehackers Project. Fast forward from YAPC::NA::2004 at the University at Buffalo to YAPC::10 (NA::2009) at Carnegie-Mellon University in Pittsburgh. For Andy Lester as inspiring presenter, see Chip Salzenburg. For target codebase, see Perl 5 core instead of prominent CPAN distributions. For CPAN distribution authors, substitute the Perl 5 Porters.

But the thrust of the two projects is remarkably similar: Gather both veterans and, especially, newcomers -- people who may previously have never thought themselves qualified to work on the targeted code base -- to hack on important parts of the Perl 5 ecosystem and generate patches that the 'owners' of the code -- those who have commit bits -- would, it is hoped, apply to the code base.

And there's the rub. You could work your butt off refactoring some part of the Perl 5 core distribution, have all the tests you need to demonstrate that you haven't broken anything and have written clear, helpful documentation -- and still not get any feedback from the people who have the final say on the work you've done. You don't have a commit bit.

So while I was very glad to hear Chip's presentation about the Corehackers Project -- and am even meeting with David Golden this week to discuss how I might participate -- I must confess to some trepidation about how the relationship between the Perl 5 Porters and the Corehackers Project will evolve. My guess is that those who choose to participate in the Corehackers will develop considerable psychological investment in their work. And it's evident from the recent controversies over the Perl 5.10 release process that the Perl 5 Porters have considerable psychological investment in their work and the ways they have evolved to conduct that work. I could even see Porters saying, "Why do we even need a Corehackers project? Nothing's keeping you from submitting patches to p5p today."

So the Corehackers Project, to be successful, must face some important questions, both on its own and in conjunction with Perl 5 porters. Among these questions, at least two occur to me right off the bat:

  • How will feedback be provided?
  • How will differences between corehackers and porters be resolved?
Sunday January 04, 2009
10:23 PM

Seek better response to "How Is Perl 6 Doing?"

I often attend other (non-Perl) user groups in New York City -- mostly Linux and BSD groups. From time to time, when I identify myself as a Perl programmer, I am asked -- or, should I say, I am taunted with -- the question, "How is Perl 6 coming along?"

Now, up until two years ago, I simply ignored that question, because I had my hands full learning to become a good Perl 5 programmer and had no time/tuits to follow anything related to Perl 6.

But since I was recruited to the Parrot project in November 2006, I've had to take that question more seriously. My stock response goes like this:

I don't have the time to follow developments in the Perl 6 language specification. I do follow the development of the Parrot virtual machine. We expect to have our 1.0 release during the first half of 2009. You can view the Parrot roadmap.

Of course, that's not the response that the questioner was looking for. So what I would like to know is if there is one site to which I can direct such questioners which says:

1. How complete is the development of the Perl 6 language specification.

2. What percentage of the completed Perl 6 language specification has been implemented on Parrot (Rakudo)?

If we don't have such a site, what would be the obstacles to developing one?

Thank you very much.

Wednesday August 20, 2008
09:33 PM

[ANNOUNCE] Parrot 0.7.0

Parrot release manager Bob Rogers wrote on Tuesday, August 19:

On behalf of the Parrot team, I'm proud to announce Parrot 0.7.0 "Severe Macaw." Parrot is a virtual machine aimed at running all dynamic languages.

Parrot 0.7.0 is available via CPAN (soon), or follow the download instructions at here. For those who would like to develop on Parrot, or help develop Parrot itself, we recommend using Subversion on the source code repository to get the latest and best Parrot code.

Parrot 0.7.0 Highlights:

  • The new concurrency implementation makes its debut in 0.7.0.
  • Rakudo (Perl 6) now supports class attributes and multiple dispatch, plus some metaclass support, among others.

Parrot 0.7.0 News:

  • Specification
    • PDD27: add multisub lookup
  • Implementation
    • new concurrency implementation (see PDD25)
    • Exception PMC now captures a return continuation
    • improved PMC encapsulation (Iterator, Key, Pair)
  • Languages
    • Cardinal (Ruby):
      • class variables
      • parsing improvements
      • minor additions to class builtins
      • add support for block parameters to functions
    • Lua:
      • various language fixes
      • refactor all libraries (namespace, method registration)
      • add a OpenGL binding (still incomplete)
      • lost user back trace (see ppd25 & pushaction)
    • Pipp (PHP):
      • add support for while- and for-loops
      • add support for increment and decrement
      • designate PHP 5.3 as the reference implementation
      • improve support for string literals
    • Pugs (Perl 6):
      • removed due to bit rot
    • Rakudo (Perl 6):
      • now over 2200 passing spectests
      • updated the Rakudo roadmap
      • Perl 6 multi dispatch
      • dispatch with slurpies
      • class attributes ("my $.x")
      • anonymous classes
      • OO and metaclass improvements (.WHAT, .WHICH, .WHENCE)
      • additional builtin methods and subs
      • improved make test targets and harness
    • Tcl:
      • implement [lreverse], [lsort -command]
      • allow [incr] to autovivify
      • update tclsh spec target to 8.5.3
      • fix bug in TclDict PMC, allowing ~200 more [dict] spec tests to pass
      • update 'make spectest' fudging, using TODO instead of SKIP if possible
  • Compilers
    • PCT:
      • :scope('register') for PAST::Var nodes
      • allow invocant specification in attribute scope PAST::Var nodes
      • correct ordering of sub generation from POST
      • add 'loadinit' attribute to PAST::Block for block initialization
    • PIRC:
      • PIR registers now use the vanilla register allocator
      • all PASM output now uses PASM registers
      • all .locals and $registers are mapped
      • clean-up of grammar, back-end and documentation
      • implemented constant folding
      • implemented instruction selection
  • Configuration
    • tests now clean up after themselves
    • improved parallel test support
    • ports/cygwin added
    • Darwin problems fixed
  • Tools
    • parrot_debugger renamed from pdb, numerous tweaks
  • Miscellaneous
    • IMCC cleanups
    • :vtable implies self in PIR
    • modest core speed improvements
    • Cygwin support improved
    • "say" now an opcode (was dispatched to a method; see Deprecations)
  • Deprecations
    • ".pragma n_operators" is deprecated
    • old PASM register syntax (without "$") is deprecated
    • bare (unquoted) method names are deprecated
    • "#line" will be replaced with ".line"
    • ".HLL_map" syntax will change
    • ".loadlib" is now separate from ".HLL"
    • mmdvtregister and mmdvtablefind opcodes are deprecated
    • removed getfd, getclass opcodes
    • removed IMCC syntax that treated some methods as builtins
    • removed numeric get_attr and set_attr vtable entries

Many thanks to all our contributors for making this possible, and our sponsors for supporting this project. Our next scheduled release is 16 Sep 2008.

Enjoy!

-- Bob Rogers

Monday June 09, 2008
05:43 PM

I vote No on proposed CPANTS metrics

Gabor Szabo has requested comments on his proposal for addition of new metrics to CPANTS.

I vote No, for most of the same reasons already posted by chromatic.

I like Test::NoWarnings. Its author, Fergal Daly, is one of the sharpest people in the Perl QA world. But Test::Warnings is not part of the Perl core distribution. So to earn this proposed Kwalitee metric, I would have to include Test::NoWarnings underneath the t/ directory in each one of my CPAN distributions. That's pointless.

Sunday July 01, 2007
12:05 PM

Linus Torvalds on git: Disappointing

The other night I watched the entirety of Linus Torvald's May 2007 talk at Google Mountain View on git, the version control system he wrote and uses to manage the Linux kernel. I have to say that my socks were not knocked off by git, but, more importantly, I was not favorably impressed with Torvalds himself.

To the latter first: Torvalds opens his talk by saying that for the purpose of his talk, anyone who defends CVS or CVS-based version control systems such as Subversion is "ugly and stupid." At this point one would assume that he is speaking tongue-in-cheek. But he repeats this characterization a number of times in the 70-minute talk and further characterizes the authors of Subversion as "morons." This leads me to believe that he is not simply having a little fun but does in fact hold the authors and users of these VCSes in contempt. In his characterization of the human beings writing or using these VCSes I find no trace of generosity -- only scorn.

Torvalds' hostile tone toward the people involved with other VCSes ultimately undermines the case he makes for git, IMO. I'm certainly open to an argument that what he characterizes as 'distributed' source code management is better than a 'centralized' system. But I would want to hear that argument from someone who is not heavily invested in dissing the people who disagree with him.

If there are any readers of this post who were present in the Google audience for Torvalds' talk, I would welcome comment as to whether my impression as a viewer of the video matches yours.

Sunday May 13, 2007
09:40 PM

New York City, 2007: Two signs of the times

  1. Sunday, May 14 (Mothers Day): 3 Mexican guys, dressed as mariachis, get on the Manhattan-bound Brighton line Q-train at Prospect Park, Brooklyn. After the doors close, they begin to sing and play instruments. The stretch until the next station at 7th Avenue is relatively long, so it's not uncommon for buskers to try to score some cash from a captive audience between those two stations. After a moment, the lead singer stops singing and, his sombrero extended in his right hand, begins to make his pitch for donations. He speaks exclusively in Spanish, content in the knowledge that, notwithstanding the fact that the neighborhoods through which the Brighton line passes are not particularly Hispanic, in 2007 enough people in a New York City subway car will understand what he's saying to enable him to earn his living without having to switch to English.
  2. First 230 years of U.S. history: Direction of flows in people and funds between Ireland and New York City was as follows:
    • People: From: Ireland; To:New York.
    • Funds: From: New York; To:Ireland.

    Winter 2007: Big ad campaign appears in New York City subways encouraging riders to apply for high-tech jobs in Ireland. (One member of Perl Seminar NY has already been hired to work for Google in Dublin.) New York Times reports that, with continuing decline of dollar versus euro, many Irish are buying condo apartments in Manhattan because in exchange-rate adjusted terms, they're cheaper than apartments in Dublin -- and you can rent them out for more than you could get in Dublin, as well.

Sunday November 19, 2006
10:34 AM

How Do You Cope with Anti-Perl FUD?

I've encountered a certain amount of anti-Perl FUD lately, and I'm wondering how other Perl hackers cope with it.

Last month I spoke at a local (non-Perl) users group. They needed a last-minute substitution for a speaker who couldn't make it, so I gave what was more or less the talk on maintenance of CPAN modules I gave at YAPC in June. There was a guy in the first row who was evidently out to bait me. His first question was, "I hear Perl is dead."

I cited the strength of this year's YAPC, the vitality of the Perl community, etc. Since I felt he was simply trolling, my response was brief so I could get on to a more on-topic question.

This week, fresh off the plane from the Chicago Perl hackathon the popping of my Parrot/Perl 6 cherry, I was coming out of the subway on my way to work when I ran into a fellow I've known for several years. He used to attend Perl Seminar NY fairly regularly. He spoke two or three times, always did good presentations and always impressed me with the breadth of his professional experience, with respect to languages, OSes and areas of focus.

So he says (I'm paraphrasing from memory), "At my shop (a medium-sized investment bank) the amount of Perl that people are writing is really going down. People are writing a lot of JRuby and JPython because the Java libraries have gotten so much better and Perl 6 hasn't come out."

I didn't want to get into an argument there, but I urged him to come back to perlsemny some time and share his experiences working in non-Perl environments. That night I formalized that a bit by inviting him to speak at perlsemny, but in my email I also noted the big upsurge in postings on jobs.perl.org and that the fact that Perl, at long last, had enable me to get an IT job.

I work at a Perl shop, so the amount of Perl being written there is in no danger of declining. But a lot of my colleagues, who are all Perl programmers but only a few of whom participate in the Perl community, are clearly skeptical that Perl 6 will be worth the wait for it. Since I have to agree that the wait has been, shall we say, protracted, I don't have much to say in response. (I guess my own response has been to finally find a niche of the Perl 6/Parrot project I can work on -- but that's not everybody's approach.)

I'm wondering how the rest of you cope with potentially FUD-dish attitudes toward Perl.

Thursday October 12, 2006
07:39 PM

Collective Hacking Projects: Let's Hear about Them!

In case you didn't see this Perlmonks meditation...

About two years ago this time I helped organize a Perl Seminar NY contingent of the Phalanx project. When I pitched the project to our members, I emphasized the joys of collective hacking. And it proved very enjoyable indeed (and profitable for the bar where we met to do this hacking!)

We didn't do as much collective hacking in the 2005-06 season, but with our 2006-07 Perl Seminar NY season about to begin, I'd like to rev up some interest among our members.

I know of some of the collective hacking projects going on in the Perl community right now, and I'll be participating in the Chicago Perl hackathon next month. But just in case I've missed any, I'd like to ask you to respond to this Meditation by posting ongoing projects (e.g., Vanilla Perl, Module::Build) and their weblinks.

And, for extra credit, if you think that any of these projects could be broken up into components suitable for face-to-face hacking by local Perlmonger groups, please so indicate.

I like online projects, but I don't like to hack or drink alone.

Thanks in advance.

Jim Keenan