From grant at mclean.net.nz Mon Nov 1 16:30:59 2004 From: grant at mclean.net.nz (Grant McLean) Date: Mon Nov 1 16:31:04 2004 Subject: [Wellington-pm] Looking for work? Message-ID: <1099348259.23279.12.camel@localhost> If you're a competent Perl/PHP coder and are looking for permanent employment in Wellington, contact me off list (ie: don't just hit reply). Regards Grant (AKA: grant@catalyst.net.nz) From grant at mclean.net.nz Sun Nov 7 15:12:41 2004 From: grant at mclean.net.nz (Grant McLean) Date: Sun Nov 7 15:12:50 2004 Subject: [Wellington-pm] Meeting tonight Message-ID: <1099861961.17870.45.camel@localhost> By popular request, I would like to remind everyone there's a Perl Mongers meeting at 6:00pm this evening. http://wellington.pm.org/ A note to the speakers: you're welcome to bring your own laptop for slides, or I can provide one (Linux with Open Office). Consider emailing me files beforehand to reduce the mucking around time. Regards Grant From michael at diaspora.gen.nz Sun Nov 7 16:10:01 2004 From: michael at diaspora.gen.nz (michael@diaspora.gen.nz) Date: Sun Nov 7 16:10:36 2004 Subject: [Wellington-pm] Meeting tonight In-Reply-To: Your message of "Mon, 08 Nov 2004 10:12:41 +1300." <1099861961.17870.45.camel@localhost> Message-ID: Grant McLean writes: >By popular request, I would like to remind everyone there's a Perl >Mongers meeting at 6:00pm this evening. > > http://wellington.pm.org/ > >A note to the speakers: you're welcome to bring your own laptop for >slides, or I can provide one (Linux with Open Office). Consider >emailing me files beforehand to reduce the mucking around time. (1) Mine is on the Intarweb, so can I presume that you've got Web access in the room? Failing that, I'm going to have to do a rapid reorg... (2) Beyond web access, ssh access to the Intarweb? -- michael. From grant at mclean.net.nz Mon Nov 8 16:06:27 2004 From: grant at mclean.net.nz (Grant McLean) Date: Mon Nov 8 16:06:31 2004 Subject: [Wellington-pm] Gratuitous use of Perl Prototypes Message-ID: <1099951587.24011.5.camel@localhost> Following on from my comments last night, I present the case against inappropriate use of Perl prototypes. But first, let's start with the case *for* appropriate use of Perl prototypes. Imagine that you wanted to write a function that wrapped Perl's builtin function 'push' but forced everything being pushed onto the array to upper case. Your starting position might be this: sub PUSH { my(@array, @new_items) = @_; push(@array, map { uc } @new_items); } my @target = ('RED', 'GREEN'); PUSH(@target, 'blue'); This obviously won't work since all arguments passed to PUSH() will end up in @array and @new_items will end up empty. Another reason it won't work is that the push function is operating on @array which only exists within the PUSH function and doesn't affect the original array (@target). One way to make it work is to pass in an array reference instead of an array: sub PUSH { my($array, @new_items) = @_; push(@$array, map { uc } @new_items); } my @target = ('RED', 'GREEN'); PUSH(\@target, 'blue'); This is fine, but it does require a little more work from the caller (actually one backslash) and it's not quite as tidy as Perl's builtin 'push'. Prototypes allow your functions to behave like Perl's builtins. In our example, we can use a prototype to declare that our PUSH function needs one arrayref, followed by an arbitrarily long list of arguments: sub PUSH (\@@) { my($array, @new_items) = @_; push(@$array, map { uc } @new_items); } my @target = ('RED', 'GREEN'); PUSH @target, 'blue'; Now when we call PUSH, we specify an array as the first argument and Perl coerces that into the arrayref that PUSH requires. Even though this is what Perl prototypes are intended to be used for, it could be argued that even this use is a bad thing, since it might lead to unexpected consequences. Usually in Perl if you pass an array to a subroutine, you don't expect the array to be changed. If a subroutine expects an arrayref, then that might be taken as a signal that the routine possibly intends to modify the referenced array. Prototypes allow a programmer to hide the fact that the routine will get an arrayref. Now let's open the case for the prosecution. Let's assume that we have a persistent whiney developer who is determined to use prototypes on every Perl subroutine and is attempting to defend his choice: 1. Prototypes allow Perl to pick up errors in subroutine calls. This is a common mistake made by developers who have a background with 'C', since this is exactly what 'C' prototypes are for. It is unfortunate that Perl uses the name 'prototype', since in Perl, the feature exists for an entirely different reason - to allow Perl to silently coerce the arguments into a form that matches the prototype. In fact Perl's compiler will only throw errors if it can't manage to do that. 2. Prototypes are a useful way of documenting a subroutine's expectations. Perhaps, but a subroutine that starts like this: sub border_style ($$$) { only tells us that it expects three arguments, whereas a subroutine that starts like this: sub border_style { my($width, $style, $colour) = @_; tells us not only that the subroutine expects three arguments, but also how it is planning to interpret each argument. Since you're probably going to assign your arguments to variables with meaningful names anyway, the prototype is essentially redundant. If you need more documentation, then POD is the right tool for the job. 3. Well at least I know my methods are being called with the right number of arguments. Whoa there! Did you say 'methods'? Perl does not attempt to check prototypes at all for subroutines called as methods. Remember, if your classes use inheritance, a method could be defined in more than one place in the inheritance tree and it's entirely possible that the calling signature for each might be different. Since Perl doesn't know until runtime which subroutine implements a method for a specific object, it can't check the prototypes at compile time. 4. OK, so prototypes are not perfect, but at least they pick up some classes of errors at compile time. Perhaps, but used gratuitously, they can actually introduce some errors at runtime. Consider this subroutine: sub border ($;$$) { my($width, $style, $colour) = @_; $style = 'solid' unless defined $style; $colour = 'black' unless defined $colour; return "border: $width $style $colour;"; } In theory, the prototype declares that the subroutine expects one mandatory argument and two optional arguments (for which the routine defines default values). So if we call it like this: print border('1px'), "\n"; it will return "border: 1px solid black;". But if we call it like this: my @args; push @args, $selected ? '5px' : '1px'; push @args, 'dashed'; push @args, 'red' if $selected; print border(@args), "\n"; Then if $selected is true, we might expect this return value: "border: 5px dashed red;" but we'd actually get: "border: 3 solid black;" The reason for this is that the prototype tells Perl we want the first argument as a scalar, so it evaluates @args in a scalar context which gives 3 (the number of elements in @args) and calls the subroutine with the lone argument (3). 5. Well the coding standards for my project mandate the use of prototypes That's a bug in the coding standards. It might be correct for other languages, but it's not correct for Perl. 6. My use of prototypes sends a clear message to people reading my code that I am a careful coder. You're right, it does send a clear message, just not the one you think. People reading your code are pointing and sniggering as we speak. 7. Alright you win. Actually, if you stop the gratuitous use of prototypes, we all win. In truth, the last time I went through this sermon we never got to step 7 :-) Cheers Grant From michael at diaspora.gen.nz Mon Nov 8 16:08:09 2004 From: michael at diaspora.gen.nz (michael@diaspora.gen.nz) Date: Mon Nov 8 16:08:34 2004 Subject: [Wellington-pm] Maypole Message-ID: Following up from the presentation last night, the presentation slides are available at: http://maypole.livia.co.nz:8080/slides/ and the two example apps are at /loanapp/ and /beerdb/ on the same server. Obviously, being my dev system, subject to change without notice, etc. -- michael. From grant at mclean.net.nz Mon Nov 8 16:35:57 2004 From: grant at mclean.net.nz (Grant McLean) Date: Mon Nov 8 16:35:59 2004 Subject: [Wellington-pm] Maypole In-Reply-To: References: Message-ID: <1099953357.24011.8.camel@localhost> On Tue, 2004-11-09 at 11:08, michael@diaspora.gen.nz wrote: > Following up from the presentation last night, the presentation slides > are available at: > > http://maypole.livia.co.nz:8080/slides/ > > and the two example apps are at /loanapp/ and /beerdb/ on the same server. > > Obviously, being my dev system, subject to change without notice, etc. If you want to send me a tarball of the slides, I can put them up on the wellington.pm.org web site for posterity. Or if you prefer, I can just link to your site. Grant From enkidu at cliffp.com Tue Nov 9 03:25:41 2004 From: enkidu at cliffp.com (Enkidu) Date: Tue Nov 9 03:26:15 2004 Subject: [Wellington-pm] Gratuitous use of Perl Prototypes In-Reply-To: <1099951587.24011.5.camel@localhost> References: <1099951587.24011.5.camel@localhost> Message-ID: <7p21p0t1lbb6a7chbpkm23ur1ir5pis0n4@4ax.com> On Tue, 09 Nov 2004 11:06:27 +1300, you wrote: >Following on from my comments last night, I present the case against >inappropriate use of Perl prototypes. > (Sorry about the removal of all the good stuff) What about the following bit of horrible code? #!/usr/bin/perl -w my $var1 ; my $var2 ; sub blimey() ; $var1 = "0" ; blimey() ; sub blimey() { } If you remove the "sub blimey() ;" line the compiler complains: main::blimey() called too early to check prototype at test.pl line 7. What's the reason and what can you do about it, short of putting all the subs at the front of the code which looks horrible and makes it hard to read! Cheers, Cliff From jarich at perltraining.com.au Tue Nov 9 05:04:34 2004 From: jarich at perltraining.com.au (Jacinta Richardson) Date: Tue Nov 9 05:04:38 2004 Subject: [Wellington-pm] Gratuitous use of Perl Prototypes In-Reply-To: <7p21p0t1lbb6a7chbpkm23ur1ir5pis0n4@4ax.com> References: <1099951587.24011.5.camel@localhost> <7p21p0t1lbb6a7chbpkm23ur1ir5pis0n4@4ax.com> Message-ID: <4190A442.401@perltraining.com.au> Enkidu wrote: > What about the following bit of horrible code? > > #!/usr/bin/perl -w > > my $var1 ; > my $var2 ; > sub blimey() ; > > $var1 = "0" ; > blimey() ; > > sub blimey() { > } > > If you remove the "sub blimey() ;" line the compiler complains: > > main::blimey() called too early to check prototype at test.pl line 7. > > What's the reason and what can you do about it, short of putting all > the subs at the front of the code which looks horrible and makes it > hard to read! #!/usr/bin/perl -w my $var1 ; my $var2 ; $var1 = "0" ; blimey() ; sub blimey { } Works perfectly fine. The problem with your code is that writing sub blimey() { } does invoke a prototype. When you use prototypes, perl wants you to declare the prototypes before you use them in the code. If you put your subs before the main body of your script, then this will fix the problem. Alternately you can just leave them out all together (which might be wiser in this case) Diagnostics says: (W prototype) You've called a function that has a prototype before the parser saw a definition or declaration for it, and Perl could not check that the call conforms to the prototype. You need to either add an early prototype declaration for the subroutine in question, or move the subroutine definition ahead of the call to get proper prototype checking. Alternatively, if you are certain that you're calling the function correctly, you may put an ampersand before the name to avoid the warning. See perlsub. To get a roughly similar effect as using a prototype for blimey, perhaps you'd like to write: sub blimey { die if @_; } A better option to prototypes for most people is to take advantage of Params::Validate. All the best, Jacinta -- ("`-''-/").___..--''"`-._ | Jacinta Richardson | `6_ 6 ) `-. ( ).`-.__.`) | Perl Training Australia | (_Y_.)' ._ ) `._ `. ``-..-' | +61 3 9354 6001 | _..`--'_..-_/ /--'_.' ,' | contact@perltraining.com.au | (il),-'' (li),' ((!.-' | www.perltraining.com.au | From enkidu at cliffp.com Tue Nov 9 15:57:16 2004 From: enkidu at cliffp.com (Enkidu) Date: Tue Nov 9 15:57:38 2004 Subject: [Wellington-pm] Gratuitous use of Perl Prototypes In-Reply-To: <4190A442.401@perltraining.com.au> References: <1099951587.24011.5.camel@localhost> <7p21p0t1lbb6a7chbpkm23ur1ir5pis0n4@4ax.com> <4190A442.401@perltraining.com.au> Message-ID: On Tue, 09 Nov 2004 22:04:34 +1100, you wrote: > >Enkidu wrote: > >> What about the following bit of horrible code? >> >> #!/usr/bin/perl -w >> >> my $var1 ; >> my $var2 ; >> sub blimey() ; >> >> $var1 = "0" ; >> blimey() ; >> >> sub blimey() { >> } >> >> If you remove the "sub blimey() ;" line the compiler complains: >> >> main::blimey() called too early to check prototype at test.pl line 7. >> >> What's the reason and what can you do about it, short of putting all >> the subs at the front of the code which looks horrible and makes it >> hard to read! > >#!/usr/bin/perl -w > >my $var1 ; >my $var2 ; >$var1 = "0" ; >blimey() ; > >sub blimey { >} > >Works perfectly fine. The problem with your code is that writing > >sub blimey() { >} > >does invoke a prototype. When you use prototypes, perl wants you to >declare the prototypes before you use them in the code. If you put your >subs before the main body of your script, then this will fix the >problem. Alternately you can just leave them out all together (which >might be wiser in this case) Diagnostics says: > > (W prototype) You've called a function that has a prototype before >the parser saw a definition or declaration for it, and Perl could not >check that the call conforms to the prototype. You need to either add an >early prototype declaration for the subroutine in question, or move the >subroutine definition ahead of the call to get proper prototype >checking. Alternatively, if you are certain that you're calling the >function correctly, you may put an ampersand before the name to avoid >the warning. See perlsub. > > >To get a roughly similar effect as using a prototype for blimey, perhaps >you'd like to write: > >sub blimey { > die if @_; >} > >A better option to prototypes for most people is to take advantage of >Params::Validate. > Arrgh! It's obvious once you know, isn't it? Cheers, Cliff From grant at mclean.net.nz Sun Nov 14 15:24:32 2004 From: grant at mclean.net.nz (Grant McLean) Date: Sun Nov 14 15:24:37 2004 Subject: [Wellington-pm] Next meeting Message-ID: <1100467472.6631.26.camel@localhost> Hi Mongers Do we want to have a December meeting? The second Monday of the month is December 13th, which might put it into the silly season. Please respond to this message indicating your preference: [ ] I would most likely attend the meeting on December 13th [ ] I would prefer to leave it until February 14th The next question is what talks we can get lined up. I recall that Peter Love volunteered to tell us about his forays into Perl/Tk. Are you still up for that Peter? On a related note, I've been working with the Gtk bindings a bit of late too, so I could present on that to give the meeting a GUI theme. Regards Grant From grant at mclean.net.nz Sun Nov 14 15:35:57 2004 From: grant at mclean.net.nz (Grant McLean) Date: Sun Nov 14 15:36:00 2004 Subject: [Wellington-pm] Book Reviews Message-ID: <1100468157.6631.36.camel@localhost> Rather than just whine on about wanting people to review the free books that publishers give us, I thought I'd lead by example and put up a new review: http://wellington.pm.org/reviews.html At the bottom of the page there's a list of other books we have that need a review. Multiple (and even dissenting) reviews of the same book are fine too. Reviews of Perl related books that we don't have a copy of are fine too. So if you've reviewed a book on Amazon or similar, consider emailing me the text. I have had an enquiry from the O'Reilly user groups coordinator about where we publish our reviews, and I don't think I should be the only one feeling guilty :-) If anyone wants to drop in and pick up a book then just email me. Cheers Grant From Peter.Love at netkno.com Sun Nov 14 15:43:32 2004 From: Peter.Love at netkno.com (Peter Love) Date: Sun Nov 14 15:44:51 2004 Subject: [Wellington-pm] Next meeting In-Reply-To: <1100467472.6631.26.camel@localhost> References: <1100467472.6631.26.camel@localhost> Message-ID: <4197D184.1000504@netkno.com> > [ ] I would most likely attend the meeting on December 13th > [ ] I would prefer to leave it until February 14th No preference. > The next question is what talks we can get lined up. I recall that > Peter Love volunteered to tell us about his forays into Perl/Tk. Are > you still up for that Peter? Yes, I have had this in my diary for the 13th December -- but 14th February is fine as well. > On a related note, I've been working with the Gtk bindings a bit of late > too, so I could present on that to give the meeting a GUI theme. Um, it'll have a GUI theme anyway (Perl/Tk), perhaps Gtk makes it more GUIish ... From grant at mclean.net.nz Sun Nov 14 15:58:41 2004 From: grant at mclean.net.nz (Grant McLean) Date: Sun Nov 14 15:58:44 2004 Subject: [Wellington-pm] Next meeting In-Reply-To: <4197D184.1000504@netkno.com> References: <1100467472.6631.26.camel@localhost> <4197D184.1000504@netkno.com> Message-ID: <1100469521.6631.38.camel@localhost> On Mon, 2004-11-15 at 10:43, Peter Love wrote: > > On a related note, I've been working with the Gtk bindings a bit of late > > too, so I could present on that to give the meeting a GUI theme. > > Um, it'll have a GUI theme anyway (Perl/Tk), perhaps Gtk makes it more > GUIish ... I guess "to continue the GUI theme" was probably what I meant to say :-) From matt at dessicated.org Sun Nov 14 20:09:19 2004 From: matt at dessicated.org (Matthew Hunt) Date: Sun Nov 14 20:09:22 2004 Subject: [Wellington-pm] Next meeting In-Reply-To: <1100467472.6631.26.camel@localhost> References: <1100467472.6631.26.camel@localhost> Message-ID: <20041115020919.GA49151@chorlton.dessicated.org> On Mon, Nov 15, 2004 at 10:24:32AM +1300, Grant McLean wrote: > Do we want to have a December meeting? The second Monday of the month > is December 13th, which might put it into the silly season. Please > respond to this message indicating your preference: > > [ ] I would most likely attend the meeting on December 13th > [ ] I would prefer to leave it until February 14th > I'd come to the 13th December meeting if I wasn't going to be in the UK at the time. I'm hoping to have something else to do on February 14th as my affections are fully guided by card companies. Incidentally, what's wrong with January? Cheers, Matt. -- Matthew Hunt From grant at mclean.net.nz Sun Nov 14 20:49:48 2004 From: grant at mclean.net.nz (Grant McLean) Date: Sun Nov 14 20:49:55 2004 Subject: [Wellington-pm] Next meeting In-Reply-To: <20041115020919.GA49151@chorlton.dessicated.org> References: <1100467472.6631.26.camel@localhost> <20041115020919.GA49151@chorlton.dessicated.org> Message-ID: <1100486988.12222.6.camel@localhost> On Mon, 2004-11-15 at 15:09, Matthew Hunt wrote: > I'd come to the 13th December meeting if I wasn't going to be in the UK > at the time. Trying to escape the long hot NZ summer? > I'm hoping to have something else to do on February 14th > as my affections are fully guided by card companies. And your significant other would not consider Perl Mongers a "top night out"? > Incidentally, what's wrong with January? A lot of people go on holiday around then, so very low attendance would be expected. Also, speakers might not have much preparation time, what with Christmas/New Year festivities etc. (Although our presenters this month showed that allowing long lead times for preparation is largely unnecessary). Grant From matt at dessicated.org Sun Nov 14 22:06:42 2004 From: matt at dessicated.org (Matthew Hunt) Date: Sun Nov 14 22:06:44 2004 Subject: [Wellington-pm] Next meeting In-Reply-To: <1100486988.12222.6.camel@localhost> References: <1100467472.6631.26.camel@localhost> <20041115020919.GA49151@chorlton.dessicated.org> <1100486988.12222.6.camel@localhost> Message-ID: <20041115040642.GB49151@chorlton.dessicated.org> On Mon, Nov 15, 2004 at 03:49:48PM +1300, Grant McLean wrote: > Trying to escape the long hot NZ summer? Yeah, something like that. Though on a day like today, I do wonder... I'll miss the daylight hours though. > And your significant other would not consider Perl Mongers a "top night > out"? Well, I haven't asked her, but my guess is that she wouldn't. I don't think that I'll suggest it, on balance. > A lot of people go on holiday around then, so very low attendance would > be expected. Also, speakers might not have much preparation time, what > with Christmas/New Year festivities etc. (Although our presenters this > month showed that allowing long lead times for preparation is largely > unnecessary). All fair points. I hope to catch up with you all in March then. Have there been any moves made on the social meetings side of things? Maybe we could just do a pub meet (or similar) in the first week of December if people are keen for a silly season drink. Cheers, Matt. -- Matthew Hunt From jarich at perltraining.com.au Mon Nov 22 18:21:22 2004 From: jarich at perltraining.com.au (Jacinta Richardson) Date: Mon Nov 22 18:21:32 2004 Subject: [Wellington-pm] Last minute OSDC reminder Message-ID: <41A28282.4040406@perltraining.com.au> G'day Folk, This is a quick reminder that time is running out to register for the first Open Source Developers' Conference, running in Melbourne on December 1st - 3rd at Monash Univerity, Caulfield Campus. Registrations can be made at: http://www.osdc.com.au/registration/index.html You'll find the timetable at: http://www.osdc.com.au/news/timetable.html and see that we've got three days packed full of a huge variety of interesting talks. Highlights include 2 keynote speeches from Dr Damian Conway, an appearance from Nathan Torkington and the big conference dinner which comes included in your registration. Bring your friends along for the best conference you'll get to this year. All the best, Jacinta OSDC Programme Chair -- ("`-''-/").___..--''"`-._ | Jacinta Richardson | `6_ 6 ) `-. ( ).`-.__.`) | Perl Training Australia | (_Y_.)' ._ ) `._ `. ``-..-' | +61 3 9354 6001 | _..`--'_..-_/ /--'_.' ,' | contact@perltraining.com.au | (il),-'' (li),' ((!.-' | www.perltraining.com.au | From sam at vilain.net Tue Nov 23 15:39:05 2004 From: sam at vilain.net (Sam Vilain) Date: Tue Nov 23 15:39:11 2004 Subject: [Wellington-pm] Last minute OSDC reminder In-Reply-To: <41A28282.4040406@perltraining.com.au> References: <41A28282.4040406@perltraining.com.au> Message-ID: <41A3ADF9.7070906@vilain.net> Jacinta Richardson wrote: > G'day Folk, > > This is a quick reminder that time is running out to register for the > first Open Source Developers' Conference, running in Melbourne on > December 1st - 3rd at Monash Univerity, Caulfield Campus. > And if you get there by Friday there's one of the biggest outdoor parties in Australia happening in the same city: http://www.earthcore.com.au/ -- Sam Vilain, sam /\T vilain |><>T net, PGP key ID: 0x05B52F13 (include my PGP key ID in personal replies to avoid spam filtering) From grant at mclean.net.nz Wed Nov 24 01:56:44 2004 From: grant at mclean.net.nz (Grant McLean) Date: Wed Nov 24 01:57:00 2004 Subject: [Wellington-pm] [Fwd: Newsletter from O'Reilly UG Program, November 23] Message-ID: <1101283004.3302.22.camel@localhost> -----Forwarded Message----- > From: Marsee Henon > To: perlmongers@catalyst.net.nz > Subject: Newsletter from O'Reilly UG Program, November 23 > Date: Tue, 23 Nov 2004 17:13:26 -0800 > > ================================================================ > O'Reilly News for User Group Members > November 23, 2004 > ================================================================ > ---------------------------------------------------------------- > Book News > ---------------------------------------------------------------- > -Treo Fan Book > -PowerBook Fan Book > -iBook Fan Book > -Xbox Fan Book > -Securing Windows Server 2003 > -The CSS Anthology: 101 Essential Tips, Tricks & Hacks > -Oracle Utilities Pocket Reference > -Programmer's Ultimate Security DeskRef > -Unit Test Frameworks > -Inside the Spam Cartel > -PC Hacks > -Degunking Your Email, Spam, and Viruses > -Gaming Hacks > -Smart Home Hacks > -Head First Design Patterns > -Knoppix Hacks > -Windows to Linux Migration Toolkit > ---------------------------------------------------------------- > Upcoming Events > ---------------------------------------------------------------- > -Wil Wheaton ("Just a Geek"), Barnes & Noble, > Huntington Beach, CA--November 30 > -Nathan Torkington ("Perl Cookbook"), Open Source > Developers' Conference, Melbourne, Australia--December 1-3 > -Gordon Meyer ("Smart Home Hacks"), DigitalGuru, > Sunnyvale, CA--December 15 > ---------------------------------------------------------------- > Conference News > ---------------------------------------------------------------- > -Registration is Open for O'Reilly Emerging Technology Conference, > San Diego, CA-- March 14-17, 2005 > ---------------------------------------------------------------- > News > ---------------------------------------------------------------- > -O'Reilly author Wil Wheaton Just Added as a Speaker at Macworld > San Francisco > -Interesting Work for Interesting People > -Hacks for Smart Homes > -"Spam Kings" Author Shares Insights, Spam-Prevention Tips > -Open Source Licenses Are Not All the Same > -make: The Evolution and Alternatives > -The Youngest "Learning Python" Fan > -Write a Webserver in 100 Lines of Code or Less > -iPod Photo: Breakthrough Device or Work in Progress? > -Building Simple Lists Using Strings in VBA > -Skins and Themes > -Extending Struts > -Take the ONJava.com Survey > -Creating iPod Tattoos > -Could Ringtones Be More Annoying?! > ---------------------------------------------------------------- > >From Your Peers > ---------------------------------------------------------------- > -First Annual New York Technical Community Holiday Party, NY, NY-- > December 15 > -London Perl Workshop, London, UK--December 11 > ================================================ > Book News > ================================================ > Did you know you can request a free book to review for your > group? Ask your group leader for more information. > > For book review writing tips and suggestions, go to: > http://ug.oreilly.com/bookreviews.html > > Don't forget, you can receive 20% off any O'Reilly, No Starch, > Paraglyph, Pragmatic Bookshelf, SitePoint, or Syngress book you > purchase directly from O'Reilly. > Just use code DSUG when ordering online or by phone 800-998-9938. > http://www.oreilly.com/ > > ***Free ground shipping is available for online orders of at > least $29.95 that go to a single U.S. address. This offer > applies to U.S. delivery addresses in the 50 states and Puerto Rico. > For more details, go to: > http://www.oreilly.com/news/freeshipping_0703.html > > ---------------------------------------------------------------- > New Releases > ---------------------------------------------------------------- > ***Treo Fan Book > Publisher: O'Reilly > ISBN: 0596008163 > Owners of the Treo smartphone from palmOne will master their revolutionary > little do-all device in no time flat with the new "Treo Fan Book." This > unbeatable reference guide contains all the information people need--and > want--to know about the combined mobile phone/Palm-powered > organizer/wireless email, text messaging, and web-browsing tool/digital > camera. > http://www.oreilly.com/catalog/treofb/index.html > > > ***PowerBook Fan Book > Publisher: O'Reilly > ISBN: 0596008171 > This is the perfect guide for mastering all the features and taking > advantage of the advanced capabilities of Apple's most desirable laptop. > The "PowerBook Fan Book" takes readers through the process of getting > familiar with their new machine and OS X Panther, learning handy tricks > and using high-end features, and finding out about little-known but > gotta-have accessories for their sleek and speedy new PowerBook. > http://www.oreilly.com/catalog/powerbkfb/index.html > > > ***iBook Fan Book > Publisher: O'Reilly > ISBN: 0596008619 > Anyone who owns an ultra-thin iBook can count on the "iBook Fan Book" to > give them everything they need to make the stylish little white wonder > work--and play--just as hard as they do. The book covers: getting familiar > with Mac OS X Panther; organizing a digital lifestyle; using advanced features; > enjoying iBook at home, at the office, and on the go; minimizing time and > stress; and maximizing fun and productivity. > http://www.oreilly.com/catalog/ibkfanbk/index.html > > > ***Xbox Fan Book > Publisher: O'Reilly > ISBN: 0596008848 > With cool 3D graphics, mind-boggling animation, and > devastatingly real audio, Microsoft's Xbox is the most powerful and > popular gaming machine ever created. And now, the half-million (and > growing) gamers who own one have a reliable, all-purpose reference book > to guide them to the ultimate video game triumph: the top score! The "Xbox > Fan Book" covers using the console, enhancing the multimedia experience, > online play, recommended games like Halo, and accessories such as the > Xbox DVD Playback Kit. > http://www.oreilly.com/catalog/xboxfanbk/index.html > > > ***Securing Windows Server 2003 > Publisher: O'Reilly > ISBN: 0596006853 > If you use Windows 2003 Server at a small- to medium-sized organization, > or if you use Microsoft's Small Business Server, this thorough yet concise > tutorial offers the hands-on advice you need to secure your network. The > book focuses on ways to plan and implement a secure operating environment, > using real-world examples to show you how various security concepts relate > to your own system. Read it cover to cover to create and implement a > security plan, or use individual chapters as standalone lessons. > http://www.oreilly.com/catalog/securews/ > > Chapter 4, "File System Security," is available online: > http://www.oreilly.com/catalog/securews/chapter/index.html > > > ***The CSS Anthology: 101 Essential Tips, Tricks & Hacks > Publisher: SitePoint > ISBN: 0957921888 > Make your site easier to maintain and faster to load with Cascading Style > Sheets. This book answers the 101 most common CSS questions about > everything from styling text to using CSS for layout. Plus, you'll learn > how to use CSS to create accessible and standards-compliant web sites. All > solutions and effects are cross-browser compatible and easy to customize. > http://www.oreilly.com/catalog/0957921888/ > > > ***Oracle Utilities Pocket Reference > Publisher: O'Reilly > ISBN: 0596008996 > "Oracle Utilities Pocket Reference" is a quick-reference guide to the > multitude of Oracle utilities that database administrators use every day. > Packed with information in an easy-to-read format, this compact resource > supplies the syntax and options for whatever utility a DBA needs to > perform a given task. Some of the utilities documented include: > SQL*Loader, for loading data; expdp and exp for exporting data to another > database; oradebug for use in troubleshooting; and loadjava and dropjava > for loading and unloading Java programs. > http://www.oreilly.com/catalog/oracleutilpr/ > > A sample excerpt, "expdp," is available online: > http://www.oreilly.com/catalog/oracleutilpr/ > > > ***Programmer's Ultimate Security DeskRef > Publisher: Syngress > ISBN: 1932266720 > "The Programmer's Ultimate Security DeskRef" is the only complete desk > reference covering multiple languages and their inherent security issues. > It will serve as the programming encyclopedia for almost every major > language in use. While there are many books starting to address the broad > subject of security best practices within the software development > lifecycle, none has yet to address the overarching technical problems of > incorrect function usage. Most books fail to draw the line from covering > best practices security principles to actual code implementation. This > book bridges that gap and covers the most popular programming languages > such as Java, Perl, C++, C#, and Visual Basic. > http://www.oreilly.com/catalog/1932266720/ > > > ***Unit Test Frameworks > Publisher: O'Reilly > ISBN: 0596006896 > This is the only book to explore unit testing as a language-independent, > standalone development methodology. It covers the theory and methodology > of unit test frameworks, offers instruction in unit test development, > provides useful code examples in both Java and C++, and details the most > commonly used frameworks from the XUnit family, including JUnit for Java, > CppUnit for C++, and NUnit for .NET. It also includes the complete source > code for CppUnit for C++ and NUnit for .NET. > http://www.oreilly.com/catalog/unitest/ > > Chapter 3, "The xUnit Family of Unit Test Frameworks," is available > online: > http://www.oreilly.com/catalog/unitest/chapter/index.html > > > ***Inside the Spam Cartel > Publisher: Syngress > ISBN: 1932266860 > "Inside the Spam Cartel" is a methodical, technically explicit expose of > the inner workings of the spam economy. The book offers you a view inside > this dark underworld, the sophistication and sheer size of which will > shock you. You'll meet the characters that control the flow of money as > well as the hackers and programmers committed to keeping the enterprise up > and running. You may disagree with their objectives, but you'll marvel at > their ingenuity and resourcefullness in defeating spam filters, avoiding > identification, and staying one step ahead of the law. > http://www.oreilly.com/catalog/1932266860/ > > > ***PC Hacks > Publisher: O'Reilly > ISBN: 0596007485 > "PC Hacks" shows you how to enhance performance and prevent problems with > your PC. You'll learn about hacking the system board, BIOS, peripherals, > and operating system, and overclocking CPU and video cards, tweaking RAM > timing, and selecting the best performing components. This step-by-step, > hack-by-hack guide covers both Windows and Linux, and includes advice on > reusing an old PC to offload work from newer systems, as well as ways to > prevent security problems. > http://www.oreilly.com/catalog/pchks/ > > Sample hacks are available online: > http://www.oreilly.com/catalog/pchks/chapter/index.html > > > ***Degunking Your Email, Spam, and Viruses > Publisher: Paraglyph Press > ISBN: 193211193X > "Degunking Your Email, Spam, and Viruses" outlines Paraglyph's unique > 12-step Degunking program, written in everyday language for all computer > users, that will teach you all the tried-and-true techniques to keep your > computer clutter-free and running well. The "Degunking with Time > Limitations" chart shows how you can improve your computer's performance > and keep your email better organized, whether you have ten minutes or a > few hours. The book also provides information and links to free utilities > and programs that will help you get rid of viruses, manage your email > better, and protect your computer. > http://www.oreilly.com/catalog/193211193X/ > > > ***Gaming Hacks > Publisher: O'Reilly > ISBN: 0596007140 > It doesn't take long for an avid or just wickedly clever gamer to be > chafed by the limitations of videogame software and hardware. If you want > to go far beyond the obvious, there's a tremendous amount of free fun you > can have by following the creative exploits of the gaming gurus. "Gaming > Hacks" is the indispensable guide to cool things gamers can do to create, > modify, and hack videogame hardware and software. > http://www.oreilly.com/catalog/gaminghks/ > > Five sample hacks are available online: > http://www.oreilly.com/catalog/gaminghks/chapter/index.html > > > ***Smart Home Hacks > Publisher: O'Reilly > ISBN: 0596007221 > "Smart Home Hacks" covers a litany of stand-alone and integrated smart > home solutions designed to enhance safety, comfort, and convenience in new > and existing homes. Learn how to equip your home with motion detectors for > added security, install computer-controlled lights for optimum > convenience, mount an in-home web cam or two purely for entertainment, and > much more. No matter what your technical level may be, this book will help > you achieve the automated home of your dreams. > http://www.oreilly.com/catalog/smarthomehks/ > > Sample hacks are available online: > http://www.oreilly.com/catalog/smarthomehks/chapter/index.html > > > ***Head First Design Patterns > Publisher: O'Reilly > ISBN: 0596007124 > In the manner of O'Reilly's popular new Head First Series, "Head First > Design Patterns" is visually rich and designed for the way your brain > works. Applying teaching techniques developed in response to the latest > research in neurobiology, cognitive science, and learning theory, the book > will load patterns into your brain in a way that sticks. You'll be able to > put what you've learned to work immediately, and you'll find that you're > better at solving software design problems. Become fluent in the language > of Design Patterns by putting your head first. > http://www.oreilly.com/catalog/hfdesignpat/ > > > ***Knoppix Hacks > Publisher: O'Reilly > ISBN: 0596007876 > "Knoppix Hacks" is an invaluable collection of 100 industrial-strength > hacks for new Linux users, power users, and system administrators who are > using or considering the Knoppix Live CD, which is included with the book. > These tips and tools show how to use the live CD to troubleshoot, repair, > upgrade, disinfect, and generally be productive without Windows, and > without the difficulty of installing Linux itself. > http://www.oreilly.com/catalog/knoppixhks/ > > Five sample hacks are available online: > http://www.oreilly.com/catalog/knoppixhks/chapter/index.html > > > ***Windows to Linux Migration Toolkit > Publisher: Syngress > ISBN: 1931836396 > "Windows to Linux Migration Toolkit" is a unique book that offers a > complete solution for migrating from Windows to Linux. It provides > migration process planning, automated migration scripts, > anti-virus/anti-spam solutions, and specific migration and deployment. > http://www.oreilly.com/catalog/1931836396/ > > ================================================ > Upcoming Events > ================================================ > ***For more events, please see: > http://events.oreilly.com/ > > ***Wil Wheaton ("Just a Geek"), Barnes & Noble, > Huntington Beach, CA--November 30 > Don't miss Wil reading from his autobiography. He will be there from > 7:00pm-8:30pm. > > Wil Wheaton's Blog: > http://www.wilwheaton.net/ > > > ***Nathan Torkington ("Perl Cookbook"), Open Source Developers' > Conference, Melbourne, Australia--December 1-3 > Nat gives a keynote presentation on open source trends at this grass roots > style event. > http://www.osdc.com.au/index.html > > > ***Gordon Meyer ("Smart Home Hacks"), DigitalGuru, Sunnyvale, CA-- > December 15 > Gordon makes an appearance at the DigitalGuru Computer Bookshop starting > at 12:30 p.m. DigitalGuru will be offering a 40% discount on Gordon's book > that day. (If you can't wait til December 15, be sure to stop by DigitalGuru > between November 29 and December 10 to take advantage of a > special sale: 40% off ALL O'Reilly books, as well as books by our publishing > partners.) DigitalGuru is located at 546-3 Lawrence Expressway in > Sunnyvale, CA. > http://www.digitalguru.com/index.asp?cookie%5Ftest=1 > > ================================================ > Conference News > ================================================ > ***Registration is Open for 2005 O'Reilly Emerging Technology Conference, > San Diego, CA--March 14-17, 2005 > Early Bird registration for ETech has just opened. This year's conference > theme is "Remix," which infuses ETech's roll-up-your-sleeves tutorials, > to-the-point plenary presentations, and real world focused breakout > sessions. Come to ETech and discover how applications and hardware are > being deconstructed and recombined in unexpected ways. Learn how users and > customers are influencing new interfaces, devices, business models, and > services. For all the scoop on tutorials, featured speakers, and > conference events, check out: > http://conferences.oreillynet.com/etech/ > > User Group members who register before January 31, 2005 get a double > discount. Use code DSUG when you register, and receive 20% off the > "Early Bird" price. > > To register for the conference, go to: > http://conferences.oreillynet.com/cs/et2005/create/ord_et05 > > ================================================ > News From O'Reilly & Beyond > ================================================ > --------------------- > General News > --------------------- > ***O'Reilly author Wil Wheaton at Macworld > Actor, comedian, blogger, and self-described geek Wil Wheaton will deliver > a special feature presentation at Macworld San Francisco. Wheaton will > discuss his personal story, as well as the joys of web design, HTML, and > blogging on Thursday, January 13, 2005 at 9:30 a.m. This > ever-popular actor-turned-writer will also attend a book signing after > his presentation. > > Wil Wheaton's Blog entry: > http://www.wilwheaton.net/mt/archives/001739.php > > Macworld press release: > http://home.businesswire.com/portal/site/google/index.jsp?ndmViewId=news_view&newsId=20041109005168&newsLang=en > > > ***Interesting Work for Interesting People > O'Reilly Media is looking for a web designer; an Office, .NET; and Windows > programming editor; a national account manager; product managers; a > systems analyst; and software engineers; among others. For a complete list > of open positions, visit: > http://jobs.oreilly.com/ > > > ***Hacks for Smart Homes > Implementing home automation may be easier and less expensive than you > ever imagined. By using your computer, your home can become much smarter. > Gordon Meyer, author of "Smart Home Hacks," covers the basics of > automating your home with MisterHouse, an open source home automation > application for Linux, Windows, and Mac OS X. Move a step beyond automatic > lights to a home that actually responds to stimuli. > http://www.onlamp.com/pub/a/onlamp/2004/11/11/smrthome_hks1.html > > > ***"Spam Kings" Author Shares Insights, Spam-Prevention Tips > In this interview with TechSoup, Brian McWilliams talks about the most > effective way to fight spam, anti-spam legislation, why spammers spam, the > types of scam people most often fall for, and much more. > http://www.techsoup.org/howto/articlepage.cfm?ArticleId=566 > > --------------------- > Open Source > --------------------- > ***Open Source Licenses Are Not All the Same > As open source and the Internet continue to grow in popularity, more and > more users and developers come into contact with open source code. Though > the various licenses increase user rights somehow, they all do it in > different ways and with different goals. Steve Fishman categorizes several > popular licenses and explains their implications. > http://www.onlamp.com/pub/a/onlamp/2004/11/18/licenses.html > > > ***make: The Evolution and Alternatives > After 13 years of the O'Reilly classic, "Managing Projects with make, 2nd > Edition," coauthor Andy Oram looks back and summarizes the evolution of > make. With the recent release of "Managing Projects with GNU make, 3rd > Edition," author Robert Mecklenburg offers an adapted excerpt comparing > Ant, IDEs, and make for managing the build process. > http://www.onlamp.com/pub/a/onlamp/2004/11/18/gnumake_3e.html > > > ***The Youngest "Learning Python" Fan > How old do you have to be to appreciate O'Reilly's books? Not very. Tim > Pietzcker shows us how much his 17-month-old son likes "Learning Python," > and other readers chime in with similar experiences (including Chicago > Perl Monger Andy Lester). The appeal of O'Reilly animals proves to be > cross-generational in our latest "Letters." > http://www.oreilly.com/pub/a/oreilly/letters/2004/python_1104.html > > --------------------- > Mac > --------------------- > ***Write a Webserver in 100 Lines of Code or Less > REAL Software programmer and tester Jonathan Johnson shows you the power > and simplicity of developing with REALbasic by walking you through the > building of a working webserver. After this tutorial, you'll not only have > a pratical knowledge or REALbasic, but you'll have a cool little server > too. > http://www.macdevcenter.com/pub/a/mac/2004/11/19/realbasic.html > > > ***iPod Photo: Breakthrough Device or Work in Progress? > After spending three years as the most popular digital music player, the > iPod has evolved. No longer just music to your ears, the new color iPod > photo boasts plenty of eye candy with storage for as many as 25,000 > photos. Is it really everything you ever wanted? Hadley Stern, author of > "iPod & iTunes Hacks," takes an in-depth look with his review. > http://www.macdevcenter.com/pub/a/mac/2004/11/16/ipod_photo.html > > --------------------- > Windows/.NET > --------------------- > ***Building Simple Lists Using Strings in VBA > Visual Basic for Applications (VBA), the language used for scripting > Microsoft Word, isn't really known for its string-processing abilities. > But sometimes, string hacking is a quick and convenient way to solve a > problem, and the string functions VBA does provide are often up to the > task. In this article, Andrew Savikas, author of "Word Hacks," shows you > how to use strings for simple lists. > http://www.windowsdevcenter.com/pub/a/windows/2004/11/16/wdhks_2.html > > > ***Skins and Themes > In his previous column, Jesse Liberty showed you how to use web forms > security to create a personalized site. Here, he builds on that work to > introduce the concepts of skins and themes, which allow users to configure > the look and feel of your site. > http://www.ondotnet.com/pub/a/dotnet/2004/11/15/libertyonwhidbey.html > > --------------------- > Java > --------------------- > ***Extending Struts > With so many web application frameworks available, there's little point > reinventing the wheel, especially when Struts offers remarkable > extensibility. Sunil Patil introduces the three basic means of extending > Struts to achieve custom web application behavior. > http://www.onjava.com/pub/a/onjava/2004/11/10/ExtendingStruts.html > > > ***Take the ONJava.com Survey > We're asking ONJava.com readers to participate in an online survey. You'll > help shape our online editorial direction and influence which book titles > we pursue. And you'll have a chance to win some of our most popular Java > books. > http://www.zoomerang.com/recipient/survey-intro.zgi?p=WEB223X7HZ42HJ > > --------------------- > Digital Media > --------------------- > ***Creating iPod Tattoos > One of the benefits of the Apple-HP iPod partnership is HP's clever idea > to let iPod owners customize their devices using "tattoos." You can > download predesigned ones from the HP site, or create your own with an > inkjet printer. Tony Williams shows you how. > http://digitalmedia.oreilly.com/2004/11/17/ipod_tattoos.html > > > ***Could Ringtones Be More Annoying?! > People absolutely love annoying ringtones, and the annoying effect they > have on everybody else around them. This is really good news for those in > the audio business. > http://digitalmedia.oreilly.com/2004/11/10/drescher_bbq04_ringtone.html > > ================================================ > >From Your Peers > ================================================ > ***First Annual New York Technical Community Holiday Party, > NY, NY--December 15 > Network with hundreds of New York's top IT professionals in a private SoHo > lounge space, where you'll have a chance to connect with the industry's > top vendors and experts. Join authors and fellow IT pros for > presentations, giveaways, open bar, hors d'oeuvres, and a unique > networking opportunity in Manhattan. > Admission is free, RSVP required. > http://nyphp.org/nytchp.php > > > ***London Perl Workshop, London, UK--December 11 > This event is intended to allow Perl beginners to learn from long-standing > members of the community, while also giving the experts a chance to make > easy tasks seem trivial, and hard tasks seem easy. > Imperial College > http://london.pm.org/lpw/ > > > Don't forget to check out the O'Reilly UG wiki to see what user groups > across the globe are up to: > http://wiki.oreillynet.com/usergroups/index.cgi > > > > Until next time-- > > Marsee