Google Code-In brings fresh blood to the Perl and Parrot communities
Howdy, I'm excited to announce that Parrot Foundation and The Perl Foundation have been accepted as organizations in Google Code-In 2010! http://leto.net/perl/2010/11/parrot-foundation-the-perl-foundation-google-code-in.html If you know of a mailing list that you think would find this relevant or interesting information, please pass it on! PS: You can see a list of all 20 accepted organizations here: http://google-opensource.blogspot.com/2010/11/announcing-accepted-organizations-for.html Duke -- Jonathan Duke Leto jonat...@leto.net http://leto.net
Normal wait time for PAUSE ID's
Howdy, One of my ex-coworkers has some very nice code that he wants to put on CPAN. It has been over a week since he applied for his PAUSE ID (PVANDE). Is this normal? Does anybody know the appropriate person to poke? Duke -- Jonathan Duke Leto jonat...@leto.net http://leto.net
Re: Name space discussion Math::BestRotation
Howdy, [snip] 2) Math::GSL: At the beginning I intended to use Math::GSL as a back end for the matrix operations. However, I did not get it installed on my machine. The issue had already been reported. Now I am using Math::MatrixReal as back end which works fine. It is still possible to support Math::GSL as an alternative back end in the future. However, the algorithm only deals with 3x3 matrices. If performance is an issue I/O is likely to be the rate limiting step. I am the current maintainer of Math::MatrixReal and the author of Math::GSL, so please let me know if I can help you in regard to making your code play nice with those. Can I see your code? It would help to give you more constructive criticism. I believe that making your module interoperate nicely with prior art is at least, and probably more, important than changing the name. If you basically just have one function in your module, you may want to just integrate into Math::MatrixReal. Does your algorithm generalize to NxN matrices, or it is specific to 3-vectors? Thank you for your comments and best regards, Lutz Duke -- Jonathan Duke Leto jonat...@leto.net http://leto.net
Re: flame bait: execution speed Perl vs. C (Date::Calc::PP vs. Date::Calc::XS)
Howdy, I seem to recall that we have a pressing need for another perl5 VM to deliver on the promise of being able to run your perl5 code in perl6 programs. --Eric This is called Blizkost [0], a project stared by Jonathan Worthington [1], one of the core Rakudo developers. It allows Parrot to run Perl 5 code. Currently we need to get loading of XS from Perl 5 working on Blizkost, it is described in detail in the TODO [2]. If you get use Data::Dumper; working in Blizkost, I will buy you a beverage of your choice. Fork some repos and write some tests/code and docs, people! git clone git://github.com/jnthn/blizkost.git Duke [0] - http://github.com/jnthn/blizkost [1] - http://www.jnthn.net [2] - http://github.com/jnthn/blizkost/blob/master/TODO -- Jonathan Duke Leto jonat...@leto.net http://leto.net
Re: module name for test data?
Howdy, - audio::mpd::testdata? - audio::mpd::common::test? - data::audio::mpd? - data::audio::mpd::test? - test::audio::mpd? - is there a namespace for bulk data? test data? If your module is useful to others for testing mpd audio in general, then I would put it in the Test::Audio::MPD namespace. If you just want to silo your module-specific test data, then it should go in Audio::MPD::TestData or similar. Cheers, -- Jonathan Leto jonat...@leto.net http://leto.net
Fwd: Failed: PAUSE indexer report LETO/Net-Topsy-0.02.tar.gz
Howdy, It looks like the toolchain does not like the fact that I am using MooseX::Declare in my Net::Topsy module [0]. It also had a hard time figuring out my version number, until I hard-coded it in Build.PL . Currently, META.yml does not show any modules that are written in MooseX::Declare. Who is to blame/what to do now? Duke [0] - http://search.cpan.org/dist/Net-Topsy/ -- Forwarded message -- From: PAUSE upl...@pause.fiz-chemie.de Date: Fri, Sep 18, 2009 at 10:09 PM Subject: Failed: PAUSE indexer report LETO/Net-Topsy-0.02.tar.gz To: jonat...@leto.net, andreas.koenig.gmwojprw+pa...@franz.ak.mind.de The following report has been written by the PAUSE namespace indexer. Please contact modu...@perl.org if there are any open questions. Id User: LETO (Jonathan Leto) Distribution file: Net-Topsy-0.02.tar.gz Number of files: 20 *.pm files: 4 README: Net-Topsy-0.02/README META.yml: Net-Topsy-0.02/META.yml YAML-Parser: YAML::XS 0.32 META-driven index: yes Timestamp of file: Sat Sep 19 05:08:20 2009 UTC Time of this run: Sat Sep 19 05:09:53 2009 UTC Nothing in this distro has been indexed, because according to META.yml this package does not provide any modules. __END__ -- Jonathan Leto jonat...@leto.net http://leto.net
Re: Failed: PAUSE indexer report LETO/Net-Topsy-0.02.tar.gz
Howdy, Does anybody know the regex that PAUSE uses to find the package line? I am sure I can fake it out. Duke On Mon, Sep 21, 2009 at 3:34 PM, Fayland Lam fayl...@gmail.com wrote: put the package Net::Topsy; back for now, until PAUSE supports the syntax of MooseX::Declare Thanks On Tue, Sep 22, 2009 at 3:15 AM, Jonathan Leto jonat...@leto.net wrote: Howdy, It looks like the toolchain does not like the fact that I am using MooseX::Declare in my Net::Topsy module [0]. It also had a hard time figuring out my version number, until I hard-coded it in Build.PL . Currently, META.yml does not show any modules that are written in MooseX::Declare. Who is to blame/what to do now? Duke [0] - http://search.cpan.org/dist/Net-Topsy/ -- Forwarded message -- From: PAUSE upl...@pause.fiz-chemie.de Date: Fri, Sep 18, 2009 at 10:09 PM Subject: Failed: PAUSE indexer report LETO/Net-Topsy-0.02.tar.gz To: jonat...@leto.net, andreas.koenig.gmwojprw+pa...@franz.ak.mind.de The following report has been written by the PAUSE namespace indexer. Please contact modu...@perl.org if there are any open questions. Id User: LETO (Jonathan Leto) Distribution file: Net-Topsy-0.02.tar.gz Number of files: 20 *.pm files: 4 README: Net-Topsy-0.02/README META.yml: Net-Topsy-0.02/META.yml YAML-Parser: YAML::XS 0.32 META-driven index: yes Timestamp of file: Sat Sep 19 05:08:20 2009 UTC Time of this run: Sat Sep 19 05:09:53 2009 UTC Nothing in this distro has been indexed, because according to META.yml this package does not provide any modules. __END__ -- Jonathan Leto jonat...@leto.net http://leto.net -- Fayland Lam // http://www.fayland.org/ -- Jonathan Leto jonat...@leto.net http://leto.net
Re: BigInt / pack problems
Howdy, I am currently one of the maintainers of Math::BigInt, would you like to create a ticket at: http://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigInt and attach your perl -V, uname -a and gcc --version to it, as well as your code sample? Cheers, On Sat, Sep 5, 2009 at 11:40 AM, Shmuel Fombergsemu...@012.net.il wrote: Hi All. Can someone with tell me why this code: (you will need Perl 5.10 and 64 bit support and Math::BigIn installed) print unpack H*, pack Q, Math::BigInt-new(18446744073709551360); prints '' instead of 'ff00' that I expect it to? Thanks, Shmuel. -- Jonathan Leto jonat...@leto.net http://leto.net
Re: Which Parser Generator to Use?
Howdy, I haven't used it in production, but you might want to look at HOP::Parser as well: http://search.cpan.org/~ovid/HOP-Parser-0.02/ Cheers, On Sun, Sep 6, 2009 at 7:40 AM, Shlomi Fishshlo...@iglu.org.il wrote: Hi all! Which parser generator do you recommend to use for a Perl project. What I've looked at so far: 1. Berkeley Yacc for Perl - works pretty well, but is kinda limited. 2. Parse::RecDescent - very impressive feature set, but a little slow, and has been under-maintained (though it seemed to have improved slightly with several new releases in 2009). It also tends to be hard to debug its errors. 3. Parse::Yapp - http://search.cpan.org/dist/Parse-Yapp/ - I tried to use it in https://svn.berlios.de/svnroot/repos/web-cpan/Text-Qantor/ but it gives me an error for what appears to be a valid syntax, and for the life of me I cannot understand why it is. 4. There's a new version of GNU bison with support for multiple language backends. I tried writing a backend for Perl 5, but I gave up on the m4 hacking (I think that m4 must die!). 5. There's also ANTLR - http://www.antlr.org/ : http://www.antlr.org/wiki/display/ANTLR3/Code+Generation+Targets says: Perl - Early prototyping. Simple lexer is working. 6. Can I interact with the Parrot Grammar Engine (PGE)? Any input would be useful. -- I probably missed many others. Any recommendations would be appreciated. Regards, Shlomi Fish -- - Shlomi Fish http://www.shlomifish.org/ The Case for File Swapping - http://shlom.in/file-swap Chuck Norris read the entire English Wikipedia in 24 hours. Twice. -- Jonathan Leto jonat...@leto.net http://leto.net
Re: I'd like a way to abandon a module
Howdy, This does not solve the problem of there not being an abandoned flag on CPAN, but perhaps listing it on http://www.unmaintained-free-software.org/wiki/Main_Page would be a better interim solution that just ignoring it. Cheers, On Wed, Aug 12, 2009 at 5:39 AM, Andy Lestera...@petdance.com wrote: It would be swell if we could somehow note modules as being abandoned. For example, I'm a maintainer of WWW::Yahoo::Groups, because nobody took it from Iain Truskett. It doesn't install correctly because it's out of date and it's scraping Yahoo. Someone needs to update it if it's ever going to work again, but that's not going to be me. I am currently getting RT mail when people submit bugs, but I just delete them. It would be good if I didn't get the mail, and if people knew that there was no point in submitting bug reports anyway. This doesn't just apply to my case of having someone else's module. It makes sense for any module for which the maintainer no longer has any interest in keeping it up. xoxo, Andy -- Andy Lester = a...@petdance.com = www.theworkinggeek.com = AIM:petdance -- Jonathan Leto jonat...@leto.net http://leto.net
Re: Perl, BigInts/BigFloats and GMP
Howdy, To my extreme enjoyment, I found out that someone has already taken the burden of creating a full interface to the GMP integer functions in the form of Math::GMPz [1]. There is also Math::GMPf and Math::GMPq, in case you were wondering. Cheers, [1] http://search.cpan.org/dist/Math-GMPz/ On Fri, May 1, 2009 at 12:31 PM, Jonathan Leto jal...@gmail.com wrote: Howdy, I want to give Perl full access to the GMP library [1] and I am making that happen so that these routines can be used by Crypto::* and Math::* modules. The ultimate goal of this is so that the Crypt::* namespace will not depend on Math::Pari. The first step on this path is Math::Primality [2], which is involved in Google Summer of Code 2009 [3] and which will provide is_prime() and next_prime() functions for BigInts. These functions seem to be the main reason why so many crypto modules have no choice but to use Math::Pari. After is_prime() and next_prime() are implemented, many modules could in theory be ported over to Math::BigInt, but there are many routines which are currently not available from Perl in GMP that will speed up things considerably. I cannot quantify this right now, but I am willing to bet roughly an order of magnitude or two. Currently there is: Math::GMP - only a small subset of the GMP library to emulate Math::BigInt API Math::BigInt::GMP - A faster implementation of the small subset for the Math::BigInt API Math::GMP::SWIG [4] (unreleased) - A full interface to GMP via SWIG, which I was actively working on but then ran into odd memory corruption errors and has been on hold lately. My main questions to this list are: 1) Does anybody have suggestions for a name for the CPAN module which will provide the full interface to GMP? 2) What do people hate/love/want to see in the Math::BigInt API ? Currently I have been hacking in the functions that I needed into my fork of Math::BigInt::GMP on github [5], but some stuff has nothing to do with the BigInt API and just doesn't belong there. I talked to Tels (who maintains Math::BigInt and Math::BigInt::GMP) and he gave me co-maintainer status, as he said that he does not have time to maintain these modules. If any one has any other comments regarding what they would like to see in regard to scientific computing with Perl, I would love to hear it. Cheers, NOTE: Crypto modules only require BigInts, not BigFloats, so the first iteration of all this will most probably only implement the integer algorithms of GMP. [1] http://gmplib.org/ [2] http://github.com/leto/math--primality/tree/master [3] http://leto.net/dukeleto.pl/2009/04/google-announces-nine-students-in-gsoc2009-with-the-perl-fou.html [4] http://leto.net/gitweb/?p=Math-GMP-SWIG.git;a=summary [5] http://github.com/leto/math--bigint--gmp/tree/master -- Jonathan Leto jonat...@leto.net http://leto.net -- Jonathan Leto jonat...@leto.net http://leto.net
Re: Arguments checker module
Howdy, Thanks guys for sticking up for me. I am just old-fashioned, I guess; for better or for worse, I'm not interested in changing/fixing Perl itself, just in finding writing reusable code that meets my needs without adding stuff that doesn't. Wow, I was taken aback when I read not interested in changing/fixing Perl itself. Ever heard of technical debt? You can feel it every time you type my ($self) = @_. Also, Perl 5 doesn't have OO, it has blessed scalars. Just sayin' ;). If you want to maximize your code reuse, I suggest drinking the Moose Koolaid and learning about roles [1]. Chromatic has a pretty nice description [2] and hdp gave a nice description of them at a recent PDX.pm [3]. Cheers, [1] http://search.cpan.org/dist/Moose/lib/Moose/Role.pm [2] http://www.modernperlbooks.com/mt/2009/04/the-why-of-perl-roles.html [3] http://www.weftsoar.net/~hdp/talk/meta-moose/slides/start.html -- Jonathan Leto jonat...@leto.net http://leto.net
Re: Arguments checker module
Howdy, There are a couple of big problems with adopting Moose or one of the similar redesigns of Perl OO. You mean implementing OO in Perl, but I get it. 1. Not every module you're using will be Moose-based, so if you're working on one of those, you'll need to remember to switch back and forth. It's bad enough having both (Perl's approximation of) OO and procedural calls. From what I know (hdp would know much better), Moose can interact just fine with non-Moose modules. For instance, check out MooseX::NonMoose [1]. So, this is false. 2. If we bring someone new onto the team we'd have to train them not just in Perl, but in Moose as well. There are tons of books and online resources for Perl, but only Moose's own documentation for that. All the examples, code snippets, books, and howtos that people might want to use would have to be adapted to fit into a Moose framework. Huh? Moose is 50 times simpler to learn that Perl 5's hacktastic OO implementation. And they would have to write about 50 times less code. And hopefully you are hiring people that can learn new things. All you have to say is use Moose's features for creating/maintaining your objects, everything else is the same. 3. If I am going to change languages, I'd rather switch to Ruby or Python. Moose is still Perl 5! And it will help you transition to Perl 6, if you don't decide to switch to Ruby or Python. Cheers, [1] http://search.cpan.org/~doy/MooseX-NonMoose-0.02/lib/MooseX/NonMoose.pm -- Jonathan Leto jonat...@leto.net http://leto.net
Re: Puzzling error from cpan testers
Howdy, It may work, or it may not. If it works - in the sense of making the test failure go away - then I would expect it to bite someone later when they just happen to hit upon a number where the floating point rounding error goes the other way. Check that it's in an acceptable range. I heartily agree with this. Math::GSL has thousands of tests like this, which is why Math::GSL::Test has a number of easy-to-use functions to do this. Perhaps I should stringify and then re-numberify the value inside round() instead? I very much recommend that you look at is_similar() in Math::GSL::Test, it has implemented at least a few wheels that you are destined to want: is_similar($x,$y;$eps,$similarity_function) is_similar($x,$y); is_similar($x, $y, 1e-7); is_similar($x,$y, 1e-3, sub { ... } ); Return true if $x and $y are within $eps of each other, i.e. abs($x-$y) = $eps If passed a code reference $similarity_function, it will pass $x and $y as parameters to it and will check to see if $similarity_function-($x,$y_) = $eps The default value of $eps is 1e-8. Don't try sending anything to the Moon with this value... You can use the $similarity_function to implement relative error bounds and there is also a is_similar_relative() wrapper. All of these functions take array references of floating point values and map over them. The reason these methods are in Math::GSL::Test is because they also correctly handle GSL_NAN correctly, so you can ignore those bits. Cheers, -- Jonathan Leto jonat...@leto.net http://leto.net
Re: Puzzling error from cpan testers
Howdy, Yikes. You must have missed Test::Number::Delta when you were writing that. On CPAN since 2005. I originally called it Test::Float and got argued into a proper hierarchical name, which is probably why no one seems to know it exists. Synopsis: No, I saw your module, but I needed to correctly deal with 'NaN' in a portable way via gsl_nan(). I agree with you that you module *should* be used by a lot more people who just '==' doubles and hope for the best. Cheers, -- Jonathan Leto jonat...@leto.net http://leto.net
Perl, BigInts/BigFloats and GMP
Howdy, I want to give Perl full access to the GMP library [1] and I am making that happen so that these routines can be used by Crypto::* and Math::* modules. The ultimate goal of this is so that the Crypt::* namespace will not depend on Math::Pari. The first step on this path is Math::Primality [2], which is involved in Google Summer of Code 2009 [3] and which will provide is_prime() and next_prime() functions for BigInts. These functions seem to be the main reason why so many crypto modules have no choice but to use Math::Pari. After is_prime() and next_prime() are implemented, many modules could in theory be ported over to Math::BigInt, but there are many routines which are currently not available from Perl in GMP that will speed up things considerably. I cannot quantify this right now, but I am willing to bet roughly an order of magnitude or two. Currently there is: Math::GMP - only a small subset of the GMP library to emulate Math::BigInt API Math::BigInt::GMP - A faster implementation of the small subset for the Math::BigInt API Math::GMP::SWIG [4] (unreleased) - A full interface to GMP via SWIG, which I was actively working on but then ran into odd memory corruption errors and has been on hold lately. My main questions to this list are: 1) Does anybody have suggestions for a name for the CPAN module which will provide the full interface to GMP? 2) What do people hate/love/want to see in the Math::BigInt API ? Currently I have been hacking in the functions that I needed into my fork of Math::BigInt::GMP on github [5], but some stuff has nothing to do with the BigInt API and just doesn't belong there. I talked to Tels (who maintains Math::BigInt and Math::BigInt::GMP) and he gave me co-maintainer status, as he said that he does not have time to maintain these modules. If any one has any other comments regarding what they would like to see in regard to scientific computing with Perl, I would love to hear it. Cheers, NOTE: Crypto modules only require BigInts, not BigFloats, so the first iteration of all this will most probably only implement the integer algorithms of GMP. [1] http://gmplib.org/ [2] http://github.com/leto/math--primality/tree/master [3] http://leto.net/dukeleto.pl/2009/04/google-announces-nine-students-in-gsoc2009-with-the-perl-fou.html [4] http://leto.net/gitweb/?p=Math-GMP-SWIG.git;a=summary [5] http://github.com/leto/math--bigint--gmp/tree/master -- Jonathan Leto jonat...@leto.net http://leto.net
Google Announces Nine Students in GSoC2009 with The Perl Foundation
Howdy, I have the extreme pleasure to announce that the Google Summer of Code 2009 has officially started and The Perl Foundation will be mentoring 9 students this year in a variety of projects. A breakdown of each student project and mentor with links to the project abstract can be found at [1]. If you would like to keep up with recent updates, then subscribe to this RSS feed [2]. If you would like to get a little more involved, come join us in #soc-help on irc.perl.org or join the tpf-gsoc-students list [3]. [1] http://leto.net/dukeleto.pl/2009/04/google-announces-nine-students-in-gsoc2009-with-the-perl-fou.html [2] http://leto.net/dukeleto.pl/atom.xml [3] http://groups.google.com/group/tpf-gsoc-students Thanks to everyone involved, including students with projects that were not accepted. We had a limited number of spots and some very good applications could not be accepted. With a bit more spit and polish some would be a great fit for a TPF grant. Thank you to *everyone* who applied, and if you did not get accepted this year, you can still implement your project and become part of the community, without getting paid. I promise, we don't bite. Stay tuned for further updates. Cheers, -- Jonathan Leto jonat...@leto.net http://leto.net
Introducing Math::GSL 0.12 and some questions/rants
Howdy folks, I have been lurking here for quite a while and I figured it was time that I ask some questions that have been bouncing around my head. This summer I had the pleasure of being part of the Google Summer of Code, working under the umbrella of The Perl Foundation on Math::GSL, a Perl interface to the GNU Scientific Library (which is written in C). The XS binding are generated via SWIG, and integrating this into the build process of Module::Build was complicated and error prone. And I still have all kinds of platform-dependent code to generate the correct linker flags in my Build.PL . What are peoples thoughts on making the addition of build elements to Module::Build (possibly via plugins) as painless as possible? I have been in communication with Eric Wilhelm and will try to devote some time in the near future to make SWIGifying a CPAN module not so damn complicated. I recently gave a talk at the Advanced Topics Portland LUG about using SWIG in a CPAN module, slides are available here: http://leto.net/gitweb/?p=presentations.git;a=blob_plain;f=CreatingCPANModulesWithSWIG/pres.pdf;hb=HEAD As for Math::GSL, it is a smorgasbord of scientific-computing-related functions, so there should be something for everyone. The newest version (0.12) was uploaded to CPAN minutes ago and should be filtering its way to a mirror near you. There are over 60 different random number generators, vectors, matrices, BLAS, a 2x faster sort routine as well as specialty sort routines, numerical integration and differentiation, histograms, over 500 special functions/statistics distributions, Fast Fourier transform, the list goes on For those of you that rely on PDL or Cephes for functionality, this is a new option. If you use Math::MatrixReal and are needing more speed, Math::GSL::Matrix may be something to look at. Also, Math::GSL now compiles on Mac OSX, Linux/BSD and Windows/Cygwin. If there are any more questions about how you can benefit from Math::GSL, please do not hesitate to ask. Also, if you try Math::GSL and goes boom, please send a bug report to me personally or via RT. Thanks! Cheers, PS: Useful links Math::GSL blog: http://leto.net/code/Math-GSL/ Google group: http://groups.google.com/group/math-gsl-dev My gitweb: http://leto.net/gitweb/ -- [-] Jonathan Leto [EMAIL PROTECTED]