From gwadej at anomaly.org Wed Dec 2 17:58:39 2009 From: gwadej at anomaly.org (G. Wade Johnson) Date: Wed, 2 Dec 2009 19:58:39 -0600 Subject: [pm-h] Fw: UG News: 45% off Ebook Purchases from O'Reilly Message-ID: <20091202195839.2faf2a00@sovvan> Begin forwarded message: Date: Wed, 2 Dec 2009 16:14:29 -0800 From: Marsee Henon To: gwadej at anomaly.org Subject: UG News: 45% off Ebook Purchases from O'Reilly View this information as HTML in your browser, click here: http://post.oreilly.com/rd/9z1zc61ap5jutab0j3r649cklq9bv2tgo03n5p6e9jg Hi Can you pass along the following limited time discount to your members? Special offer for O'Reilly User Group program members: Along with your 35% discount off print books, you can now get *45% off all ebooks* you purchase direct from oreilly.com for a limited time. When you buy an O'Reilly ebook you get lifetime access to the book, and whenever possible we make it available to you in four, DRM-free file formats--PDF, .epub, Kindle-compatible .mobi, and Android ebook--that you can use on the devices of your choice. Our ebook files are fully searchable, and you can cut-and-paste and print them. We also alert you when we've updated the files with corrections and additions. Just use code DSUG when ordering online at http://post.oreilly.com/rd/9z1zrnnuut6ovochittes6pmpfre3bi1jaa13f7ofg8 Read more about our ebook formats and the ways to use them here: http://post.oreilly.com/rd/9z1zsodue4t2otruhpr9cvhm487ipvftbuge425h2io Until next time-- Marsee Henon Forward this announcement - http://post.oreilly.com/f2f/9z1z5cssebdfdtjbngul90ks48urrct20n22fnfkh58 ================================================================ O'Reilly 1005 Gravenstein Highway North Sebastopol, CA 95472 800-998-9938 http://post.oreilly.com/rd/9z1zolvcmqjt4sjusf4597o7ejqjkd8k20r7b3jr7bo Follow us on Twitter at: http://post.oreilly.com/rd/9z1zpoc519qqvla03upb2mae2sl0idie6sq4344mhi8 You are receiving this email because you are a User Group contact with O'Reilly Media. If you would like to stop receiving these newsletters or announcements from O'Reilly, send an email to marsee at oreilly.com ================================================================ If gwadej at anomaly.org should not be subscribed or if you need to change your subscription information for O'Reilly Media Inc., please use this preferences page: http://post.oreilly.com/prefs/9z1zef85ps4riehstbealj65pas0pdpdo27iloo4igg -- Perl's payment curve coincides with its learning curve. -- GrandFather -------------- next part -------------- An HTML attachment was scrubbed... URL: From gwadej at anomaly.org Mon Dec 7 16:01:41 2009 From: gwadej at anomaly.org (G. Wade Johnson) Date: Mon, 7 Dec 2009 18:01:41 -0600 Subject: [pm-h] December Social Meeting Message-ID: <20091207180141.616ded5b@sovvan> This is just a quick reminder about our social meeting tomorrow night starting after 6pm at the Fuddruckers on 59 near Wesleyan (3929 Southwest Fwy). As before, I will try to get one of the tables in the back (right side as you enter). Look for the YAPC::NA 2007 t-shirt and/or the Houston Perl Meetup sign. Looking forward to seeing you there. G. Wade -- Those who live by the sword get shot by those who don't. From will.willis at gmail.com Wed Dec 16 22:47:39 2009 From: will.willis at gmail.com (Will Willis) Date: Thu, 17 Dec 2009 00:47:39 -0600 Subject: [pm-h] TMTOWTD Makefile.PL Message-ID: <6ee1e6090912162247u6ef97cd9wfa52cfd2011eb88d@mail.gmail.com> I'm writing a module. I've written plenty before, tests and all.. but only recently have I started paying attention to Makefile.PL as I consider uploading to the CPAN. While going through a Catalyst book I got some experience with the inc::Module::Install convention. I'm using module-starter to create skeleton modules, which by default uses the ExtUtils::MakeMaker approach to the Makefile.PL My main point of concern is getting the module dependency list included with my distribution, inc::Module::Install's approach is very straight forward, using the requires subroutine. MakeMaker's appears to go into the PREREQ_PM hash ref. So as I feel my way through the path of module authoring I've come up with a few questions (and I'm sure more will follow): 1) Is my understanding of how dependencies are defined with these 2 modules mentioned above correct? 2) What are the pros/cons of using one module over the other? 3) Is Build.Pl and Module::Build yet another way to accomplish the same task? I see that some people (on this list) provide both a Build.PL and Makefile.PL with their packages. Why? 4) It appears that the Makefile.PL serves a few purposes like providing meta data and dependencies. What else should I be aware of? 5) regarding MakeMaker, I see some useful meta data in META_MERGE->{resources}, where exactly does that info get used? 6) I remember once scanning an electronic copy of "Writing Perl Modules for CPAN" many moons ago... the book is now ~7 years old. Are there other up-to-date resources out there for writing and deploying modules to CPAN? Or is this book still relevant? Thanks in advance!! -Will -------------- next part -------------- An HTML attachment was scrubbed... URL: From gwadej at anomaly.org Thu Dec 17 05:32:33 2009 From: gwadej at anomaly.org (G. Wade Johnson) Date: Thu, 17 Dec 2009 07:32:33 -0600 Subject: [pm-h] TMTOWTD Makefile.PL In-Reply-To: <6ee1e6090912162247u6ef97cd9wfa52cfd2011eb88d@mail.gmail.com> References: <6ee1e6090912162247u6ef97cd9wfa52cfd2011eb88d@mail.gmail.com> Message-ID: <20091217073233.54b6ac54@sovvan> On Thu, 17 Dec 2009 00:47:39 -0600 Will Willis wrote: > I'm writing a module. I've written plenty before, tests and all.. but > only recently have I started paying attention to Makefile.PL as I > consider uploading to the CPAN. > > While going through a Catalyst book I got some experience with the > inc::Module::Install convention. I'm using module-starter to create > skeleton modules, which by default uses the ExtUtils::MakeMaker > approach to the Makefile.PL > > My main point of concern is getting the module dependency list > included with my distribution, inc::Module::Install's approach is very > straight forward, using the requires subroutine. MakeMaker's appears > to go into the PREREQ_PM hash ref. > > So as I feel my way through the path of module authoring I've come up > with a few questions (and I'm sure more will follow): I'm certainly no expert, but here's the little that I know. > > 1) Is my understanding of how dependencies are defined with these 2 > modules mentioned above correct? You are correct as far as MakeMaker's approach. I don't know much about Module::Install, I've only begun looking at it recently. > 2) What are the pros/cons of using one module over the other? The author of MakeMaker (Schwern) is trying to convince people to stop using it. As I understand it, one of the big benefits of Module::Install is that the installer comes bundled with your module. This has been a major difficulty with getting Module::Build out there. Almost everyone already has MakeMaker. > 3) Is Build.Pl and Module::Build yet another way to accomplish the > same task? I see that some people (on this list) provide both a > Build.PL and Makefile.PL with their packages. Why? Build.PL uses Module::Build. It was supposed to replace MakeMaker and life was going to be good. (No more reliance on make). Unfortunately, there was a bit of "chicken and egg" problem, since many people did not have Module::Build installed. MakeMaker is part of the core, so you could always depend on it. I get both nowadays from using Module::Starter to create my modules. > 4) It appears that the Makefile.PL serves a few purposes like > providing meta data and dependencies. What else should I be aware of? That's basically it. MakeMaker uses the data from Makefile.PL to create an appropriate Makefile. That's where all the fun is. > 5) regarding MakeMaker, I see some useful meta data in > META_MERGE->{resources}, where exactly does that info get used? I don't know this one. > 6) I remember once scanning an electronic copy of "Writing Perl > Modules for CPAN" many moons ago... the book is now ~7 years old. Are > there other up-to-date resources out there for writing and deploying > modules to CPAN? Or is this book still relevant? I vaguely recall some good information in "Perl Best Practices", but that might be faulty memory. I also fine-tuned my module creation practices from some documentation around Module::Starter. G. Wade -- More good code has been written in languages denounced as "bad" than in languages proclaimed "wonderful" -- much more. -- Bjarne Stroustrup, "The Design and Evolution of C++" From toddr at cpanel.net Thu Dec 17 08:55:55 2009 From: toddr at cpanel.net (Todd Rinaldo) Date: Thu, 17 Dec 2009 10:55:55 -0600 Subject: [pm-h] TMTOWTD Makefile.PL In-Reply-To: <20091217073233.54b6ac54@sovvan> References: <6ee1e6090912162247u6ef97cd9wfa52cfd2011eb88d@mail.gmail.com> <20091217073233.54b6ac54@sovvan> Message-ID: On Dec 17, 2009, at 7:32 AM, G. Wade Johnson wrote: > On Thu, 17 Dec 2009 00:47:39 -0600 > Will Willis wrote: > >> I'm writing a module. I've written plenty before, tests and all.. but >> only recently have I started paying attention to Makefile.PL as I >> consider uploading to the CPAN. >> >> While going through a Catalyst book I got some experience with the >> inc::Module::Install convention. I'm using module-starter to create >> skeleton modules, which by default uses the ExtUtils::MakeMaker >> approach to the Makefile.PL >> >> My main point of concern is getting the module dependency list >> included with my distribution, inc::Module::Install's approach is very >> straight forward, using the requires subroutine. MakeMaker's appears >> to go into the PREREQ_PM hash ref. >> >> So as I feel my way through the path of module authoring I've come up >> with a few questions (and I'm sure more will follow): > > I'm certainly no expert, but here's the little that I know. > >> 2) What are the pros/cons of using one module over the other? > > The author of MakeMaker (Schwern) is trying to convince people to stop > using it. As I understand it, one of the big benefits of > Module::Install is that the installer comes bundled with your module. > > This has been a major difficulty with getting Module::Build out there. > Almost everyone already has MakeMaker. > I saw schwern re-give this presentation this year. It's amusing after you've struggled with the module a while: http://schwern.dreamhosters.com/talks/MakeMaker_Is_DOOMED/ If you're going with Makefile.PL and you want to max out your makefile, you might use mine as an example. I had to hunt through the specs for meta.yaml to get it like this. It's less than well documented: http://cpansearch.perl.org/src/TODDR/Net-Jabber-Bot-2.1.5/Makefile.PL The sections I found useful but hard to find documentation on were: 1. build_requires - modules only required for build 2. resources - allows you to re-direct people to other repos for bugtracking, mailing list, homepage, etc. 3. recommends - It's been a while, but I think this will encourage the interactive CPAN installer to install these also before build. -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.willis at gmail.com Thu Dec 17 19:24:51 2009 From: will.willis at gmail.com (Will Willis) Date: Thu, 17 Dec 2009 21:24:51 -0600 Subject: [pm-h] TMTOWTD Makefile.PL In-Reply-To: References: <6ee1e6090912162247u6ef97cd9wfa52cfd2011eb88d@mail.gmail.com> <20091217073233.54b6ac54@sovvan> Message-ID: <6ee1e6090912171924m61cb9907je6e9b442eb3937b7@mail.gmail.com> Thanks Todd and Wade for the feedback!! -Will On Thu, Dec 17, 2009 at 10:55 AM, Todd Rinaldo wrote: > > On Dec 17, 2009, at 7:32 AM, G. Wade Johnson wrote: > > On Thu, 17 Dec 2009 00:47:39 -0600 > Will Willis wrote: > > I'm writing a module. I've written plenty before, tests and all.. but > > only recently have I started paying attention to Makefile.PL as I > > consider uploading to the CPAN. > > > While going through a Catalyst book I got some experience with the > > inc::Module::Install convention. I'm using module-starter to create > > skeleton modules, which by default uses the ExtUtils::MakeMaker > > approach to the Makefile.PL > > > My main point of concern is getting the module dependency list > > included with my distribution, inc::Module::Install's approach is very > > straight forward, using the requires subroutine. MakeMaker's appears > > to go into the PREREQ_PM hash ref. > > > So as I feel my way through the path of module authoring I've come up > > with a few questions (and I'm sure more will follow): > > > I'm certainly no expert, but here's the little that I know. > > 2) What are the pros/cons of using one module over the other? > > > The author of MakeMaker (Schwern) is trying to convince people to stop > using it. As I understand it, one of the big benefits of > Module::Install is that the installer comes bundled with your module. > > This has been a major difficulty with getting Module::Build out there. > Almost everyone already has MakeMaker. > > I saw schwern re-give this presentation this year. It's amusing after > you've struggled with the module a while: > http://schwern.dreamhosters.com/talks/MakeMaker_Is_DOOMED/ > > If you're going with Makefile.PL and you want to max out your makefile, > you might use mine as an example. I had to hunt through the specs for > meta.yaml to get it like this. It's less than well documented: > > http://cpansearch.perl.org/src/TODDR/Net-Jabber-Bot-2.1.5/Makefile.PL > > The sections I found useful but hard to find documentation on were: > 1. build_requires - modules only required for build > 2. resources - allows you to re-direct people to other repos for > bugtracking, mailing list, homepage, etc. > 3. recommends - It's been a while, but I think this will encourage the > interactive CPAN installer to install these also before build. > > > > > > > _______________________________________________ > Houston mailing list > Houston at pm.org > http://mail.pm.org/mailman/listinfo/houston > Website: http://houston.pm.org/ > -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.willis at gmail.com Sat Dec 19 13:25:03 2009 From: will.willis at gmail.com (Will Willis) Date: Sat, 19 Dec 2009 15:25:03 -0600 Subject: [pm-h] Moose question Message-ID: <6ee1e6090912191325i4ff33682t4837590dba5e1609@mail.gmail.com> I'm using Moose to write a package that, among other things, connects to the internet to fetch some content. The way I have my object designed is that want one of the attributes to contain a reference to a WWW::Mechanize object. ----the code--- #!/usr/bin/perl use strict; use Website; my $web = Website->new(name => 'Google', url => 'http://www.google.com/'); print "My Website's name is " . $web->name . "\n"; print $web->get_content(); ----the class--- package Website; use Moose; use WWW::Mechanize; has '_mech' => ( is => 'rw' ); has 'name' => ( is => 'rw', isa => 'Str', required => 1); has 'url' => (is => 'rw', isa => 'Str', required => 1); sub get_content { my $self = shift; $self->_mech = WWW::Mechanize->new(); $self->_mech->get($self->url); return $self->_mech->content; } 1; --- /end code -- That's not working , I get the following output/error: My Website's name is Google Can't modify non-lvalue subroutine call at Website.pm line 11. Do I need to make the '_mech' attribute be a (isa) WWW::Mechanize object to achieve this? I have no intention of exposing any of WWW::Mechanize's functionality to the outside. I'm probably missing a small detail. Any help would be appreciated. -Will -------------- next part -------------- An HTML attachment was scrubbed... URL: From robo4288 at gmail.com Sat Dec 19 19:15:11 2009 From: robo4288 at gmail.com (Robert Boone) Date: Sat, 19 Dec 2009 21:15:11 -0600 Subject: [pm-h] Moose question In-Reply-To: <6ee1e6090912191325i4ff33682t4837590dba5e1609@mail.gmail.com> References: <6ee1e6090912191325i4ff33682t4837590dba5e1609@mail.gmail.com> Message-ID: <435624390912191915x582adf93w88e1940d3d1a9a32@mail.gmail.com> You can change the line to: $self->{_mech} = WWW::Mechanize->new(); of $self->_mech(WWW::Mechanize->new()); On Sat, Dec 19, 2009 at 3:25 PM, Will Willis wrote: > I'm using Moose to write a package that, among other things, connects to the > internet to fetch some content. > The way I have my object designed is that want one of the attributes to > contain a reference to a WWW::Mechanize object. > ----the code--- > #!/usr/bin/perl > use strict; > use Website; > my $web = Website->new(name => 'Google', url => 'http://www.google.com/'); > print "My Website's name is " . $web->name . "\n"; > print $web->get_content(); > > ----the class--- > package Website; > use Moose; > use WWW::Mechanize; > has '_mech' => ( is => 'rw' ); > has 'name' ?=> ( is => 'rw', isa => 'Str', required => 1); > has 'url' ? => (is => 'rw', isa => 'Str', required => 1); > sub get_content { > ?? ?my $self = shift; > ?? ?$self->_mech = WWW::Mechanize->new(); > ?? ?$self->_mech->get($self->url); > ?? ?return $self->_mech->content; > } > 1; > --- /end code -- > That's not working , I get the following output/error: > My Website's name is Google > Can't modify non-lvalue subroutine call at Website.pm line 11. > Do I need to make the '_mech' attribute be a (isa) WWW::Mechanize?object?to > achieve this? I have no intention of exposing any of WWW::Mechanize's > functionality to the outside. I'm?probably?missing a small detail. Any help > would be appreciated. > > -Will > _______________________________________________ > Houston mailing list > Houston at pm.org > http://mail.pm.org/mailman/listinfo/houston > Website: http://houston.pm.org/ > From will.willis at gmail.com Sun Dec 20 04:01:52 2009 From: will.willis at gmail.com (Will Willis) Date: Sun, 20 Dec 2009 06:01:52 -0600 Subject: [pm-h] Moose question In-Reply-To: <435624390912191915x582adf93w88e1940d3d1a9a32@mail.gmail.com> References: <6ee1e6090912191325i4ff33682t4837590dba5e1609@mail.gmail.com> <435624390912191915x582adf93w88e1940d3d1a9a32@mail.gmail.com> Message-ID: <6ee1e6090912200401n3d3f3c81s114fd3df002fb3e0@mail.gmail.com> Thanks Robert, That did the trick! And I see my err, mutators take parameters, they don't take assignments >_< Thanks, Will On Sat, Dec 19, 2009 at 9:15 PM, Robert Boone wrote: > You can change the line to: > > $self->{_mech} = WWW::Mechanize->new(); > > of > > $self->_mech(WWW::Mechanize->new()); > > > > > > On Sat, Dec 19, 2009 at 3:25 PM, Will Willis > wrote: > > I'm using Moose to write a package that, among other things, connects to > the > > internet to fetch some content. > > The way I have my object designed is that want one of the attributes to > > contain a reference to a WWW::Mechanize object. > > ----the code--- > > #!/usr/bin/perl > > use strict; > > use Website; > > my $web = Website->new(name => 'Google', url => 'http://www.google.com/' > ); > > print "My Website's name is " . $web->name . "\n"; > > print $web->get_content(); > > > > ----the class--- > > package Website; > > use Moose; > > use WWW::Mechanize; > > has '_mech' => ( is => 'rw' ); > > has 'name' => ( is => 'rw', isa => 'Str', required => 1); > > has 'url' => (is => 'rw', isa => 'Str', required => 1); > > sub get_content { > > my $self = shift; > > $self->_mech = WWW::Mechanize->new(); > > $self->_mech->get($self->url); > > return $self->_mech->content; > > } > > 1; > > --- /end code -- > > That's not working , I get the following output/error: > > My Website's name is Google > > Can't modify non-lvalue subroutine call at Website.pm line 11. > > Do I need to make the '_mech' attribute be a (isa) > WWW::Mechanize object to > > achieve this? I have no intention of exposing any of WWW::Mechanize's > > functionality to the outside. I'm probably missing a small detail. Any > help > > would be appreciated. > > > > -Will > > _______________________________________________ > > Houston mailing list > > Houston at pm.org > > http://mail.pm.org/mailman/listinfo/houston > > Website: http://houston.pm.org/ > > > _______________________________________________ > Houston mailing list > Houston at pm.org > http://mail.pm.org/mailman/listinfo/houston > Website: http://houston.pm.org/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From mikeflan at att.net Sun Dec 20 07:40:21 2009 From: mikeflan at att.net (Mike Flannigan) Date: Sun, 20 Dec 2009 09:40:21 -0600 Subject: [pm-h] Video on Git Message-ID: <4B2E4565.7070804@att.net> Video on Git I found interesting: http://www.youtube.com/watch?v=8dhZ9BXQgc4 Very lengthy. Mike From toddr at null.net Mon Dec 21 08:25:10 2009 From: toddr at null.net (Todd Rinaldo) Date: Mon, 21 Dec 2009 10:25:10 -0600 Subject: [pm-h] Moose question In-Reply-To: <6ee1e6090912191325i4ff33682t4837590dba5e1609@mail.gmail.com> References: <6ee1e6090912191325i4ff33682t4837590dba5e1609@mail.gmail.com> Message-ID: <748c25c20912210825g54cb3b70r5bcca4abedbcdd87@mail.gmail.com> I'm a big fan of lazy. You're kinda randomly initializing your object in the object if you don't use it. Oh and per the Moose gods, don't forget to turn off Moose and make immutable at the end of your module. Try this: #!/usr/bin/perl use strict; use Website; my $web = Website->new(name ='Google', url ='http://www.google.com/'); print "My Website's name is " . $web->name . "\n"; print $web->get_content(); package Website; use Moose; use WWW::Mechanize; # Mech will initialize whenever it's first called. has '_mech' => (isa => 'Object', is => 'ro', lazy => 1, default => sub { WWW::Mechanize->new }); has 'name' ?=( is ='rw', isa ='Str', required =1); has 'url' ? =(is ='rw', isa ='Str', required =1); sub get_content { ?? ?my $self = shift; ?? ?$self->_mech->get($self->url); ?? ?return $self->_mech->content; } no Moose; __PACKAGE__->meta->make_immutable; 1; From will.willis at gmail.com Mon Dec 21 13:37:07 2009 From: will.willis at gmail.com (Will Willis) Date: Mon, 21 Dec 2009 15:37:07 -0600 Subject: [pm-h] Moose question In-Reply-To: <6ee1e6090912211335w1848522dhdbff3c2392c44c5a@mail.gmail.com> References: <6ee1e6090912191325i4ff33682t4837590dba5e1609@mail.gmail.com> <748c25c20912210825g54cb3b70r5bcca4abedbcdd87@mail.gmail.com> <6ee1e6090912211335w1848522dhdbff3c2392c44c5a@mail.gmail.com> Message-ID: <6ee1e6090912211337g650f9ea2n23062321ab9cbb37@mail.gmail.com> Thanks Todd, What does the immutable bit do at the end? Freeze my object to any further changes? What about 'no Moose'? I've seen it done in the manual but haven't seen an explaination. On Dec 21, 2009 10:25 AM, "Todd Rinaldo" wrote: I'm a big fan of lazy. You're kinda randomly initializing your object in the object if you don't use it. Oh and per the Moose gods, don't forget to turn off Moose and make immutable at the end of your module. Try this: #!/usr/bin/perl use strict; use Website; my $web = Website->new(name ='Google', url ='http://www.g... package Website; use Moose; use WWW::Mechanize; # Mech will initialize whenever it's first called. has '_mech' => (isa => 'Object', is => 'ro', lazy => 1, default => sub { WWW::Mechanize->new }); has 'name' =( is ='rw', isa ='Str', required =1); has 'url' =(is ='rw', isa ='Str', required =1)... $self->_mech->get($self->url); return $self->_mech->content; } no Moose; __PACKAGE__->meta->make_immutable; 1; _______________________________________________ Houston mailing list Houston at pm.org http://mail.pm.o... -------------- next part -------------- An HTML attachment was scrubbed... URL: From robo4288 at gmail.com Tue Dec 22 05:02:04 2009 From: robo4288 at gmail.com (Robert Boone) Date: Tue, 22 Dec 2009 07:02:04 -0600 Subject: [pm-h] Moose question In-Reply-To: <6ee1e6090912211337g650f9ea2n23062321ab9cbb37@mail.gmail.com> References: <6ee1e6090912191325i4ff33682t4837590dba5e1609@mail.gmail.com> <748c25c20912210825g54cb3b70r5bcca4abedbcdd87@mail.gmail.com> <6ee1e6090912211335w1848522dhdbff3c2392c44c5a@mail.gmail.com> <6ee1e6090912211337g650f9ea2n23062321ab9cbb37@mail.gmail.com> Message-ID: <435624390912220502t4b7e8fe4mf1903842b8224174@mail.gmail.com> make_immutable() does two things, object construction and destruction are effectively "inlined" in your class, and no longer invokes the meta API... And no Moose remove the Moose helper functions like has(), before() and the others so they will not be in the object after object creation.... Charles de Gaulle - "The better I get to know men, the more I find myself loving dogs." - http://www.brainyquote.com/quotes/authors/c/charles_de_gaulle.html On Mon, Dec 21, 2009 at 3:37 PM, Will Willis wrote: > Thanks Todd, > > What does the immutable bit do at the end? Freeze my object to any further > changes? What about 'no Moose'? > > I've seen it done in the manual but haven't seen an explaination. > > On Dec 21, 2009 10:25 AM, "Todd Rinaldo" wrote: > > I'm a big fan of lazy. You're kinda randomly initializing your object > in the object if you don't use it. Oh and per the Moose gods, don't > forget to turn off Moose and make immutable at the end of your module. > > Try this: > > #!/usr/bin/perl use strict; use Website; my $web = Website->new(name > ='Google', url ='http://www.g... > > package Website; use Moose; use WWW::Mechanize; > > # Mech will initialize whenever it's first called. > has '_mech' ? ?=> (isa => 'Object', is => 'ro', lazy => 1, default => > sub { WWW::Mechanize->new }); > > has 'name' ?=( is ='rw', isa ='Str', required =1); has 'url' ? =(is ='rw', > isa ='Str', required =1)... > > ?? ?$self->_mech->get($self->url); ?? ?return $self->_mech->content; } > > no Moose; > __PACKAGE__->meta->make_immutable; > 1; > > _______________________________________________ Houston mailing list > Houston at pm.org http://mail.pm.o... > > _______________________________________________ > Houston mailing list > Houston at pm.org > http://mail.pm.org/mailman/listinfo/houston > Website: http://houston.pm.org/ > From gwadej at anomaly.org Tue Dec 22 19:36:12 2009 From: gwadej at anomaly.org (G. Wade Johnson) Date: Tue, 22 Dec 2009 21:36:12 -0600 Subject: [pm-h] Fw: Books and News from the O'Reilly User Group Program--December Message-ID: <20091222213612.7c7d903e@sovvan> Begin forwarded message: Date: Thu, 17 Dec 2009 08:06:14 -0800 From: Marsee Henon To: gwadej at anomaly.org Subject: Books and News from the O'Reilly User Group Program--December View this information as HTML in your browser, click here: http://post.oreilly.com/rd/9z1z38ma818mgmbqm5gmstoc75u76d715velg17shto Hi there, Happy Holidays to everyone. By now, if you're like me, you're just now starting your holiday shopping so any last minute tips are appreciated, right? Here's our O'Reilly Gift Guide that covers suggestions for Your New Device, Inspiration, Programmers, Makers, Kids, and more.: http://post.oreilly.com/rd/9z1ziql6timunp98h35b5trarco1sd87dvalvdfg0io And the MAKE gift guides include Handmade Geekery, All-Arduino!, Dangerous giving, MAKE's Toolbox Gift Guide, and many, many more. http://post.oreilly.com/rd/9z1zikd7blhr2ht700th4p5imoga9g5e1tgcm8h7e08 Have you tried one of our ebooks yet? Send me an email if you're interested and I'll set you up. Most of our ebooks come in the following formats--PDF, .epub, and Kindle-compatible .mobi--and now we've released the new Android .apk application. You can read more in our Tools of Change for Publishing blog. http://post.oreilly.com/rd/9z1z1rs5358ci7qdvdf7po1p79v2o0l3uve2v3l76to Facebook users, check out our O'Reilly Fan Page on Facebook http://post.oreilly.com/rd/9z1z70cmct8qouuqts9i0kdb01l9i26i88u45bji700 We're giving away review copies of two different books every day (including weekends) from now until Dec 23rd. Reviews can be posted anywhere from oreilly.com or another retail site such as Amazon.com, to your personal blog or a community reading site like Shelfari, Goodreads, or Librarything. Here's the new Microsoft Press Fan Page to join too: http://post.oreilly.com/rd/9z1zjrg70qdj9jojkcbb7q1jktsljdp23bude39en40 Last week we sent out a special Microsoft Press offer; in case I missed you, here it is to share via twitter, mailing list, blog post, and other social networking sites: Save 40% on All Microsoft Press Books and 50% on Ebooks We're Celebrating Our New Partnership with Microsoft Press! The gift-giving season is upon us and we want to help you save. From now until the New Year you can purchase Microsoft Press books direct on oreilly.com and save. Select from over 600 print titles, and 200 DRM-free ebooks. All ebooks are available in four convenient formats, for the price of one: ePub, PDF, MOBI, and Android. Use discount code MSINT in the shopping cart to get your savings on every Microsoft Press title. Here's the complete list of Microsoft Press titles: http://post.oreilly.com/rd/9z1zfa1ub1o8ttfu6ajj90v3op86dahf3vek5tl6lag Please pass along any part of this newsletter to your group via email or your website and include the discount codes. We offer both a text and an HTML version. Thanks, --Marsee Henon --------------------------------------------------------------- News from O'Reilly and Beyond --------------------------------------------------------------- Global Ignite Week March 1-4 2010 O'Reilly Media announces the first Global Ignite Week, a "worldwide distributed conference" of community-fueled Ignite events in more than 40 cities, from March 1-4, 2010. Upwards of 10,000 entrepreneurs, technologists, DIYers, local heroes, and creative professionals are expected to participate in cities including Seattle, Boston, New York, Nashville, Brussels, Paris, Sydney, and Bangalore. Igniters will gather in pubs, theaters, and other convivial venues for an evening that is a unique blend of networking, information, and fun, encapsulated in the Ignite motto: "Enlighten us, but make it quick." In talks that are exactly five minutes long, Ignite presenters share their personal and professional passions, using 20 slides that auto-advance every 15 seconds--whether they're ready or not. Global Ignite Week is both an in-person and online event. http://post.oreilly.com/rd/9z1z5q0v0cifvua5mihemt9i43gt8blscm9eqi58eio Local Ignites will stream live video during the event, and video of their talks will be archived afterwards. At least 500 five-minute session videos will be available on the new Ignite video site, to be launched in conjunction with the event. For a sampling of the best Ignite videos, see the current Ignite Show channel on YouTube. http://post.oreilly.com/rd/9z1z93vov6173uolin48r21hduev947mhulice9dpeg ------------------------- New Online Course: Learn to Build iPhone Apps with HTML, CSS and JavaScript Want to build iPhone apps with HTML, CSS, and JavaScript? In this four-session video course you'll quickly learn how to create simple web apps with features that take advantage of the device's remarkable functionality. http://post.oreilly.com/rd/9z1zfrv0fdgenvtnvjsk56i252ebuaau44eh0jtm0ig Presented by CreativeTechs in partnership with O'Reilly, each session offers easy-to-follow, hands-on lessons. All you need to know in advance is HTML, CSS, and JavaScript basics. The online sessions are free; a video package is also available for purchase, including slide presentations, code examples and other course materials. http://post.oreilly.com/rd/9z1zgdi7p70mfda64u0vtvis4ilu47f2scp3ud6cp40 The course begins on Tuesday, January 5, 2010. http://post.oreilly.com/rd/9z1z81tknhnuh4teh6ue7fhom6u2bamlr6995o5o61g ------------------------- Register Now - Free Upcoming Webcasts What people are says about our webcasts: "Content superb of course. But I also loved its "personality" - friendly, casual, expert, geeky: perfect!" -- Heather Young Our upcoming webcasts include: -DRBD and MySQL - An HA Match Made In Heaven -Cloud Security & Privacy -Cloud Security Deep Dive -Using ICT (Information & Communications Technology) to Create a Sustainable Business -Tour the Top 10 Treats in Entity Framework 4 -The Science of Social Media Marketing Check out our Webcast page for on-demand videos of past webcasts and more upcoming live events! http://post.oreilly.com/rd/9z1z2na134o9o28vtcu9g5du62sds4nvqvgpt2evp7o ------------------------- Reviewers Needed! We're always looking for book reviewers, especially on our new releases. Titles we're excited about include The Social Media Marketing Book, Make: Electronics, jQuery Cookbook, and Head First Programming. If you'd like to write a review of any of these books for Amazon, Slashdot, your favorite book community site such as GoodReads, LibraryThing or Shelfari, or your blog, please send an email to your user group leader with the book title and where you'll review it. ------------------------- 15% off Safari Books Online for 12 months for UG members Safari Books Online provides online access to more than 8,500 books and videos from the world's leading technology publishers, plus time- saving tools that make it easy to find and organize the information you need, when you need it, all for one low monthly price. Search the full content of books and videos from O'Reilly Media, Addison- Wesley, Cisco Press, Apress, Manning, John Wiley and Sons, Microsoft Press and dozens of others, together on one easy-to-use online platform. Be the first to learn about cutting-edge technologies with pre-published manuscripts. Create your own digital library with favorites, saved searches, bookmarks, highlights, notes, tags and more. We're offering User Group members an exclusive 15% discount on monthly subscriptions to Safari Books Online for 12 months. Subscriptions must be purchased before March 31, 2010, at http://post.oreilly.com/rd/9z1zfgfpinn141823jgsp5e4ko43aqptfjl9uj9ehu8 Enter coupon LOJLYFA at the time of checkout to redeem your discount. (Offer Details: Not valid with any other offer. Coupon is good for 15% off monthly subscriptions for 12 consecutive months. For new and existing Safari Books Online subscribers.) ------------------------- O'Reilly School of Technology Courses: UG Members Receive a 30% Discount By enrolling in the O'Reilly School of Technology, you can stay competitive in Information Technology without the high cost or huge time commitment. Our courses work around YOUR schedule, not the other way around. And within months, not only will you have the University of Illinois Certificate to display on your resume, you'll also have a portfolio of projects that are sure to impress in your interviews! OST's full-price tuitions are already lower than comparable continuing education or community college courses. However, as an O'Reilly User Group member, you save an additional 30% on all the courses in the following University of Illinois Certificate Series: -New--Database Administration Certificate -Java Programming -PHP/SQL Programming -Linux/Unix System Administration -Web Programming -Open Source Programming -.NET Programming -Client-Side Web Programming featuring AJAX To redeem, use Promotion Code "ORALL1" good for a 30% discount, in Step #2 of the enrollment process. Each course comes with a free O'Reilly book and a 7-day money-back guarantee. Register online: http://post.oreilly.com/rd/9z1zc0rb0sd0s83mq1ccak4ddtuu3ekimkh1hcop5jo (This discount is not combinable with other offers.) ------------------------- The Southern California Linux Expo's (SCALE) call for papers will be closing later this month. SCALE is a community run open source and free software conference held annually in Los Angeles, CA. The SCALE team is seeking presenters on topics related to open source and free software. The event will be broken into 6 tracks this year: Developer Track, Open Source for Beginners, General Open Source Topics tracks, and the Try It Lab which will offer hands on tutorials on open source software. If you are interested in presenting please see the call for papers at: http://post.oreilly.com/rd/9z1zfgmm8fvu1n6gt151s29o7gmln035tejjf1rtqu0 The call for papers will close on December 24th. Feb 19-21, 2010 Los Angeles, CA http://post.oreilly.com/rd/9z1zkgoqun6nh9sedsvvj1ri5glpja80q3ldb1069m8 ------------------------- NY Tech Holiday Party on December 21 More than apalindromic number, 12/21 is an evening for drinks, hors d'oeuvres, and special guests at the professional networking event for New York technology. Their mission is to bring together all aspects of technology and the business of technology in one event. Come rub elbows and connect with colleagues from every segment of NY tech, as they unite the technical and business communities. All are invited - CTO/CIO, junior admin, engineer, developer, entrepreneur, manager, author, speaker, media, and business professional. This event is co-hosted by Bootup and Girls in Tech. Space is limited -- RSVP is mandatory For more information, go to http://post.oreilly.com/rd/9z1zqnijgasb1l450k7sk05da8eh8k2fhcatddntono ------------------------- UG leaders only--Put Up a Banner, Get a Free Book We're looking for user groups to display our discount banners on their web sites. If you send me your group's site with one or more banners, I'll send you the O'Reilly book(s) of your choice. Choose from the following list: O'Reilly Answers http://post.oreilly.com/rd/9z1z3fctjnsh6gm1397qs71cv3l560qlcpq1c4premo O'Reilly School of Technology Banners http://post.oreilly.com/rd/9z1zvdtn7e87gshas0j2h5pe301c411dqsqs7mdibgg Customizable O'Reilly Book Widgets http://post.oreilly.com/rd/9z1zqlher788vs7rmneidbq9a3k8rpgu9c241kaabf8 35% off User Group Discount Banners http://post.oreilly.com/rd/9z1zej9ormfae43fkgn763btj70tq6ljpuo5vplgar0 --------------------------------------------------------------- New Releases --------------------------------------------------------------- Get 35% off from O'Reilly, Microsoft Press, No Starch, Paraglyph, PC Publishing, Pragmatic Bookshelf, Rocky Nook, SitePoint, or YoungJin books and ebooks you purchase directly from O'Reilly. Just use code DSUG when ordering online or by phone 800-998-9938. http://post.oreilly.com/rd/9z1z69mv017t04hr2kmv6h6pbeh0eahi940jdfp5tsg Switching to the Mac: The Missing Manual, Snow Leopard Edition http://post.oreilly.com/rd/9z1z1ngvk4k4161rqg2imb41rged41ots47sm9cq15g Adobe Photoshop Elements 8 One-on-One http://post.oreilly.com/rd/9z1zvk4j1r5mrnvk0f3ooa1mmie62stsfcppl2seoug RESTful Java with JAX-RS http://post.oreilly.com/rd/9z1zo18hif0gguucr4h4210d5cj2hi162vansfrh45g Programming Google App Engine http://post.oreilly.com/rd/9z1zmgal39qqedtpqutoq2fnml8f385pcqocvot9ivg Make: Electronics http://post.oreilly.com/rd/9z1z5jnlscpifrufp4f7h2rl6jradd4fivgm2s1c7h0 jQuery Cookbook http://post.oreilly.com/rd/9z1z9fousd4e1ark3qe9fmegf3cqcmfb2qvri2hs2uo Head First Programming http://post.oreilly.com/rd/9z1zf5sq2ggqfcr5ripqljsjlrss37op1habaa6sf5g Head First 2D Geometry http://post.oreilly.com/rd/9z1zmnf3crh5n2i3mlr0s0bgchp90as2sidjcuunct8 The Social Media Marketing Book http://post.oreilly.com/rd/9z1zg1c3qivrihlm0i0m8bqflh7nv4j809qbq7crbso Google Advertising Tools, Second Edition http://post.oreilly.com/rd/9z1z94euctdpcu4406nss7iuqjtnq7f6sqeedfpmhlo Learn to Build iPhone Apps with HTML, CSS, and Javascript http://post.oreilly.com/rd/9z1ziu4rkk8ab158pnokd1usql002u96in3akdtm6mg Building the Realtime User Experience: Rough Cuts Version http://post.oreilly.com/rd/9z1zq3nf8ha8paol3lvr5kelnvne5b7sarpleseuncg Windows PowerShell 2.0 Best Practices (Microsoft Press) http://post.oreilly.com/rd/9z1zqbi66pvvmqn10tikkgunctpqume5sts7eosjlm0 Build a Better Photograph (Rocky Nook) http://post.oreilly.com/rd/9z1zjqsuk08vuebccl3of2db6ck95v218tbduoh69r8 Pomodoro Technique Illustrated (Pragmatic Bookshelf) http://post.oreilly.com/rd/9z1ztoaknkejh17k6k0hiq87e616tt03iniid6l35d8 Make Magazine: The Fifth Year http://post.oreilly.com/rd/9z1zf5i2tgr8fogsfg6duh3cqaasldvmob0mgd9vneo LEGO MINDSTORMS NXT Thinking Robots (No Starch) http://post.oreilly.com/rd/9z1zn2244ruefie9d51323aoigkaqtdhfannrk1jv2o The Portrait (Rocky Nook) http://post.oreilly.com/rd/9z1zldrh8hepniciac51547g7j4ghcr3co5n8m5bvno Take Control of Syncing Data in Snow Leopard (TidBITS) http://post.oreilly.com/rd/9z1z56m858fkia204s51sncmj8i8borl0usg6laaiu0 O'Reilly Master Class: Leading and Managing Breakthrough Projects Video http://post.oreilly.com/rd/9z1zsnv0ed82nf77nt02q5i7tvho2uopj48bdcfgi2g Learning iPhone Programming: Rough Cuts Version http://post.oreilly.com/rd/9z1z3h0l9bs0ah0qrgs17k0cvdl7tck30d6n9lqkt4g DocBook: The Definitive Guide: Rough Cuts Version, Second Edition http://post.oreilly.com/rd/9z1z62shtalrs6l1i4lqdboq1u9rmg04cdm9u5qjaq0 Take Control of VMware Fusion 3 (TidBITS) http://post.oreilly.com/rd/9z1zp55ebtle0sj32j1cori849uvri8bna4arp4rqho Until next time-- Marsee Henon Forward this announcement - http://post.oreilly.com/f2f/9z1z6hn0jhjuasrvjbcgi34scif32vvt0jrsakd8g4g ================================================================ O'Reilly 1005 Gravenstein Highway North Sebastopol, CA 95472 800-998-9938 http://post.oreilly.com/rd/9z1zsls56681k5hidkqr9hu8kg030kggmppp8rumjo0 Follow us on Twitter at: http://post.oreilly.com/rd/9z1zmjq3oa8gqkurcuds3o3p9ag392f4p59c54af6u0 You are receiving this email because you are a User Group contact with O'Reilly Media. If you would like to stop receiving these newsletters or announcements from O'Reilly, send an email to marsee at oreilly.com ================================================================ -- Contrary to popular opinion, the plural of 'anecdote' is not 'fact'. -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.willis at gmail.com Tue Dec 22 21:08:26 2009 From: will.willis at gmail.com (Will Willis) Date: Tue, 22 Dec 2009 23:08:26 -0600 Subject: [pm-h] Code/Project Hosting Message-ID: <6ee1e6090912222108j57b77e37qdb3ffbbacedaf08a@mail.gmail.com> Where do you host your project? Why? The 2 popular services I'm considering are http://code.google.com/hosting/and http://github.com/ Google seems to have more features (wiki, issues log, binary downloads) while github wins with cool factor and is as the name implies, is managed with git. Has anyone had good and/or bad experiences with either? Thanks, Will -------------- next part -------------- An HTML attachment was scrubbed... URL: From robo4288 at gmail.com Wed Dec 23 03:40:01 2009 From: robo4288 at gmail.com (Robert Boone) Date: Wed, 23 Dec 2009 05:40:01 -0600 Subject: [pm-h] Code/Project Hosting In-Reply-To: <6ee1e6090912222108j57b77e37qdb3ffbbacedaf08a@mail.gmail.com> References: <6ee1e6090912222108j57b77e37qdb3ffbbacedaf08a@mail.gmail.com> Message-ID: Github has all the features you named for google code. It just dependes on which scm you like. On Dec 22, 2009, at 11:08 PM, Will Willis wrote: > Where do you host your project? Why? > > The 2 popular services I'm considering are http://code.google.com/hosting/ > and http://github.com/ > > Google seems to have more features (wiki, issues log, binary > downloads) while github wins with cool factor and is as the name > implies, is managed with git. Has anyone had good and/or bad > experiences with either? > > Thanks, > Will > _______________________________________________ > Houston mailing list > Houston at pm.org > http://mail.pm.org/mailman/listinfo/houston > Website: http://houston.pm.org/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From gwadej at anomaly.org Wed Dec 23 05:24:06 2009 From: gwadej at anomaly.org (G. Wade Johnson) Date: Wed, 23 Dec 2009 07:24:06 -0600 Subject: [pm-h] Code/Project Hosting In-Reply-To: <6ee1e6090912222108j57b77e37qdb3ffbbacedaf08a@mail.gmail.com> References: <6ee1e6090912222108j57b77e37qdb3ffbbacedaf08a@mail.gmail.com> Message-ID: <20091223072406.642adef1@sovvan> On Tue, 22 Dec 2009 23:08:26 -0600 Will Willis wrote: > Where do you host your project? Why? > > The 2 popular services I'm considering are > http://code.google.com/hosting/and http://github.com/ > > Google seems to have more features (wiki, issues log, binary > downloads) while github wins with cool factor and is as the name > implies, is managed with git. Has anyone had good and/or bad > experiences with either? I've used both without complaint. G. Wade -- Perl's grammar can not be reduced to BNF. The work of parsing perl is distributed between yacc, the lexer, smoke and mirrors. -- Chaim Frenkel From will.willis at gmail.com Wed Dec 23 05:52:24 2009 From: will.willis at gmail.com (Will Willis) Date: Wed, 23 Dec 2009 07:52:24 -0600 Subject: [pm-h] Code/Project Hosting In-Reply-To: <20091223072406.642adef1@sovvan> References: <6ee1e6090912222108j57b77e37qdb3ffbbacedaf08a@mail.gmail.com> <20091223072406.642adef1@sovvan> Message-ID: <6ee1e6090912230552x39f3eb93l7a4b8650a707f864@mail.gmail.com> Thanks guys. On Wed, Dec 23, 2009 at 7:24 AM, G. Wade Johnson wrote: > On Tue, 22 Dec 2009 23:08:26 -0600 > Will Willis wrote: > > > Where do you host your project? Why? > > > > The 2 popular services I'm considering are > > http://code.google.com/hosting/and http://github.com/ > > > > Google seems to have more features (wiki, issues log, binary > > downloads) while github wins with cool factor and is as the name > > implies, is managed with git. Has anyone had good and/or bad > > experiences with either? > > I've used both without complaint. > > G. Wade > -- > Perl's grammar can not be reduced to BNF. The work of parsing perl is > distributed between yacc, the lexer, smoke and mirrors. > -- Chaim Frenkel > _______________________________________________ > Houston mailing list > Houston at pm.org > http://mail.pm.org/mailman/listinfo/houston > Website: http://houston.pm.org/ > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gwadej at anomaly.org Tue Dec 29 14:27:47 2009 From: gwadej at anomaly.org (G. Wade Johnson) Date: Tue, 29 Dec 2009 16:27:47 -0600 Subject: [pm-h] January's meeting Message-ID: <20091229162747.009fd261@sovvan> Our next meeting is on Tuesday, January 12. Will Willis will be presenting an Introduction to Perl. We'll be meeting at the cPanel offices at 3131 W. Alabama. I'll be adding a map to the Houston.pm website soon. Hope to see you there. G. Wade -- It's easier to port a shell than a shell script. -- Larry Wall