Kon-Tiki Skull by Marcus Ramberg, originally uploaded by %2.
Took this while I was guide in Oslo for Jonas and Thomas from Metaquark. Metaquark is the label that created Appfresh.
Kon-Tiki Skull by Marcus Ramberg, originally uploaded by %2.
Took this while I was guide in Oslo for Jonas and Thomas from Metaquark. Metaquark is the label that created Appfresh.
Jess Robinson writes:
Having been annoyed enough by this sort of POD wrangling already, theorbtwo came up with Pod::Inherit to help the module writers improve their documentation. Run it with the name of a class or the lib directory for your distribution, every class is investigated to determine which methods it contains, the inheritance tree is then searched to determine which base class actually defines that method.
I think this is pretty awesome. Thanks to multiple inheritance, mixins, and most recently Moose roles, finding out what methods a given Class provides can sometimes be quite tricky. Pod::Inherit seems to solve that problem nicely. Hopefully it will get widely adopted.
A few week back, I commented some concerns about git causing silos. I think this is a really good post by chris from github, illustrating the advantages of fully distributed development:
It may seem strange, and perhaps even like a lot of work. “Why should I have to check to see which is the most current? In the old model, there’s always a canonical repository.”
In the old model, actionwebservice wouldn’t have made it past 1.2.6. Welcome to distributed version control.
After MojoMojo, the CMSish Wiki software that powers dev.catalyst.perl.org was featured prominently in the CPANTS Heavy 100, there was some concern about how much time was required to install it. However, thanks to the illustrious dane Lars Balker Rasmussen, FreeBSD guys now have it easy. He’s fought through our entire dependency list, and uploaded p5-MojoMojo to the FreeBSD ports tree. Hopefully Debian packages won’t be far behind.
(In the interest of full disclosure, I am the founder of the MojoMojo project. To contact us, you can use our mailing list, or come by the IRC channe)
While grown-up languages like Java has mechanisms to let you throw Exception objects, and to catch them in different places and do interesting things with them, most Perl code just dies with a error message of some sort (If you’re lucky, it’s even helpful, and reporting the mistake you did inside your own code, rather than going belly up inside the module itself.
This is usually good enough for most people. Using a block eval, you can catch the error and deal with it, even doing a regular expression against it to handle different errors. Still, some people have been writing CPAN modules to add this functionality to the language. Unfortunately, up until now these attempts has mostly fallen into two categories; ‘cludgy addon’, and ‘source filter powered’.
With some determination, and thanks to recent industrial power tools like Variable::Magic and B::Hooks::EndOfScope Ash Berlin has been able to put together a first class try / catch mechanism without using source filters. Check out the TryCatch synopsis from CPAN:
sub foo {
try {
die SomeClass->new(code=>404) if $notfound;
return "return value from foo";
}
catch (Some::Class $e where { $_->code > 100 } ) {
}
}
As you see, you can specify types of objects to handle, and this mechanism supports receiving Moose type constraints, including complex MooseX::Types constructs like ‘Dict[code => Int]'. It's also quite useful that you can return out of the function from inside a try block, unlike an eval, with just returns from the eval block.
If you want to try it yourself, just do $ cpan TryCatch and start playing. The docs are a bit sparse at the moment, but it's easy enough to figure out. Expect the docs to be improved quite soon.
I believe modules like this and MooseX::Declare represent a new trend in Perl 5, where CPAN authors extend the syntax of Perl itself using Perl. It'll be interesting to see what turns up in this space in the coming months. I found Ricardo's musings on the subject to be of particular interest.
By Andy Mangold. Daddy, please make me one like that. And get me a pony while you’re at it?
Chris has a interesting analysis of a recent move by Facebook to support username urls:
Arrington has a post that claims that “Facebook is getting wise to something MySpace has known from the start – users love vanity URLs.”
I don’t buy it. In fact, I’m pretty sure that the omission of vanity URLs on Facebook is an intentional design decision from the beginning, and one that I’ve learned to appreciate over time.
I think this change is another result of Facebook’s apparent fear and envy of twitter’s recent popularity. However, I believe they fullfill different social functions, and that Facebook’s attempts at competing in Twitter’s function only weakens it’s existing position.
Here’s another one of the talks from Nordic Perl Workshop 2006 that we’re uploading as a promotion of Nordic Perl Workshop 2009. The conference is being held in Oslo again this year, April 16-17. I personally loved this talk by Michael Schwern, and it’s not one that gets dated easily, so enjoy.
Think remote branch management is a hassle with git? This nice ruby-based helper should sort you out:
$ sudo gem install git_remote_branch ... $ grb
To get a quick explanation of how it works. Or read on at Git Ready
Go check out their screencast. I think $79 is a bit pricey for what it is tho.
Copyright © marcus ramberg
nordaaker
Built on Notes Blog Core
Powered by WordPress