Well today I am going to give the quick one-two to Toby's little creation called 'Dist::Inkt' or as the subtitle calles it Yet Another distribution builder why he didn't call it YADB I will never know but that was for hit to decided.
So a usual these days I had a quick look at the compatibility matrix on CPAN Testers and it seems to be windows friendly and the dependency list is not too bad and it seem to install ok after the usual huff and puffing on by drive.
Now the documentation is very extensive and there are plenty of very good examples and at least one profile example. So that is great what is not great is this is not the program I am looking for as all it does is create a manifest and generate a tar ball.
So like Dist::Maker from the my last post I can rule this one out for my current use.
It's quite a common pattern in object-oriented programming to have an attribute which takes a string as its value, but which only has a small number of valid values. For example:
packageShirt;useMoose; # "S", "M", "L", or "XL"
hassize=>(is=>'ro',isa=>'Str',required=>1);
This offers no protection against invalid string values.
# No exception is thrown
my$shirt=Shirt->new(size=>"LX");
Liz and I were awarded the White Camel Award last year and are very proud of that. Thank you all. Too much honor, and I feel a bit silly now. No modules on CPAN, not a member of any Perl-organisation, not a single line of code written in the past 9 years, and mainly being silly and loud.
Liz and I went on doing what we like best. Go to Perl-events.
Well looking at my next victim on the list and so I was going to have a look at Dist::Maker. Well sorry to say this one seems out of the running very early on. As from what I have discovered on its documentation it is really is just for creating distributions from scratch. Pity as I already have most of my dist done so I will just play that I haven't done that part yet and see what I come up with
Well it did install smoothly even though I used a new clean version of Perl it only took a few mins compared to the over 45 for Dist::Zilla on a box that had a good number of prerequisites to begin with.
The Mod itself is sparsely documented but then again it is very simple stuff so that is not too many points off, One thing I did like where the examples that are included as they helped out some what.
I'm particularly proud of the Dutch Perl Workshop site, as Theo emailed me just before the event and asked whether it would be possible to have a survey. Within 24 hours, we'd set up the site, and emailed out the first survey links. It's the quickest turn around I've done, and gives me confidence the backend code is as stable as it needs to be for a release.
As such, I'm in the process of tidying up some of the package files, and will be releasing the base site to CPAN soon. I also aim to write a more generic survey creation tool, so that if anyone asks in the future, it will only take an hour or two to set up a site. and get it going.
The hard part is actually finding time afterward to make sure all the text is okay, and no inappropriate comments are made. Thankfully, that is increasing unnecessary, so with the forthcoming YAPCs (NA and Europe), I'm hoping to be able to just press the button and run the scripts to send the emails and create the survey pages.
After a few months break, I checked how many CPAN modules provide link to their version control system, how many provide a license in their META file, and how many adhere to the Changes spce.
So in my last post I had started to play about with Dist::Zilla and my initial playing about I was very pleased at what it gave me. Now I did have a few thinks to clean up, some test roles that where throwing some sort of warning when they should not and where I was building the Mod was 100% right.
So the first the extra roles
Warning: prerequisite test_role1 0 not found.
Warning: prerequisite test_role2 0 not found.
Warning: prerequisite test_role3 0 not found.
So having a look at 'Dist::Zilla::Plugin::AutoPrereqs' I see there is a 'skip' attribute for it (with with Dist::Zilla plugins there are custom param you can pass to them from the .ini file.
So all I need is add a quick regex like this to the ini file
[AutoPrereqs]
skip = test_role\d
Here are some introspection routines in Devel::Trepan. I’m not aware that these exist in other debuggers, nor as Devel::REPL plugins. But if I’m wrong feel free to correct me in comments. And feel free to take code from Devel::Trepan to rework elsewhere.
Recently Jeffrey Ryan Thalhammer asked about variable, and subroutine completion and this got me thinking.
Info functions and Info packages
When he asked, there was a debugger command info functions which listed functions matching some regular expression. (There is also a gdb command of the same name.) That command accepted both fully-qualified and unqualified function names.
It occurred to me that I could also add an adjunct to that command, info packages. This command takes the data used in info functions, but it reindexes the fully-qualified function names keyed by package.
Today I saw a post by sartak mentioning a feature I didn't know: while () { ... } is legal and acts as an infinite loop.. This is awesome! I occasionally have need for a while(true) loop, and I like while() better than while(1).
But I couldn't stop there, I had to find out why, and if it's a feature I can count on.
(If you think you'll go cross-eyed looking at parsing details, please still check out the commit message I found at the end, it's a neat bit of history).
Well starting today to look at Dist::Zilla and as I develop mostly on a Winders box (yes I know I a not a real Perl programmer) I had a look at the Testing Matrix to make sure I can use it and I can. So step two was a doing the install and it does have quite the dependency list and my Perl is quite sparse in terms of installations so it took a good half-hour to install all the needed modules and this is my new super fast 64k super gaming lap top so I would think it is a little slow but it does go in
Now looking at the POD it is very well documented and and it even has its own web site which is quite well laid out and easy toe use.
On the main page of Gittip 6 out of the 12 top givers are companies supporting open source. On the main Perl community Page there is no company, and on the extended version of the Perl community Gittip page there is only a single company: Nestoria (currently at position 33-37, giving $1) out of the 42 givers.
I wonder when will companies relying on Perl, come to the conclusion that this is a good and very cheap(!) way to show their support to the Perl community, and probably make it easier for them to hire good developers.
Maybe managers in your company need to be made aware of Gittip and the Perl community there.
Why is this cool? Because this is going to be a regular feature and they're going to start donating a $1 a week (via gittip) to the author or a prime contributor of whatever project they've selected. I would love to see companies financially backing open source products they benefit from. I see plenty of companies are signing up for gittip for this very purpose.
To Nestoria: many kudos for finding yet another way to give back (they also sponsor Perl events and release open source code).
To everyone else: go sign up for your gittip account if you haven't already.
And ask your company to think about gittip and maybe giving back to those who've helped them. I suspect many companies wouldn't find $1 a week to be a burden, though they can certainly pay more if they wish.
Hey guess what no tests today and really not much of a blog either.
I and now moving into actually creating a distribution for this little mod of mine now that I have all the code written and all the tests done, though I really should do the POD next I am going to step out of order a little and look at different ways to create a distrabution
Well the reason why I am doing this is that I have only ever done it the craftsman way. Or in other words by hand and hope for the best.
So I have been shopping about looking for something that will help me out. Well went to META::CPAN and just entered 'dist' in the search box and hit enter. Well got over 1000 hits. So this is a subject that has a good deal of potential or perhaps it just something that every programmer likes to do her own way.
Perl, I like you just the way you are. There's been some interesting features and fancy OO modules in the last ten years, but my code is still 5.6.0...
Recently one of our readers checked if Tie::ExtraHash was installed on his system running perl 5.18.0.
He used perl -MTie::ExtraHash -e1 but it said the module was not installed. So he wanted to install it from CPAN, which then offered to upgrade perl to perl-5.18.2.
It turns out Tie::ExtraHash is declared in the pm file of Tie::Hash and you should not use it on its own.
That set aside, wouldn't it be better if all the packages, at least in the Perl core, had their
own pm file with their own version number?