From phx-pm-list at grueslayer.com Mon Oct 4 16:45:51 2004 From: phx-pm-list at grueslayer.com (David A. Sinck) Date: Mon Oct 4 16:37:28 2004 Subject: [Phoenix-pm] job opening Message-ID: <16737.50319.406927.940481@magnitude.righthandgraphics.com> The company I'm presently working for is on the search for a mid to senior level perl person to assist in assorted development efforts. Experience using mod_perl and mysql suggested for best results. If you have questions, comments, or concerns, bounce off the website (http://www.incentivelogic.com/) and if questions still remain, I'd be willing to gather them together and post answers if you email me directly. Resumes in plain text (but not obfuscated perl :-) should be sent to jobs@incentivelogic.com. Presently we're seeking local candidates only. Factors beyond my control may induce me to recant. Happy perling. David From bwmetz at att.com Mon Oct 4 17:31:00 2004 From: bwmetz at att.com (Metz, Bobby W, WCS) Date: Mon Oct 4 17:31:30 2004 Subject: [Phoenix-pm] job opening Message-ID: <456FD0E7B215B24ABBAD711614E4A7A20A07B1AF@OCCLUST03EVS1.ugd.att.com> David, Your web-site doesn't list such a position. Can you forward the details? Full or P/T? Skills required? Principal duties? etc? -----Original Message----- From: phoenix-pm-bounces@mail.pm.org [mailto:phoenix-pm-bounces@mail.pm.org]On Behalf Of David A. Sinck Sent: Monday, October 04, 2004 2:46 PM To: phoenix-pm@pm.org Subject: [Phoenix-pm] job opening The company I'm presently working for is on the search for a mid to senior level perl person to assist in assorted development efforts. Experience using mod_perl and mysql suggested for best results. If you have questions, comments, or concerns, bounce off the website (http://www.incentivelogic.com/) and if questions still remain, I'd be willing to gather them together and post answers if you email me directly. Resumes in plain text (but not obfuscated perl :-) should be sent to jobs@incentivelogic.com. Presently we're seeking local candidates only. Factors beyond my control may induce me to recant. Happy perling. David _______________________________________________ Phoenix-pm mailing list Phoenix-pm@mail.pm.org http://www.pm.org/mailman/listinfo/phoenix-pm From phx-pm-list at grueslayer.com Tue Oct 5 10:19:50 2004 From: phx-pm-list at grueslayer.com (David A. Sinck) Date: Tue Oct 5 10:11:10 2004 Subject: [Phoenix-pm] job opening References: <456FD0E7B215B24ABBAD711614E4A7A20A07B1AF@OCCLUST03EVS1.ugd.att.com> Message-ID: <16738.48022.986786.317826@magnitude.righthandgraphics.com> \_ SMTP quoth Metz, Bobby W, WCS on 10/4/2004 17:31 as having spake thusly: \_ \_ Your web-site doesn't list such a position. Odd, isn't it? We're attempting to get qualified folks without necessarily letting just everybody and their brother throw a resume at us. Depending on response, we might open it up to brothers, but for now.... \_ Can you forward the details? Continuing software development using perl/mod_perl/mysql for our service. \_ Full or P/T? My understanding (read written in water) is that it'll be full time contract-to-hire. \_ Skills required? perl/mod_perl/mysql are the primary tech skills. The standard soft skills (good team player, able to document, showers more than once a week, ... ) will be evaluated as well. \_ Principal duties? etc? The work will be helping to improve and customize what we already have in place as part of a team. Further/deeper details available upon submitting a sufficient interesting resume. :-) I'll still take questions, but I think I've likely got all the answers out that I'd be willing to give without having you sitting down for an interview. David From perlguy at earthlink.net Tue Oct 5 11:44:44 2004 From: perlguy at earthlink.net (Douglas E. Miles) Date: Tue Oct 5 11:43:18 2004 Subject: [Phoenix-pm] Meeting 10/07/2004 Message-ID: <4162CF7C.7000308@earthlink.net> Please RSVP... We'll be having a Phoenix.pm meeting Thursday, October 7th at 7:00PM. It will be held at Bowne, which is located at 1500 N. Central Avenue, which is on the Southwest corner of Central and McDowell. The parking lot is gated, so just press the button on the intercom, and tell the receptionist that you are there for the Perl meeting. Park in the lot that is straight ahead from the entrance on the South side of McDowell. Park in any uncovered, non-reserved space. Proceed to the main lobby, which is on the Northeast side of the parking lot. I'll be presenting my templating system, (yes, yet another templating system :) ) covering parsing and design decisions, and looking for feedback. P.S. If there was anyone out there that I talked to about doing a presentation, let me know so we can get you scheduled. From awwaiid at thelackthereof.org Tue Oct 5 11:49:03 2004 From: awwaiid at thelackthereof.org (Brock) Date: Tue Oct 5 11:49:12 2004 Subject: [awwaiid@thelackthereof.org: Re: [Phoenix-pm] Meeting 10/07/2004] Message-ID: <20041005164903.GL31013@thelackthereof.org> I meant for this to go to the list :) --Brock ----- Forwarded message from Brock ----- Date: Tue, 5 Oct 2004 09:48:15 -0700 From: Brock To: "Douglas E. Miles" Subject: Re: [Phoenix-pm] Meeting 10/07/2004 User-Agent: Mutt/1.5.6+20040818i Too short of notice :( Please send info on your templating system to the list after your presentation. --Brock On 2004.10.05.09.44, Douglas E. Miles wrote: | Please RSVP... | | We'll be having a Phoenix.pm meeting Thursday, October 7th at 7:00PM. | It will be held at Bowne, which is located at 1500 N. Central Avenue, | which is on the Southwest corner of Central and McDowell. The parking | lot is gated, so just press the button on the intercom, and tell the | receptionist that you are there for the Perl meeting. Park in the lot | that is straight ahead from the entrance on the South side of McDowell. | Park in any uncovered, non-reserved space. Proceed to the main lobby, | which is on the Northeast side of the parking lot. | | | I'll be presenting my templating system, (yes, yet another templating | system :) ) covering parsing and design decisions, and looking for feedback. | | P.S. If there was anyone out there that I talked to about doing a | presentation, let me know so we can get you scheduled. | _______________________________________________ | Phoenix-pm mailing list | Phoenix-pm@mail.pm.org | http://www.pm.org/mailman/listinfo/phoenix-pm ----- End forwarded message ----- From awwaiid at thelackthereof.org Tue Oct 5 11:57:16 2004 From: awwaiid at thelackthereof.org (Brock) Date: Tue Oct 5 11:57:26 2004 Subject: [Phoenix-pm] job opening In-Reply-To: <16738.48022.986786.317826@magnitude.righthandgraphics.com> References: <456FD0E7B215B24ABBAD711614E4A7A20A07B1AF@OCCLUST03EVS1.ugd.att.com> <16738.48022.986786.317826@magnitude.righthandgraphics.com> Message-ID: <20041005165716.GM31013@thelackthereof.org> On 2004.10.05.08.19, David A. Sinck wrote: | The work will be helping to improve and customize what we already have | in place as part of a team. | | Further/deeper details available upon submitting a sufficient | interesting resume. :-) Ooo... mysterious. But not really appreciated. You wouldn't like it if we submitted resumes which were practically blank, and add "Further/deeper details available during interview", eh? OK, perhaps I'm being a bit unfair... but I think you get the point. I feel as if you are toying with us rather than providing us with a serious professional opprotunity. On the other hand, this seems to be a pretty common practice. Being common doesn't make it Right though. --Brock From friedman at highwire.stanford.edu Tue Oct 5 11:59:28 2004 From: friedman at highwire.stanford.edu (Michael Friedman) Date: Tue Oct 5 11:59:42 2004 Subject: [Phoenix-pm] Meeting 10/07/2004 In-Reply-To: <4162CF7C.7000308@earthlink.net> References: <4162CF7C.7000308@earthlink.net> Message-ID: And here I was, just thinking about setting up a website and looking at templating systems... I'll be there. -- Mike On Oct 5, 2004, at 9:44 AM, Douglas E. Miles wrote: > Please RSVP... > > We'll be having a Phoenix.pm meeting Thursday, October 7th at 7:00PM. > It will be held at Bowne, which is located at 1500 N. Central Avenue, > which is on the Southwest corner of Central and McDowell. The parking > lot is gated, so just press the button on the intercom, and tell the > receptionist that you are there for the Perl meeting. Park in the lot > that is straight ahead from the entrance on the South side of McDowell. > Park in any uncovered, non-reserved space. Proceed to the main lobby, > which is on the Northeast side of the parking lot. > > > I'll be presenting my templating system, (yes, yet another templating > system :) ) covering parsing and design decisions, and looking for > feedback. > > P.S. If there was anyone out there that I talked to about doing a > presentation, let me know so we can get you scheduled. > _______________________________________________ > Phoenix-pm mailing list > Phoenix-pm@mail.pm.org > http://www.pm.org/mailman/listinfo/phoenix-pm > --------------------------------------------------------------------- Michael Friedman HighWire Press, Stanford Southwest Phone: 480-456-0880 Tempe, Arizona FAX: 270-721-8034 --------------------------------------------------------------------- From scott at illogics.org Tue Oct 5 13:09:17 2004 From: scott at illogics.org (Scott Walters) Date: Tue Oct 5 13:11:29 2004 Subject: [Phoenix-pm] Meeting 10/07/2004 In-Reply-To: <4162CF7C.7000308@earthlink.net> References: <4162CF7C.7000308@earthlink.net> Message-ID: <20041005180917.GQ18376@illogics.org> I've got goat milking practice. I can't make it. I could do the part 3 of Perl 6-isms. The last one kind of sucked but I could do better for the third one, in theory, if I spent more than 20 minutes putting it together. I could also do something on web scraping. I've got a few examples of that sitting around. I've got a script that downloads my mail from budweiser's web based email and stores in an mbox suitable for training SpamAssassin on. I've got another example that downloads every picture from a gallery that tries to protect its images. I could also do something else in my Perl bytecode series. I wrote Perl6::Contexts a couple months ago and it would be a good springboard for drowning depth discussion of the Perl 5 virtual machine. How many of you people blog about Perl? I blog to Advogato, use.perl.org, and infrequently, Perl Monks. If other people in town are hooked on the blogdrug, I'd like to set up a feed of our collective posts, sort of like planet.perl.org. Oh, The Perl Review is in print now. I've got the first print edition (funny since since I never got around to downloading most of the PDFs). So orders yours today! http://www.theperlreview.com Thanks all for now, I guess. -scott On 0, "Douglas E. Miles" wrote: > Please RSVP... > > We'll be having a Phoenix.pm meeting Thursday, October 7th at 7:00PM. > It will be held at Bowne, which is located at 1500 N. Central Avenue, > which is on the Southwest corner of Central and McDowell. The parking > lot is gated, so just press the button on the intercom, and tell the > receptionist that you are there for the Perl meeting. Park in the lot > that is straight ahead from the entrance on the South side of McDowell. > Park in any uncovered, non-reserved space. Proceed to the main lobby, > which is on the Northeast side of the parking lot. > > > I'll be presenting my templating system, (yes, yet another templating > system :) ) covering parsing and design decisions, and looking for feedback. > > P.S. If there was anyone out there that I talked to about doing a > presentation, let me know so we can get you scheduled. > _______________________________________________ > Phoenix-pm mailing list > Phoenix-pm@mail.pm.org > http://www.pm.org/mailman/listinfo/phoenix-pm From scott at illogics.org Tue Oct 5 13:38:26 2004 From: scott at illogics.org (Scott Walters) Date: Tue Oct 5 13:40:33 2004 Subject: [Phoenix-pm] job opening In-Reply-To: <20041005165716.GM31013@thelackthereof.org> References: <456FD0E7B215B24ABBAD711614E4A7A20A07B1AF@OCCLUST03EVS1.ugd.att.com> <16738.48022.986786.317826@magnitude.righthandgraphics.com> <20041005165716.GM31013@thelackthereof.org> Message-ID: <20041005183826.GR18376@illogics.org> If it's anything like ccbill.com, the first person to interview will post a full account of what transpired ;) I might apply, but ya know, I'm so cynical at this stage of my life, the only real purpose I see to my attending events such as "work" and "interviews" is to critique the inaness of it all by saying mean things. I guess that makes me a consultant. Who was it that said "Since clients don't know what they need it's surprising that they know exactly when they need it"? Every worthwhile programming task was completed in the 1970's. The switched phone network was finished, airlines has their reservation systems running, Eliza was chatting up humans, humans were navigated to the moon and back... since then we've just been doing the same things on different scales for different clients with any hope of code reuse yanked away by tech trends and "IP", whereby the moon landing navigation sold to your competitor or father isn't good enough for you, and your father or competitor's moon landing software is too good for you. God damn humans. Seriously, I'm so badly traumitized by past employment I don't think I could work in the tech sector again. It's my lot to sit at home and eat ramen and write CPAN modules, sometimes pausing to guess where rent might come from. -scott On 0, Brock wrote: > On 2004.10.05.08.19, David A. Sinck wrote: > | The work will be helping to improve and customize what we already have > | in place as part of a team. > | > | Further/deeper details available upon submitting a sufficient > | interesting resume. :-) > > Ooo... mysterious. But not really appreciated. You wouldn't like it if > we submitted resumes which were practically blank, and add > "Further/deeper details available during interview", eh? > > OK, perhaps I'm being a bit unfair... but I think you get the point. I > feel as if you are toying with us rather than providing us with a > serious professional opprotunity. On the other hand, this seems to be a > pretty common practice. Being common doesn't make it Right though. > > --Brock > > _______________________________________________ > Phoenix-pm mailing list > Phoenix-pm@mail.pm.org > http://www.pm.org/mailman/listinfo/phoenix-pm From awwaiid at thelackthereof.org Tue Oct 5 13:52:41 2004 From: awwaiid at thelackthereof.org (Brock) Date: Tue Oct 5 13:52:53 2004 Subject: [Phoenix-pm] job opening In-Reply-To: <20041005183826.GR18376@illogics.org> References: <456FD0E7B215B24ABBAD711614E4A7A20A07B1AF@OCCLUST03EVS1.ugd.att.com> <16738.48022.986786.317826@magnitude.righthandgraphics.com> <20041005165716.GM31013@thelackthereof.org> <20041005183826.GR18376@illogics.org> Message-ID: <20041005185241.GO31013@thelackthereof.org> On 2004.10.05.11.38, Scott Walters wrote: | Seriously, I'm so badly traumitized by past employment I don't think | I could work in the tech sector again. It's my lot to sit at home and | eat ramen and write CPAN modules, sometimes pausing to guess where | rent might come from. lucky bastard --Brock From bwmetz at att.com Tue Oct 5 14:05:26 2004 From: bwmetz at att.com (Metz, Bobby W, WCS) Date: Tue Oct 5 14:06:29 2004 Subject: [Phoenix-pm] job opening Message-ID: <456FD0E7B215B24ABBAD711614E4A7A20A0B5DAF@OCCLUST03EVS1.ugd.att.com> OK, I'll bite. How "do" you pay the rent? Hopefully it doesn't involve any trips to Mill Ave. ;-) -----Original Message----- From: phoenix-pm-bounces@mail.pm.org [mailto:phoenix-pm-bounces@mail.pm.org]On Behalf Of Scott Walters Sent: Tuesday, October 05, 2004 11:38 AM To: Brock Cc: phoenix-pm@pm.org Subject: Re: [Phoenix-pm] job opening If it's anything like ccbill.com, the first person to interview will post a full account of what transpired ;) I might apply, but ya know, I'm so cynical at this stage of my life, the only real purpose I see to my attending events such as "work" and "interviews" is to critique the inaness of it all by saying mean things. I guess that makes me a consultant. Who was it that said "Since clients don't know what they need it's surprising that they know exactly when they need it"? Every worthwhile programming task was completed in the 1970's. The switched phone network was finished, airlines has their reservation systems running, Eliza was chatting up humans, humans were navigated to the moon and back... since then we've just been doing the same things on different scales for different clients with any hope of code reuse yanked away by tech trends and "IP", whereby the moon landing navigation sold to your competitor or father isn't good enough for you, and your father or competitor's moon landing software is too good for you. God damn humans. Seriously, I'm so badly traumitized by past employment I don't think I could work in the tech sector again. It's my lot to sit at home and eat ramen and write CPAN modules, sometimes pausing to guess where rent might come from. -scott On 0, Brock wrote: > On 2004.10.05.08.19, David A. Sinck wrote: > | The work will be helping to improve and customize what we already have > | in place as part of a team. > | > | Further/deeper details available upon submitting a sufficient > | interesting resume. :-) > > Ooo... mysterious. But not really appreciated. You wouldn't like it if > we submitted resumes which were practically blank, and add > "Further/deeper details available during interview", eh? > > OK, perhaps I'm being a bit unfair... but I think you get the point. I > feel as if you are toying with us rather than providing us with a > serious professional opprotunity. On the other hand, this seems to be a > pretty common practice. Being common doesn't make it Right though. > > --Brock > > _______________________________________________ > Phoenix-pm mailing list > Phoenix-pm@mail.pm.org > http://www.pm.org/mailman/listinfo/phoenix-pm _______________________________________________ Phoenix-pm mailing list Phoenix-pm@mail.pm.org http://www.pm.org/mailman/listinfo/phoenix-pm From billn at billn.net Tue Oct 5 14:37:19 2004 From: billn at billn.net (Bill Nash) Date: Tue Oct 5 14:40:17 2004 Subject: [Phoenix-pm] job opening In-Reply-To: <20041005183826.GR18376@illogics.org> Message-ID: On Tue, 5 Oct 2004, Scott Walters wrote: > Every worthwhile programming task was completed in the 1970's. The switched > phone network was finished, airlines has their reservation systems running, > Eliza was chatting up humans, humans were navigated to the moon and back... > since then we've just been doing the same things on different scales for I don't see how packet switching voice, as a revolution over line switching, falls into this category. Neither do self-healing networks, unless you count cellular, and I don't. Lossless 12:1 audio compression in software clearly wasn't in the This Era project plan, either. Incidentally, Frontier turned down it's last operational 'party line' system in the late 90s. I'd hardly call the domestic line switched system complete until that point. I'm pretty sure automated exploration of the human genome, much less the concept of practical computational genetic algorithms, was barely a twinkle in some doctor's pants, in the 70s. Glucose powered chips in the blood stream to monitor vitals? Get outta here. The control systems for such a feat were surely the product of a social event whose theme is best summarized by Pat Boone's cover of "Smoke on the Water". Or not. I think NASA is going to disagree with you a lot, too. Otherwise, they wouldn't be shopping for off-the-shelf products to plug into their Mars landers, since they'd already have it all. For that matter, I'm pretty sure the concept of a radio tuner with a 150khz to 3+ghz tuning range, almost completely realized in a single DSP chip, was on the radar either. Being able to park one anywhere on the planet you can get power, and being able to tune it from anywhere else on the planet, as a basic civilian, was probably just as sneaky a concept. Yes, I own one of these. > Seriously, I'm so badly traumitized by past employment I don't think > I could work in the tech sector again. It's my lot to sit at home and > eat ramen and write CPAN modules, sometimes pausing to guess where > rent might come from. If it didn't kill you, and it didn't make you stronger, Darwin still won. - billn From scott at illogics.org Tue Oct 5 15:16:31 2004 From: scott at illogics.org (Scott Walters) Date: Tue Oct 5 15:18:41 2004 Subject: [Phoenix-pm] job opening In-Reply-To: <456FD0E7B215B24ABBAD711614E4A7A20A0B5DAF@OCCLUST03EVS1.ugd.att.com> References: <456FD0E7B215B24ABBAD711614E4A7A20A0B5DAF@OCCLUST03EVS1.ugd.att.com> Message-ID: <20041005201631.GT18376@illogics.org> Let me put it this way. I had a very cool job in Minnesota before I moved down here 6 or 7 years ago. It didn't pay particularly well, but it was in a researchish environment in a University business incubator. My girlfriend got a good job down here that paid a lot of money. Let's just say she wears the pants in the family now. I make enough consulting to pay my private bills and expenses but not enough to afford a car or a laptop that doesn't suck ass. I've been trying to "grow" the business and the plan is to one day have her retire and me paying the bills. But consulting has only declined and they keep giving her promotions and raises. I took up consulting projects to make the transitions between paying jobs easier as I got laid off from each company I worked for (usually because they went out of business or came close, though I'm sure my attitude played a role in a few cases). In the case of Motorola, I resigned, essentially. I've worked for close to a dozen tech companies now and I honestly don't think I could stomach another one. I'm staying busy enough I haven't quite gotten around to doing pr0n or serious Java projects, but I keep telling myself I can fall back on one of those if need be. If I had more free time, I'd look into things like this, but I'm massively underreporting my hours right now to encourage a flow of business from the few clients I already havee. I've tried to get paper routes and jobs like that to help with the bills and utterly failed. No one wants to hire a 30 year old for a non-skilled job regardless of what the movies say. -scott On 0, "Metz, Bobby W, WCS" wrote: > OK, I'll bite. How "do" you pay the rent? Hopefully it doesn't involve > any trips to Mill Ave. ;-) > > -----Original Message----- > From: phoenix-pm-bounces@mail.pm.org > [mailto:phoenix-pm-bounces@mail.pm.org]On Behalf Of Scott Walters > Sent: Tuesday, October 05, 2004 11:38 AM > To: Brock > Cc: phoenix-pm@pm.org > Subject: Re: [Phoenix-pm] job opening > > > If it's anything like ccbill.com, the first person to interview will > post a full account of what transpired ;) > > I might apply, but ya know, I'm so cynical at this stage of my life, > the only real purpose I see to my attending events such as "work" > and "interviews" is to critique the inaness of it all by saying mean > things. > I guess that makes me a consultant. > > Who was it that said "Since clients don't know what they need it's > surprising > that they know exactly when they need it"? > > Every worthwhile programming task was completed in the 1970's. The > switched > phone network was finished, airlines has their reservation systems > running, > Eliza was chatting up humans, humans were navigated to the moon and > back... > since then we've just been doing the same things on different scales for > different clients with any hope of code reuse yanked away by tech trends > and "IP", whereby the moon landing navigation sold to your competitor > or father isn't good enough for you, and your father or competitor's > moon landing software is too good for you. God damn humans. > > Seriously, I'm so badly traumitized by past employment I don't think > I could work in the tech sector again. It's my lot to sit at home and > eat ramen and write CPAN modules, sometimes pausing to guess where > rent might come from. > > -scott > > On 0, Brock wrote: > > On 2004.10.05.08.19, David A. Sinck wrote: > > | The work will be helping to improve and customize what we already > have > > | in place as part of a team. > > | > > | Further/deeper details available upon submitting a sufficient > > | interesting resume. :-) > > > > Ooo... mysterious. But not really appreciated. You wouldn't like it if > > we submitted resumes which were practically blank, and add > > "Further/deeper details available during interview", eh? > > > > OK, perhaps I'm being a bit unfair... but I think you get the point. I > > feel as if you are toying with us rather than providing us with a > > serious professional opprotunity. On the other hand, this seems to be > a > > pretty common practice. Being common doesn't make it Right though. > > > > --Brock > > > > _______________________________________________ > > Phoenix-pm mailing list > > Phoenix-pm@mail.pm.org > > http://www.pm.org/mailman/listinfo/phoenix-pm > _______________________________________________ > Phoenix-pm mailing list > Phoenix-pm@mail.pm.org > http://www.pm.org/mailman/listinfo/phoenix-pm From phx-pm-list at grueslayer.com Tue Oct 5 15:28:57 2004 From: phx-pm-list at grueslayer.com (David A. Sinck) Date: Tue Oct 5 15:20:18 2004 Subject: [Phoenix-pm] job opening References: <456FD0E7B215B24ABBAD711614E4A7A20A07B1AF@OCCLUST03EVS1.ugd.att.com> <16738.48022.986786.317826@magnitude.righthandgraphics.com> <20041005165716.GM31013@thelackthereof.org> Message-ID: <16739.1033.564530.48740@magnitude.righthandgraphics.com> \_ SMTP quoth Brock on 10/5/2004 09:57 as having spake thusly: \_ \_ On 2004.10.05.08.19, David A. Sinck wrote: \_ | The work will be helping to improve and customize what we already have \_ | in place as part of a team. \_ | \_ | Further/deeper details available upon submitting a sufficient \_ | interesting resume. :-) \_ \_ Ooo... mysterious. But not really appreciated. You wouldn't like it if \_ we submitted resumes which were practically blank, and add \_ "Further/deeper details available during interview", eh? You haven't seen some of the winner resume's I've seen from assorted sources over time. :-( \_ OK, perhaps I'm being a bit unfair... but I think you get the \_ point. I understand where you're coming from, however if you can't deduce roughly what we do from our website then we've got a marketing problem, and given that fact that we're attempting to hire, there's some implication that there's enough business that the website is useful at determining that. :-) \_ I \_ feel as if you are toying with us rather than providing us with a \_ serious professional opprotunity. On the other hand, this seems to be a \_ pretty common practice. Being common doesn't make it Right though. Nope, but there's a limited amount of time I want to spend answering questions about what it is we do when I'm pretty sure it's covered on the website one way or the other. I'm not against giving more details, but filling everyone's email up with them is perhaps not the best method, whereas an interview after you've perused the website and decided to give it a go.... David From intertwingled at qwest.net Mon Oct 4 15:20:47 2004 From: intertwingled at qwest.net (Anthony Nemmer) Date: Tue Oct 5 15:21:09 2004 Subject: [Phoenix-pm] job opening In-Reply-To: <20041005201631.GT18376@illogics.org> References: <456FD0E7B215B24ABBAD711614E4A7A20A0B5DAF@OCCLUST03EVS1.ugd.att.com> <20041005201631.GT18376@illogics.org> Message-ID: <4161B09F.9020708@qwest.net> Quit yer bellyaching! Scott Walters wrote: > Let me put it this way. I had a very cool job in Minnesota before I moved > down here 6 or 7 years ago. It didn't pay particularly well, but it was in a > researchish environment in a University business incubator. My girlfriend > got a good job down here that paid a lot of money. Let's just say she > wears the pants in the family now. I make enough consulting to pay my > private bills and expenses but not enough to afford a car or a laptop > that doesn't suck ass. I've been trying to "grow" the business and the > plan is to one day have her retire and me paying the bills. But consulting has only > declined and they keep giving her promotions and raises. I took up consulting > projects to make the transitions between paying jobs easier as I got laid off > from each company I worked for (usually because they went out of business or > came close, though I'm sure my attitude played a role in a few cases). In > the case of Motorola, I resigned, essentially. I've worked for close to a dozen > tech companies now and I honestly don't think I could stomach another one. > I'm staying busy enough I haven't quite gotten around to doing pr0n or > serious Java projects, but I keep telling myself I can fall back on one of > those if need be. If I had more free time, I'd look into things like this, but > I'm massively underreporting my hours right now to encourage a flow of > business from the few clients I already havee. I've tried to get paper routes > and jobs like that to help with the bills and utterly failed. No one wants to > hire a 30 year old for a non-skilled job regardless of what the movies say. > > -scott > > > On 0, "Metz, Bobby W, WCS" wrote: > >>OK, I'll bite. How "do" you pay the rent? Hopefully it doesn't involve >>any trips to Mill Ave. ;-) >> >>-----Original Message----- >>From: phoenix-pm-bounces@mail.pm.org >>[mailto:phoenix-pm-bounces@mail.pm.org]On Behalf Of Scott Walters >>Sent: Tuesday, October 05, 2004 11:38 AM >>To: Brock >>Cc: phoenix-pm@pm.org >>Subject: Re: [Phoenix-pm] job opening >> >> >>If it's anything like ccbill.com, the first person to interview will >>post a full account of what transpired ;) >> >>I might apply, but ya know, I'm so cynical at this stage of my life, >>the only real purpose I see to my attending events such as "work" >>and "interviews" is to critique the inaness of it all by saying mean >>things. >>I guess that makes me a consultant. >> >>Who was it that said "Since clients don't know what they need it's >>surprising >>that they know exactly when they need it"? >> >>Every worthwhile programming task was completed in the 1970's. The >>switched >>phone network was finished, airlines has their reservation systems >>running, >>Eliza was chatting up humans, humans were navigated to the moon and >>back... >>since then we've just been doing the same things on different scales for >>different clients with any hope of code reuse yanked away by tech trends >>and "IP", whereby the moon landing navigation sold to your competitor >>or father isn't good enough for you, and your father or competitor's >>moon landing software is too good for you. God damn humans. >> >>Seriously, I'm so badly traumitized by past employment I don't think >>I could work in the tech sector again. It's my lot to sit at home and >>eat ramen and write CPAN modules, sometimes pausing to guess where >>rent might come from. >> >>-scott >> >>On 0, Brock wrote: >> >>>On 2004.10.05.08.19, David A. Sinck wrote: >>>| The work will be helping to improve and customize what we already >> >>have >> >>>| in place as part of a team. >>>| >>>| Further/deeper details available upon submitting a sufficient >>>| interesting resume. :-) >>> >>>Ooo... mysterious. But not really appreciated. You wouldn't like it if >>>we submitted resumes which were practically blank, and add >>>"Further/deeper details available during interview", eh? >>> >>>OK, perhaps I'm being a bit unfair... but I think you get the point. I >>>feel as if you are toying with us rather than providing us with a >>>serious professional opprotunity. On the other hand, this seems to be >> >>a >> >>>pretty common practice. Being common doesn't make it Right though. >>> >>>--Brock >>> >>>_______________________________________________ >>>Phoenix-pm mailing list >>>Phoenix-pm@mail.pm.org >>>http://www.pm.org/mailman/listinfo/phoenix-pm >> >>_______________________________________________ >>Phoenix-pm mailing list >>Phoenix-pm@mail.pm.org >>http://www.pm.org/mailman/listinfo/phoenix-pm > > _______________________________________________ > Phoenix-pm mailing list > Phoenix-pm@mail.pm.org > http://www.pm.org/mailman/listinfo/phoenix-pm > > -- SKYKING, SKYKING, DO NOT ANSWER. From scott at illogics.org Tue Oct 5 15:40:04 2004 From: scott at illogics.org (Scott Walters) Date: Tue Oct 5 15:42:10 2004 Subject: [Phoenix-pm] job opening In-Reply-To: References: <20041005183826.GR18376@illogics.org> Message-ID: <20041005204004.GU18376@illogics.org> Hey billn. Always good to see your text. I take it as a compliment that you consider my banter worthy of a reply. One thing I like about forums out of the main drag is I can be a little bit less correct and a little more melodramatic when arguing a point - sort of like how politicians pander exclusively to people with no knowledge of any topic. (Obviously I give Phoenix.PM more credit than that but I'm not trying to get elected either.) However, melodrama aside, I do have a point. None of the things you listed save labor on a scale beyond a room full of researchers. Many of them offer up new products to market, even enjoyable products, but none of them further elevate humananity out of drudgery further than what was accomplished by 1980. But that's moot. My real complaint was something I'd rather hint at than say: my jobs were banal. Of the dozens of "ecomm" websites I slaved away to create under deadline, only one is still online. The other companies folded. This is a blow to a pride that's already been injured by having to write ecomm websites in the first place. Obviously, if I'd been working on the human genome project, I'd have no case to complain. And it isn't venting if my problems are my fault rather than the world's, so I have to misrepresent the case. However, it all has a happy end: I work on things I consider interesting anyway, and I consider a diet rich in ramen a small price to pay for the privilege. It's nice to be able to boo the demons of the 8-5 job with my fellow Perl Mongers. Re: Darwin, it's true I probably won't have any kids smelling bad and not having money, so you're right. I can't argue with that. -scott On 0, Bill Nash wrote: > > On Tue, 5 Oct 2004, Scott Walters wrote: > > > Every worthwhile programming task was completed in the 1970's. The switched > > phone network was finished, airlines has their reservation systems running, > > Eliza was chatting up humans, humans were navigated to the moon and back... > > since then we've just been doing the same things on different scales for > > I don't see how packet switching voice, as a revolution over line > switching, falls into this category. Neither do self-healing networks, > unless you count cellular, and I don't. Lossless 12:1 audio compression in > software clearly wasn't in the This Era project plan, either. > Incidentally, Frontier turned down it's last operational 'party line' > system in the late 90s. I'd hardly call the domestic line switched system > complete until that point. > > I'm pretty sure automated exploration of the human genome, much less the > concept of practical computational genetic algorithms, was barely a > twinkle in some doctor's pants, in the 70s. Glucose powered chips in the > blood stream to monitor vitals? Get outta here. The control systems for > such a feat were surely the product of a social event whose theme is best > summarized by Pat Boone's cover of "Smoke on the Water". Or not. > > I think NASA is going to disagree with you a lot, too. Otherwise, they > wouldn't be shopping for off-the-shelf products to plug into their Mars > landers, since they'd already have it all. For that matter, I'm pretty > sure the concept of a radio tuner with a 150khz to 3+ghz tuning range, > almost completely realized in a single DSP chip, was on the radar either. > Being able to park one anywhere on the planet you can get power, and being > able to tune it from anywhere else on the planet, as a basic civilian, was > probably just as sneaky a concept. Yes, I own one of these. > > > Seriously, I'm so badly traumitized by past employment I don't think > > I could work in the tech sector again. It's my lot to sit at home and > > eat ramen and write CPAN modules, sometimes pausing to guess where > > rent might come from. > > If it didn't kill you, and it didn't make you stronger, Darwin still won. > > - billn > From awwaiid at thelackthereof.org Tue Oct 5 16:17:42 2004 From: awwaiid at thelackthereof.org (Brock) Date: Tue Oct 5 16:17:53 2004 Subject: [Phoenix-pm] job opening In-Reply-To: <16739.1033.564530.48740@magnitude.righthandgraphics.com> References: <456FD0E7B215B24ABBAD711614E4A7A20A07B1AF@OCCLUST03EVS1.ugd.att.com> <16738.48022.986786.317826@magnitude.righthandgraphics.com> <20041005165716.GM31013@thelackthereof.org> <16739.1033.564530.48740@magnitude.righthandgraphics.com> Message-ID: <20041005211742.GP31013@thelackthereof.org> On 2004.10.05.13.28, David A. Sinck wrote: | | | \_ SMTP quoth Brock on 10/5/2004 09:57 as having spake thusly: | \_ | \_ On 2004.10.05.08.19, David A. Sinck wrote: | \_ | The work will be helping to improve and customize what we already have | \_ | in place as part of a team. | \_ | | \_ | Further/deeper details available upon submitting a sufficient | \_ | interesting resume. :-) | \_ | \_ Ooo... mysterious. But not really appreciated. You wouldn't like it if | \_ we submitted resumes which were practically blank, and add | \_ "Further/deeper details available during interview", eh? | | You haven't seen some of the winner resume's I've seen from assorted | sources over time. :-( haha. Hrm. Maybe not funny. No really, I was just giving you a hard time which you didn't deserve. Listening to too much demonic rock music or something. --Brock From awwaiid at thelackthereof.org Tue Oct 5 16:21:48 2004 From: awwaiid at thelackthereof.org (Brock) Date: Tue Oct 5 16:21:56 2004 Subject: [Phoenix-pm] job opening In-Reply-To: <20041005204004.GU18376@illogics.org> References: <20041005183826.GR18376@illogics.org> <20041005204004.GU18376@illogics.org> Message-ID: <20041005212148.GQ31013@thelackthereof.org> On 2004.10.05.13.40, Scott Walters wrote: | However, melodrama aside, I do have a point. None of the things you listed | save labor on a scale beyond a room full of researchers. Many of them | offer up new products to market, even enjoyable products, but none of them | further elevate humananity out of drudgery further than what was accomplished by | 1980. 1987 - Perl 1.0, 1994 Perl5. --Brock From billn at billn.net Tue Oct 5 16:25:43 2004 From: billn at billn.net (Bill Nash) Date: Tue Oct 5 16:28:25 2004 Subject: [Phoenix-pm] job opening In-Reply-To: <20041005204004.GU18376@illogics.org> Message-ID: On Tue, 5 Oct 2004, Scott Walters wrote: > Hey billn. Always good to see your text. I take it as a compliment that > you consider my banter worthy of a reply. You're in a great minority. Most people see me post and go 'dear god, what now?!' =) > But that's moot. My real complaint was something I'd rather hint at than say: > my jobs were banal. Of the dozens of "ecomm" websites I slaved away to > create under deadline, only one is still online. The other companies folded. But these aren't *your* fault, as much as they are the property of poor management of a product fielded by people obviously incapable of wielding the tools you provided. It's not just you, it happens in more than just the tech industry. > However, it all has a happy end: I work on things I consider interesting anyway, > and I consider a diet rich in ramen a small price to pay for the privilege. Again, this is as much the product of finding decent managers who can take what you provide and make things Suck Less(tm). I like the work I do, and while sometimes things Suck More(tm), it's always entertaining trying to push them in the other direction. I've been largely lucky, with only a few past exceptions, in finding managers with the technical ability to effectively manage technical workers. There will always be bad managers and crappy executives, and people in decision making roles who clearly don't belong there. This is a basic truth of any industry run by humans. Call it Tao, Zen, whatever, once you accept that it's as inevitable as death, the rest is simply routing around the fault. > It's nice to be able to boo the demons of the 8-5 job with my fellow > Perl Mongers. Re: Darwin, it's true I probably won't have any kids smelling > bad and not having money, so you're right. I can't argue with that. I can't say, "Don't let this defeat you," since I've been there. I've been the burnout victim, broken by bad management and bullshit political wrangling. While I can't offer a solution, I can say, it gets better. Even statistically, you can't stay down forever. - billn From lists at innocence-lost.net Tue Oct 5 16:32:08 2004 From: lists at innocence-lost.net (jnf) Date: Tue Oct 5 16:32:18 2004 Subject: [Phoenix-pm] job opening In-Reply-To: References: Message-ID: Hrm. I think as of next week, I work with you Bill. On Tue, 5 Oct 2004, Bill Nash wrote: > Date: Tue, 5 Oct 2004 14:25:43 -0700 (MST) > From: Bill Nash > To: Scott Walters > Cc: phoenix-pm@pm.org > Subject: Re: [Phoenix-pm] job opening > > On Tue, 5 Oct 2004, Scott Walters wrote: > > > Hey billn. Always good to see your text. I take it as a compliment that > > you consider my banter worthy of a reply. > > You're in a great minority. Most people see me post and go 'dear god, what > now?!' =) > > > But that's moot. My real complaint was something I'd rather hint at than say: > > my jobs were banal. Of the dozens of "ecomm" websites I slaved away to > > create under deadline, only one is still online. The other companies folded. > > But these aren't *your* fault, as much as they are the property of poor > management of a product fielded by people obviously incapable of wielding > the tools you provided. It's not just you, it happens in more than just > the tech industry. > > > However, it all has a happy end: I work on things I consider interesting anyway, > > and I consider a diet rich in ramen a small price to pay for the privilege. > > Again, this is as much the product of finding decent managers who can take > what you provide and make things Suck Less(tm). I like the work I do, and > while sometimes things Suck More(tm), it's always entertaining trying to > push them in the other direction. I've been largely lucky, with only a > few past exceptions, in finding managers with the technical ability > to effectively manage technical workers. > > There will always be bad managers and crappy executives, and people in > decision making roles who clearly don't belong there. This is a basic > truth of any industry run by humans. Call it Tao, Zen, whatever, once you > accept that it's as inevitable as death, the rest is simply routing around > the fault. > > > It's nice to be able to boo the demons of the 8-5 job with my fellow > > Perl Mongers. Re: Darwin, it's true I probably won't have any kids smelling > > bad and not having money, so you're right. I can't argue with that. > > I can't say, "Don't let this defeat you," since I've been there. I've been > the burnout victim, broken by bad management and bullshit political > wrangling. While I can't offer a solution, I can say, it gets better. Even > statistically, you can't stay down forever. > > - billn > > _______________________________________________ > Phoenix-pm mailing list > Phoenix-pm@mail.pm.org > http://www.pm.org/mailman/listinfo/phoenix-pm > > From billn at billn.net Tue Oct 5 16:31:23 2004 From: billn at billn.net (Bill Nash) Date: Tue Oct 5 16:33:57 2004 Subject: [Phoenix-pm] job opening In-Reply-To: Message-ID: Innocence-lost, indeed. =) I gotta stop posting before my manager checks his mail and fires me. - billn On Tue, 5 Oct 2004, jnf wrote: > Hrm. I think as of next week, I work with you Bill. > > > On Tue, 5 Oct 2004, Bill Nash wrote: > > > Date: Tue, 5 Oct 2004 14:25:43 -0700 (MST) > > From: Bill Nash > > To: Scott Walters > > Cc: phoenix-pm@pm.org > > Subject: Re: [Phoenix-pm] job opening > > > > On Tue, 5 Oct 2004, Scott Walters wrote: > > > > > Hey billn. Always good to see your text. I take it as a compliment that > > > you consider my banter worthy of a reply. > > > > You're in a great minority. Most people see me post and go 'dear god, what > > now?!' =) > > > > > But that's moot. My real complaint was something I'd rather hint at than say: > > > my jobs were banal. Of the dozens of "ecomm" websites I slaved away to > > > create under deadline, only one is still online. The other companies folded. > > > > But these aren't *your* fault, as much as they are the property of poor > > management of a product fielded by people obviously incapable of wielding > > the tools you provided. It's not just you, it happens in more than just > > the tech industry. > > > > > However, it all has a happy end: I work on things I consider interesting anyway, > > > and I consider a diet rich in ramen a small price to pay for the privilege. > > > > Again, this is as much the product of finding decent managers who can take > > what you provide and make things Suck Less(tm). I like the work I do, and > > while sometimes things Suck More(tm), it's always entertaining trying to > > push them in the other direction. I've been largely lucky, with only a > > few past exceptions, in finding managers with the technical ability > > to effectively manage technical workers. > > > > There will always be bad managers and crappy executives, and people in > > decision making roles who clearly don't belong there. This is a basic > > truth of any industry run by humans. Call it Tao, Zen, whatever, once you > > accept that it's as inevitable as death, the rest is simply routing around > > the fault. > > > > > It's nice to be able to boo the demons of the 8-5 job with my fellow > > > Perl Mongers. Re: Darwin, it's true I probably won't have any kids smelling > > > bad and not having money, so you're right. I can't argue with that. > > > > I can't say, "Don't let this defeat you," since I've been there. I've been > > the burnout victim, broken by bad management and bullshit political > > wrangling. While I can't offer a solution, I can say, it gets better. Even > > statistically, you can't stay down forever. > > > > - billn > > > > _______________________________________________ > > Phoenix-pm mailing list > > Phoenix-pm@mail.pm.org > > http://www.pm.org/mailman/listinfo/phoenix-pm > > > > > From billn at billn.net Tue Oct 5 16:33:56 2004 From: billn at billn.net (Bill Nash) Date: Tue Oct 5 16:36:30 2004 Subject: [Phoenix-pm] job opening In-Reply-To: Message-ID: Too late. Expect another job posting soon. - billn On Tue, 5 Oct 2004, Bill Nash wrote: > > Innocence-lost, indeed. =) I gotta stop posting before my manager checks > his mail and fires me. > > - billn > > On Tue, 5 Oct 2004, jnf wrote: > > > Hrm. I think as of next week, I work with you Bill. > > > > > > On Tue, 5 Oct 2004, Bill Nash wrote: > > > > > Date: Tue, 5 Oct 2004 14:25:43 -0700 (MST) > > > From: Bill Nash > > > To: Scott Walters > > > Cc: phoenix-pm@pm.org > > > Subject: Re: [Phoenix-pm] job opening > > > > > > On Tue, 5 Oct 2004, Scott Walters wrote: > > > > > > > Hey billn. Always good to see your text. I take it as a compliment that > > > > you consider my banter worthy of a reply. > > > > > > You're in a great minority. Most people see me post and go 'dear god, what > > > now?!' =) > > > > > > > But that's moot. My real complaint was something I'd rather hint at than say: > > > > my jobs were banal. Of the dozens of "ecomm" websites I slaved away to > > > > create under deadline, only one is still online. The other companies folded. > > > > > > But these aren't *your* fault, as much as they are the property of poor > > > management of a product fielded by people obviously incapable of wielding > > > the tools you provided. It's not just you, it happens in more than just > > > the tech industry. > > > > > > > However, it all has a happy end: I work on things I consider interesting anyway, > > > > and I consider a diet rich in ramen a small price to pay for the privilege. > > > > > > Again, this is as much the product of finding decent managers who can take > > > what you provide and make things Suck Less(tm). I like the work I do, and > > > while sometimes things Suck More(tm), it's always entertaining trying to > > > push them in the other direction. I've been largely lucky, with only a > > > few past exceptions, in finding managers with the technical ability > > > to effectively manage technical workers. > > > > > > There will always be bad managers and crappy executives, and people in > > > decision making roles who clearly don't belong there. This is a basic > > > truth of any industry run by humans. Call it Tao, Zen, whatever, once you > > > accept that it's as inevitable as death, the rest is simply routing around > > > the fault. > > > > > > > It's nice to be able to boo the demons of the 8-5 job with my fellow > > > > Perl Mongers. Re: Darwin, it's true I probably won't have any kids smelling > > > > bad and not having money, so you're right. I can't argue with that. > > > > > > I can't say, "Don't let this defeat you," since I've been there. I've been > > > the burnout victim, broken by bad management and bullshit political > > > wrangling. While I can't offer a solution, I can say, it gets better. Even > > > statistically, you can't stay down forever. > > > > > > - billn > > > > > > _______________________________________________ > > > Phoenix-pm mailing list > > > Phoenix-pm@mail.pm.org > > > http://www.pm.org/mailman/listinfo/phoenix-pm > > > > > > > > > > _______________________________________________ > Phoenix-pm mailing list > Phoenix-pm@mail.pm.org > http://www.pm.org/mailman/listinfo/phoenix-pm > From kellewic at yahoo.com Tue Oct 5 17:46:04 2004 From: kellewic at yahoo.com (Shay Harding) Date: Tue Oct 5 17:46:17 2004 Subject: [Phoenix-pm] job opening In-Reply-To: Message-ID: <20041005224605.29787.qmail@web53502.mail.yahoo.com> --- Bill Nash wrote: > On Tue, 5 Oct 2004, Scott Walters wrote: > > > Hey billn. Always good to see your text. I take it > as a compliment that > > you consider my banter worthy of a reply. > > You're in a great minority. Most people see me post > and go 'dear god, what > now?!' =) Agreed. From billn at billn.net Tue Oct 5 17:49:02 2004 From: billn at billn.net (Bill Nash) Date: Tue Oct 5 17:51:36 2004 Subject: [Phoenix-pm] job opening In-Reply-To: <20041005224605.29787.qmail@web53502.mail.yahoo.com> Message-ID: On Tue, 5 Oct 2004, Shay Harding wrote: > > You're in a great minority. Most people see me post > > and go 'dear god, what > > now?!' =) > > Agreed. > You're just jealous of my Nobel 'Contentious Bastard' prize. - billn From erik at jundy.com Tue Oct 5 17:54:14 2004 From: erik at jundy.com (Erik Tank) Date: Tue Oct 5 17:53:19 2004 Subject: [Phoenix-pm] Sys Admin needed Message-ID: <41632616.4090408@jundy.com> I have a client that needs to have a sys admin. This client buys hardware by the truck load and then resells it. He has a partner in the Tennessee or somewhere. He recently approached me and asked if I knew of someone that could help him with IT (ways of making things more stream lined - specifically communication between him and his partner). He used to be a COBOL programmer but my experience with him is that he hasn't coded or thought like a programmer in a long time. Let me know if you are interested and I will pass your contact information on to him. I don't know how much sys admin time he will require from month to month but he is a good and reliable client so I don't for see any type of non-payment issues if you are honest about the cost up front. -- Erik Tank Dreaming about Providence And whether mice or men have second tries Maybe we've been living with our eyes half open Maybe we're bent and broken, broken We were meant to live for so much more Meant to Live - Switchfoot From lists at innocence-lost.net Tue Oct 5 20:36:31 2004 From: lists at innocence-lost.net (jnf) Date: Tue Oct 5 20:36:39 2004 Subject: [Phoenix-pm] job opening In-Reply-To: References: Message-ID: Very much so- it's been quite the day for me and I almost commented on it and fired off an angry email in response to other statements related to the company, luckily pine crashed. (seriously) Hi Bill. Look forward to working with you on Monday. I sware, im no where as bad as they say I am. Justin F. On Tue, 5 Oct 2004, Bill Nash wrote: > Date: Tue, 5 Oct 2004 14:31:23 -0700 (MST) > From: Bill Nash > To: jnf > Cc: phoenix-pm@pm.org > Subject: Re: [Phoenix-pm] job opening > > > Innocence-lost, indeed. =) I gotta stop posting before my manager checks > his mail and fires me. > > - billn > > On Tue, 5 Oct 2004, jnf wrote: > > > Hrm. I think as of next week, I work with you Bill. > > > > > > On Tue, 5 Oct 2004, Bill Nash wrote: > > > > > Date: Tue, 5 Oct 2004 14:25:43 -0700 (MST) > > > From: Bill Nash > > > To: Scott Walters > > > Cc: phoenix-pm@pm.org > > > Subject: Re: [Phoenix-pm] job opening > > > > > > On Tue, 5 Oct 2004, Scott Walters wrote: > > > > > > > Hey billn. Always good to see your text. I take it as a compliment that > > > > you consider my banter worthy of a reply. > > > > > > You're in a great minority. Most people see me post and go 'dear god, what > > > now?!' =) > > > > > > > But that's moot. My real complaint was something I'd rather hint at than say: > > > > my jobs were banal. Of the dozens of "ecomm" websites I slaved away to > > > > create under deadline, only one is still online. The other companies folded. > > > > > > But these aren't *your* fault, as much as they are the property of poor > > > management of a product fielded by people obviously incapable of wielding > > > the tools you provided. It's not just you, it happens in more than just > > > the tech industry. > > > > > > > However, it all has a happy end: I work on things I consider interesting anyway, > > > > and I consider a diet rich in ramen a small price to pay for the privilege. > > > > > > Again, this is as much the product of finding decent managers who can take > > > what you provide and make things Suck Less(tm). I like the work I do, and > > > while sometimes things Suck More(tm), it's always entertaining trying to > > > push them in the other direction. I've been largely lucky, with only a > > > few past exceptions, in finding managers with the technical ability > > > to effectively manage technical workers. > > > > > > There will always be bad managers and crappy executives, and people in > > > decision making roles who clearly don't belong there. This is a basic > > > truth of any industry run by humans. Call it Tao, Zen, whatever, once you > > > accept that it's as inevitable as death, the rest is simply routing around > > > the fault. > > > > > > > It's nice to be able to boo the demons of the 8-5 job with my fellow > > > > Perl Mongers. Re: Darwin, it's true I probably won't have any kids smelling > > > > bad and not having money, so you're right. I can't argue with that. > > > > > > I can't say, "Don't let this defeat you," since I've been there. I've been > > > the burnout victim, broken by bad management and bullshit political > > > wrangling. While I can't offer a solution, I can say, it gets better. Even > > > statistically, you can't stay down forever. > > > > > > - billn > > > > > > _______________________________________________ > > > Phoenix-pm mailing list > > > Phoenix-pm@mail.pm.org > > > http://www.pm.org/mailman/listinfo/phoenix-pm > > > > > > > > > > From tran_fors at yahoo.com Tue Oct 5 22:07:11 2004 From: tran_fors at yahoo.com (Tran Forsythe) Date: Tue Oct 5 22:07:12 2004 Subject: [Phoenix-pm] Meeting 10/07/2004 References: <4162CF7C.7000308@earthlink.net> Message-ID: <003c01c4ab51$9338f260$9901a8c0@dario> Hold onto your hat Doug, but I oughta be able to make this'un ;) (ahh, the glories of taking a week off on vacation just to catch up on personal things, and relax...) -Kurt ----- Original Message ----- From: "Douglas E. Miles" To: Sent: Tuesday, October 05, 2004 9:44 AM Subject: [Phoenix-pm] Meeting 10/07/2004 > Please RSVP... > > We'll be having a Phoenix.pm meeting Thursday, October 7th at 7:00PM. > It will be held at Bowne, which is located at 1500 N. Central Avenue, > which is on the Southwest corner of Central and McDowell. The parking > lot is gated, so just press the button on the intercom, and tell the > receptionist that you are there for the Perl meeting. Park in the lot > that is straight ahead from the entrance on the South side of McDowell. > Park in any uncovered, non-reserved space. Proceed to the main lobby, > which is on the Northeast side of the parking lot. > > > I'll be presenting my templating system, (yes, yet another templating > system :) ) covering parsing and design decisions, and looking for feedback. > > P.S. If there was anyone out there that I talked to about doing a > presentation, let me know so we can get you scheduled. > _______________________________________________ > Phoenix-pm mailing list > Phoenix-pm@mail.pm.org > http://www.pm.org/mailman/listinfo/phoenix-pm From scott at illogics.org Tue Oct 5 22:30:50 2004 From: scott at illogics.org (Scott Walters) Date: Tue Oct 5 22:33:02 2004 Subject: [Phoenix-pm] Sys Admin needed In-Reply-To: <41632616.4090408@jundy.com> References: <41632616.4090408@jundy.com> Message-ID: <20041006033049.GX18376@illogics.org> Hi Erik, Now *this* sounds interesting. I *love* old hardware: http://slowass.net/slowass-images/sparc-lab.jpg Is it mostly on-site or off-site? What systems are being administered? Windows, Solaris, Linux, Banyan Vines, HP/UX, DomainOS...? Thanks, -scott On 0, Erik Tank wrote: > I have a client that needs to have a sys admin. This client buys > hardware by the truck load and then resells it. He has a partner in the > Tennessee or somewhere. He recently approached me and asked if I knew > of someone that could help him with IT (ways of making things more > stream lined - specifically communication between him and his partner). > He used to be a COBOL programmer but my experience with him is that he > hasn't coded or thought like a programmer in a long time. Let me know > if you are interested and I will pass your contact information on to > him. I don't know how much sys admin time he will require from month to > month but he is a good and reliable client so I don't for see any type > of non-payment issues if you are honest about the cost up front. > > -- > Erik Tank > > Dreaming about Providence > And whether mice or men have second tries > Maybe we've been living with our eyes half open > Maybe we're bent and broken, broken > We were meant to live for so much more > Meant to Live - Switchfoot > _______________________________________________ > Phoenix-pm mailing list > Phoenix-pm@mail.pm.org > http://www.pm.org/mailman/listinfo/phoenix-pm From scott at illogics.org Thu Oct 14 13:26:31 2004 From: scott at illogics.org (Scott Walters) Date: Thu Oct 14 13:52:22 2004 Subject: [Phoenix-pm] "Perl 6 Now" introduction Message-ID: <20041014182631.GS18376@illogics.org> Hi generous, helpful, supportive Perl Mongers - I have a favor to ask ;) My technical reviewer just left on a cruise and the publisher is in a hurry to get the first chapter to production and technical review. That's where you come in. I'm sending the first chapter in a second email but the introduction could use comments and the first chapter will make more sense given the introduction (as the first chapter is kind of odd). So, here it is, in almost-POD: =head1 i. Introduction I demonstrates the Perl 6 language's concepts, ideas, and their roots in Perl 5, using retro-ported Perl 5 implementations as well as standard but advanced Perl 5 features. Perl 6 Now is the early adopters guide to the Perl 6 language and it's concepts. This book: =over 1 =item Introduces new ideas, their applications, and why Perl is adopting them =item Unearths dozens of modules to illustrate these ideas so Perl 5 so programmers can start using them now =item Concentrates on modern Perl, ignoring legacy baggage =item Solves real programming problems =item Gently introduces, using simpler ideas, skills demanded of senior programmers =back "Perl 6 Now" is for people who actually want to start using the new features (or merely experimenting with them) in day to day programming tasks. All of the Perl 6-like features and changes available for Perl 5 as modules are completely optional to use. When you need them, they're invaluable. This books is for people who are eager to see what has been done to Perl, and want to know that their favorite tricks will still work in some form. =head2 Improving Perl Tom Christiansen (a famous Perl personality best known for co-authoring the Perl Cookbook, O'Reilly, 1998), in his 1996 article, "Seven Deadly Sins of Perl", wrote: Back in the Perl4 days I made a list of the greatest "gotchas" in Perl. Almost all of those have been subsequently fixed in current incarnations of Perl, some to my deep and abiding amazement. In that same spirit, here's of my current list of what's-um... let's be charitable and just say "suboptimal"... Tom Christiansen's listed sins have long been stumbling blocks for novice and intermediate Perl programmers, and fixing some of them required deep seated changes to the language. All have been addressed in the design of Perl 6, though few of them in the obvious way. Problems were fixed by generalizing the language rather than merely removing the unpleasant bits. Convincing you to buy this book (if you haven't already) means convincing you that Perl 6 is interesting, and that means selling the idea that Perl 6 introduces things you want but might not have realized you wanted. Besides cleaning up rough edges, Perl 6 brings to Perl a host of the most sought after features previously lacking. Saying that Perl could improve is not slur against Perl. Perl 4 had already defined most of the Perl language, but it had plenty of room for improvement. Name spaces, data structures, lexical variables, and dynamically loadable binary extensions, added in Perl 5, make up only a small part of Perl, but they're now considered critical parts of the language. Advanced programmers and programmers working on large or complex projects will reach a point where they'd benefit from features present in other languages but missing from traditional Perl 5. Novices and those learning Perl for casual use could be surprised less often by the language. The parts of Perl unique to Perl are now much easier to explain and teach. Perl is unique in that it's developed primarily in the spare time of people who use the language for their day job. Pie-in-the-sky notions of how things "should be" are ignored in favor of pragmatic solutions to real problems. Perl 6 imports ideas from other languages not merely because the language has something Perl lacks but because these features are legitimately useful, at least in special circumstances. =head2 Major Themes Perl 6 is Perlier Perl. Some themes repeated throughout Perl 5 come back with a vengeance in Perl 6. Here are places where Perl 6 builds on the accomplishments and design of Perl 5: =over 1 =item List processing: Operating on sets of data is nearly as easy as operating on individual items of data. Sorting, searching, and iterating are Perl 5 primitives. Perl 6 adds hyper operators, which operate on entire lists and arrays, and setwise operations which compute intersections (and many other things) on data. =item Stringification and numification: objects communicate sets of data between operators internally, and user defined logic in the object decides what the object should look like when used as a string or number. Perl 6 allows programmers to write their own rules for when data items should be considered true or false and makes stringification and numification easier. =item Contexts: Hashes, arrays, function and method calls, references, and objects respond to the circumstances of how they're used. Perl 6 adds more contexts, allowing function results to be transparently encapsulate multiple return values using an object, and allowing expressions to behave as references on demand and vice versa. =item Compilation: Programs may be bytecode compiled and/or bundled for easy distribution. Perl 6 programs may be Just In Time compiled, where the program is compiled on demand, and Perl 6 designs in support for true compilation without any dependency on an interpreter. =item Flow control: Meta information may be read from caught errors, and logic runs conditionally depending on the circumstances of a blocks exit. In Perl 6, expressions may be restructured to more easily move data between blocks. Continuations take snapshots of program state, pipelining data between routines. The default variable, C<$_>, is used by certain new flow control constructs. =item Extensibility: No design can anticipate the future in any meaningful way. Perl 5 left open many avenues for programmers to extend the language to meet their specific needs, and Perl 6 takes this idea further. =item Stricture: Perl optionally helps verify your code given meta-information. Better, safer, cleaner code is encouraged. =back Perl 6 builds on the best parts of Perl 5. These themes manifest repeated though numerous features discussed throughout this book. For a detailed account of topics covered in this book, see "Organization of This Book" (XXX in this chapter? at page number ...?). =head2 Who This Book is For Perl 6 Now, besides showcasing distinctly Perl innovation, also bridges Perl with ideas popularized by other programming languages such as Java, Ruby, C#, and Scheme. As a natural consequence, programmers of those other languages find in this book Perl equivalents to familiar ideas. However, the primarily audience is Perl 5 programmers who are curious (and in many cases, anxious) about Perl 6. Many Perl programmers pick up a few other scripting languages to expose themselves to new ideas, and learning Perl 6 is a nifty way to get this exposure as Perl 6 borrows heavily from other languages. =head3 Programming Novices Perl 6 Now covers several university computer science topics such as graphs, recursion, compiler diagnostics, strong typing, and other things you're not likely to be exposed to outside of college. However, this book does not teach I. This book could be considered a companion to "Beginning Perl" by James Lee (Apress, 2004). =head3 Programmers of Other Languages Larry Wall, the creator of Perl, has said that it's okay to speak a subset of Perl. This book I teach you a subset of Perl, but you must be aware that you'll learn a subset not used by the mainstream. The I parts of Perl are interesting, useful, powerful tools for Perl programmers, but they're not the most important features of the language. Conversely, Perl 6 drops problematic and hard to teach parts of Perl 5 in favor of cleaner interfaces, and this book avoids these now deprecated features. =head3 Perl Programmers Until now, published knowledge on Perl 6 has come from only a few sources, the best known of which are the design documents themselves, the Apocalypses, written by the creator of Perl, Larry Wall. The Apocalypses are brilliantly written, but they're unreadable without a advanced knowledge of Perl and computer science lore. Damian Conway's Exegeses break down Larry's design so mere mortals can follow, and they admirably demonstrate practical uses for the new features, but the rationale beyond the new features is largely lost in the absence of the required Perl and computer science lore. Perl 6 Now was conceived as a hands on, practical guide to Perl 6 concepts and features rather than syntax. This book gives the background and necessary to under the Apocalypses and the computer science lore necessary to understand the Exegesis. Discussion of Perl concepts new to Perl 6 accomplishes little if you can't use the ideas. CPAN modules implementing Perl 6-like features for Perl 5 lay at the heart of this book. When I proposed this book, I had several modules in mind I thought to be non-obvious (as well as the obvious picks). By some fluke, I'd written one of them, and I've since written another. I've scoured CPAN in search of more modules to demonstrate the ideas from the Apocalypses, and I've talked to legions of Perl programmers. Herein lies the fruit of my labor. =head2 Today's Perl 5 Nine years ago, Perl 5 was released, introducing objects, data structures, and lexical closures to the language for the first time. These nine years have not been wasted. Perl has been repeatedly reinvented as threads, a compiler, a decompiler, weak references, lvalue subroutines, tainting of input data, data structure serialization, and other goodies were added to the language. Today's Perl 5 hardly resembles the Perl of yesteryear. Some chapters document under appreciated or imperfect features of Perl 5 slated for stability in Perl 6 (by virtue of being designed into the language rather than bolted on). As it turns out, announcing Perl 6 was the best thing that could happen to Perl 5. That so many experimental Perl 5 features would be selected to be part of the core of the Perl 6 language was vindication to the people that thought them up. This encouraged further development and more widespread adoption. Undefined areas, like F, were finally fully specified after being put off for too long. The community reached precious consensus that F should be done and on how to do it. Adam Turoff best put light on the situation in the article, "The State of Perl", published at F. Adam writes, "In 2000, Larry Wall saw Perl 6 as a means to keep Perl relevant, and to keep the ideas flowing within the Perl world. ... Furthermore, backwards compatibility with thirteen years (now sixteen years) of working Perl code was starting to limit the ease with which Perl can adapt to new demands. ... Today, over three years later, the Perl development community is quite active writing innovative software that solves the problems real people and businesses face today. However, the innovation and inspiration is not entirely where we thought it would be. Instead of seeing the new language and implementation driving a new wave of creativity, we are seeing innovation in the libraries and modules available on CPAN -- code you can use right now with Perl 5, a language we all know and love." Adam continues, "In a very real sense, the Perl 6 project has already achieved its true goals: to keep Perl relevant and interesting, and to keep the creativity flowing within the Perl community. One way to get a glimpse how Perl is used in the wild is to look at CPAN. I recently took a look at the modules list (F) and counted module distributions by the year of their most recent release. These statistics are not perfect, but they do give a reasonable first approximation of the age of CPAN distributions currently available". =for production table, please 1995: 30 (0.51%) 1996: 35 (0.59%) 1997: 68 (1.16%) 1998: 189 (3.21%) 1999: 287 (4.88%) 2000: 387 (6.58%) 2001: 708 (12.03%) 2002: 1268 (21.55%) 2003: 2907 (49.40%) CPAN: 5885 (100.00%) Adam continues, "Interestingly, about half of the distributions on CPAN were created or updated in 2003. [...] If anything, Perl development, as measured by CPAN activity, is quite healthy". Adam warns that these numbers don't tell the whole story. Modules are uploaded for numerous reasons including bug fixes. On the other hand, some modules have been stable for years, and merely haven't been updated because no bug fixes are requited. Still others have been abandoned and won't be updated regardless of Perl developments arise. Certainly not all of those 49.40% of modules updated in 2003 represent stimulation in the Perl 5 camp by the announcement of Perl 6, but they do indicate that the announcement of Perl 6 has done nothing to diminish Perl 5. These quotes were taken from somewhere in middle of the article; the article talks about the realities of needing a new version, how Perl is actually being used today, in what ways and to what degree Perl's user base is stable. Adam's article is available in full at F. =head2 Announcing Perl 6 Perl 6's roots go back to 1999, when Chip Salzenberg announced the Topaz project to rewrite Perl's internals (XXX footnote 1? http://www.perl.com/pub/a/1999/09/topaz.html). The goal for Perl 6 was to make the interpreter easier to maintain, not to update the language. Code written for Perl 1 still runs on Perl 5.8.4 with little adjustment and at that time, no one had suggested breaking this line of compatibility. However, each feature added to Perl created bugs in far removed parts of core and many highly sought after features seemed impossible to add to the Perl 5 core at all. The internals were scaring away new developers. Topaz eventually fizzled - rewriting Perl proved far more time consuming than expected, and those using Perl were by and large oblivious to the plight of Perl's developers. Cleaning up the internals is still a high priority, and L delves into the perks of rewritting the internals (such as Just In Time compilation). The seeds were sown in 2000 when Jon Orwant (the reserved, universally respected editor of the Perl Journal) walked into a The Perl Conference meeting where Larry Wall and others were discussing reportedly mundane things. The story goes (I'm quoting Larry here) (XXX footnote 2? http://www.mail-archive.com/perl6-meta@perl.org/msg00409.html) that Jon walks in, and stands there for a few minutes listening, and then he very calmly walks over to the coffee service table in the corner, and there were about 20 of us in the room, and he picks up a coffee mug and throws it against the other wall and he keeps throwing coffee mugs against the other wall, and he says "we are ****** unless we can come up with something that will excite the community, because everyone's getting bored and going off and doing other things". He said "I don't care what you do, but you gotta do something big". And then he went away. Larry describes this "the most perfectly planned tantrum you have ever seen". Consensus was that Jon was right, and Perl 6 was what had to be done. Mailing lists were set up. Soon thereafter, Damian Conway (who wrote many of the modules mentioned in this book) published a bold vision for improving Perl as a language by making the whole language more consistent, intuitive, extensible, and expressive. Current specifications for Perl 6 strongly reflect the basic goals of this document (XXX footnote 3? http://web.archive.org/web/20040207072905/http://www.yetanother.org/damian/Perl5+i/). Damian Conway's suggested plan for Perl 6 drew primarily on things programmers were trying to do with Perl 5 but were having trouble with, for one reason or another. F further chronicals the early history of Perl 6. Because specifications for Perl 6 directly addressed the tasks programmers have trouble with in Perl 5, Perl 6 has a large amount of prior art to draw from in the form of Perl 5 modules. The bulk of the improvements for Perl 6 are formalizations of Perl 5 modules and idioms. Should Perl be found lacking in any serious way, at least one CPAN module would attempt to rectify the problem. In this way, much of what's new for Perl 6 actually started as a proof of concept in Perl 5. These attempts are sometimes badly implemented, sometimes were just impossible to do right, and sometimes lack nothing but being formalized as part of the language, included into core, and documented in books on the Perl language. Damian Conway would later write, (XXX footnote 4? http://www.linux.org.au/conf/2004/eventrecord/LCA2004-cd/papers/90-damian-conway_Perl6.pod), "First of all, Perl 5 I broke. Those of us who are working on the design of Perl 6 are doing so precisely because we like Perl 5 so much. (...) It's I we like Perl 5 so much that we want it to be even better. (...) Moreover, our love of Perl doesn't blind us to its flaws. Those C<$>, C<@>, and C<%> prefixes on variables are confusing; some of its other syntax is unnecessarily cluttered; it lacks some basic language features (like named subroutine parameters, or strong typing, or even a simple case statement); its OO model isn't really strong enough for most production environments; and the list goes on. So the Perl 6 design process is about keeping what works in Perl 5, fixing what doesn't, and adding what's missing". =head2 Reading This Book Newly introduced, indexed terms appear in I. C is used for text typed at the keyboard, including URLs, code examples, program names, and commands to type at the shell. In this book, most commands to be typed at the shell are invocations of the F command. Should your system lack F, the standard documentation is also available from F and documentation for CPAN modules is online at F. Perl 6 and Perl 5 extensions offer new things for every part of the language so I wrote this book in the style of a plain programming language manual with basic concepts coming first and later chapters building on them. Each chapter in this book introduces an idea but also leads into the next chapter. The chapter on the F module leads into the chapter on block control constructs, which leads into the chapter on subroutines. The chapter on multidimensional arrays leads into the chapter on data structures. However, it is not an ordinary programming book. Only the first section covers features present in traditional programming languages. The book quickly moves on to cover features from functional programming, object oriented programming, and things unique to Perl. The new parts of the language make strong use of existing concepts such as execution contexts, lexical variables, and symbol tables. This book need not to be read straight through. If you like, jump straight into a topic that looks interesting. The chapters are extensively cross referenced. Traditional Perl 5 style isn't depicted and not everything demonstrated in this book is suitable for production environments (I've indicated throughout which ones are and aren't suitable for production, but in general, things that merely add to or change the syntax aren't suitable for production work, and things that add new features are). =head2 Sales Support Perl Development and Electronic Freedom =for production This should probably be it's own little section after a page break Twelve and a half percent of the royalties from this book go to the Electronic Freedom Foundation (EFF). The EFF is a non-partisian, non-profit organization defending the rights of software programmers to innovate. Twelve and a half percent of the royalties from this book go to The Perl Foundation. The Perl Foundation accepts donations with which to sponsor Perl developers working on key projects, such as some of those documented in this book. =head3 The Perl Foundation The Perl Foundation oversees Perl public relations, heads up the Perl Mongers user groups, and managers the Perl 6 project. TPF puts on "Yet Another Perl Conference" event around the globe, which is inexpensive to attend. They maintain the F website and work with creators of important Perl related resources such as CPAN, in which they have an unofficial hand. They also accept donations and use the money to sponsor projects. In 2001 through 2003, TPF hired three core developers: =over 1 =item Larry Wall completed some of the hardest parts of the language design for Perl 6, including operators and subroutines, while funded by TPF. He also spent countless hours reading every single post to the Perl 6 language mailing list, and responding personally to many. =item Damian Conway was hired for 18 months and TPF flew him to twenty cities in United States, England, Germany, Canada, and Australia, where he presented for companies and users groups. At the same time, he collaborated with Larry Wall on the design of Perl 6 and wrote 14 new modules, most of which are related to Perl 6 and are discussed in this book. =item Dan Sugalski made considerable progress on Parrot, the virtual machine for Perl 6, while under wondering under TPF grant. The virtual machine has garbage collection, basic I/O, and a full compliment of data types. Dan has more recently completed the first version of support for objects. =back TPF has a website at F where they accept donations on-line. Most work done by these fine folks and the dozens of other people who active hack on Perl is still done without compensation, but compensation certainly makes it easier to do the things you want to do. Donating to the TPF is one of the best ways to speed development of Perl 6. Funding development of Perl is an excellent way to entice core developers to come to your college or user group and present (and ask for more money). Most of all, supporting TPF is a great way to say thank you. =head3 The Electronic Frontier Foundation In 1991, the United States bill S.266 stated: "It is the sense of Congress that providers of electronic communications services and manufacturers of electronic communications service equipment shall ensure that communications systems permit the government to obtain the plain text contents of voice, data, and other communications when appropriately authorized by law". A couple years later, the NSA would unveil the CLIPPER chip as a system of government issued encryption. High strength encryption would be made available with the understanding that the keys would be on file with the government. The physical encryption chip would be placed in specially equiped telephone handsets and PC expansion cards. Around the same time, the creator of PGP (Pretty Good Privacy, an encryption tool), Phil Zimmermann, and others involved in marketing PGP, were sent a letter by the United States State Department informing them they'd need to register as arms dealers to distribute cryptographic tools, apparently a cue taken from cold war politics. A few short years later in 1997, people clung to the little yellow padlock icon in Netscape as their lifeline when confiding credit card number online. That little yellow padlock almost didn't happen. The EFF subpoenaed details of the NSA's CLIPPER chip project and testified before congress, representing both future-minded businesses and privacy-minded citizens. The EFF helped fund Phil Zimmermann's defense in the interest of setting a precedent against regulation of crypotography. Government provided encryption would have made the e-commerce revolution impossible. Had the Netscape browser required expensive hardware to conduct secure transactions, it's doubtful online shopping would have taken off. Remember, at the time, Netscape was a lark. No one predicted the e-commerce revolution. This is one example. A sample of EFF victories include: =over 1 =item Coordinated the defeat of S.314, the "Online Decency Act", which would make it illegal to transmit any "obscene" material, forcing ISPs to censor all communication. Of course, this was before ISPs were mainstream and large enough to take care of themselves, and most people who used computer networks were on "information services" not connected to the Internet. =item Coordinated opposition to the eventually withdrawn UCITA bill. UCITA would make free software programmers unable to disclaim warranty against special and incidental damages of software distributed over the Internet. "Incidental damage" includes any money a user of the software is not able to make because the software fails, in some circumstance, to do something it tries to do. Commercial software has always disclaimed special and incidental damages. =item Representing and successfully defending Jon Johansen in Norwegian court. Jon Johansen clean-room reverse engineered the encryption on DVDs and used the knowledge to create a DVD player for Linux. Before this program, it was already possible to copy DVDs, but DVDs could only be played on Microsoft Windows, Apple Macintosh computers, and dedicated DVD players. =back Details of past victories are available on-line at F<< http://www.eff.org/effector/ >>. Present battles are every bit as serious, and details of current litigation and legislation are news items at F<< http://www.eff.org >>. Joining the EFF as a member is one of the best things you can do to protect everyones right to innovate and use technology. =head2 Biography of the Author =for production This too should probably be a section after a page break Scott Walters has been fixing things that weren't broken since he was 5 years old. After some brief dabbling with hardware, Scott quickly religated himself to working on software. To this day, hardware hasn't forgiven Scott. Scott Walters has been programming Perl since a lot of Perl 5 programmers still had their purple camels, which is to say, years after Perl 5 came out, which isn't all that long ago. The period of time in which Scott managed to ignore Perl is much more impressive - he has been banging around the Internet since 1990, back when it wasn't lame. After hearing over and over that Perl is a messy language and that he should learn it (from two non-intersecting groups of people), Scott finally sat down and learned it. When someone offered him a $1000 to create a little dynamic website with it, that is. For the past six or so years, he's worked (and hacked) primarily in Perl for various companies, working as technology lead in two start-up companies and serving as lead programmer on a project to implement an intranet at a major healthcare provider, among other things. For the past four years, he has consulted full-time. Presently, most of his work is done for Pariyatti Book Services, who has tolerated his relative absence with relatively good humor. Scott is involved in the Phoenix Perl Mongers where he often speaks. He maintains F<< http://projects.netbsd.org >> (and plans to do more as soon as he figures out how to get messages to go through on the NetBSD WWW mailing list), and of course, works on numerous projects and modules related to Perl including the budding F free documentation project. Scott has had love affairs with Forth, SNOBOL, Scheme, and has always liked C and bash. He picked up a smattering of Java back in the Java 1.0 beta days, and thinks that it is okay. In fact, he likes most languages. He hails from Fountain Hills, Arizona, but considers himself a Minnesotan, even after baking in the desert heat for 5 years. He still has his long underwear and wool socks, just in case. =head2 Thanks and Shouts It's a surprise ;) =head2 Organization of This Book =for production This should be a little section after a page break This book has three sections, each section corresponding to the field of programming primiarly responsible for the new Perl features documented. (Where ideas were new and had no field, I put the chapter where I thought best). These fields are procedural programming, object oriented programming, and functional programming. =head3 Section 1 Section 1 covers features implementing ideas that go back to the 1960s or 1970s. Compiler diagnostics, constants, variables, multidimentional arrays, datastructures, control structures, and subroutines all fit this description. Section 1 also takes care of some preliminaries. L speaks briefly on Perl and provides some background needed for the rest of the book. For instance, one module used heavily throughout the book requires a patch to the Perl core, and this book assumes a version of Perl that hasn't been released yet at the time of this writing, so you'll need to download, patch, and compile Perl. L lists the parts of Perl 5 and Perl 6 that you'll encounter in development and gives some resource pointers for projects to mix Perl 5 and Perl 6 in the same program and for projects to migrate from Perl 5 to Perl 6. It goes into some depth on the problem of mixing Perl 5 and Perl 6. L introduces compiler diagnostics, a feature that's largely optional in Perl, and how they relate to changes in the language. Perl 6 increases communication between the programmer and the compiler so the compiler is better able to help the programmer find and avoid bugs. This is really a chapter about debugging before our chapter about debugging which is fitting as it aims to prevent bugs from happening. This chapter is especially useful to new programmers. The bugs that novices struggle with most are exactly the ones that Perl is best able to check for and report on - when the options are enabled. L introduces literals and constants. It looks at numeric literals, string literals, and constant values such as system symbolic constants. String interpolation, treating data as files, and bundling files in literal data are all touched upon. Perl 6 expresses some constants differently and the rules for interpolating hashes and arrays into strings has changed. Perl 6 standardizes code output intropolation. L introduces variables and simple arrays and hashes and then takes a detour into variable innards. Perl 6 has the same four layers of abstraction variables exist in, but all levels are much more readily accessable to programmers. For instance, aliasing variables together allows multiple arrays and hashes to share data and present different views of that same data. Perl is a dynamic language, and a single variable may hold different datatypes at different times. Each datatype knows how to interpret itself in various contexts. Strings, numbers, arrays, and hashes all have different ways of deciding whether or not they are true or false. Perl 5 and Perl 6 both allow programmers to meddle with how data is stored and how variables interpret the data they hold. L examines Perl 6's truth testing operators, hyper operators, stacked filetest operators, stacked comparison operators, and new mutating operators. The special undefined value is more widely recognized and supported, new operators and operator features save typing, and more expessive code is possible. L introduces rectangular arrays. These are easier to explain than full blown datastructures and have the added benefit of being gentle on RAM. They're primarily useful for processing numeric data, images, audio samples, and other large sets of uniform data. Perl 6 introduces vectorized operators on sets of data as well as rectangular multidimensional arrays with minimal storage requirements. L use references, arrays, and hashes to represent irregular arrays, linked lists, graphs, binary trees, and other structures. Datastructures are essential to modeling data and problem solving with it. Perl 6 simplifies datastructure construction and use and adds numerous features, replacs weak references with garbage collection, and introduces a reference context. L looks at simple conditionals, starting with C, and then dwelling on C, Perl's switching construct. The dose of structured programming will make you feel like it's the 70's all over again, setting the stage for far more interesting control structures later in the book. L shows how to break out of loops and how to provide code to run as blocks are exited in different ways, an idea introduced in Perl 6. It also takes a first look at the idea of variable scope. L shows how to write and call subroutines, including the bulit-in functions that are always available. It examines argument processing, context, prototypes, and formal parameter lists. Subroutines may provide different contexts to their arguments, just as built-in functions do. =head3 Section 2 Section 2 is about ideas coming out of the software industry. Software shops have a love affair with object oriented programming. Objects are a social institution that communicates to new programmers how to jump into a project and establishes boundaries between programmers so that responsibilities and faults are clear. CPAN demonstrates this admirably. Objects are a technical institution that lets the compiler help you by performing more sanity checks than any reasonable human would bother to write. L introduces CPAN, the Comprehensive Archive Network, and ideas of code compilation, packaging, and distribution, with an eye towards rolling out desktop applications in the corporate setting or for download with the professional flurishes. L discusses writing classes and objects in Perl. It examines the syntax for constructors, accessors, and inheritance. Perl 6 does most of the work for you including processing arguments to an implied constructor - creating a class is as easy as creating a data structure. Notes on navigating interfaces that return object help programmers deal with the more complex modules available for Perl. Objects may present themselves as a string, number, boolean value, array, or hash when used as such. Objects may be given rules to define their sorting order and to decide whether they're logically equivalent to another object. Methods called in object context should return objects, such as iterators, or bundles of data. L looks at object oriented style error handling, which really has little to do with objects or object oriented programming but does allow programs to understand what has gone wrong and deal with it accordingly. L introduces a whole class of static analysis that object oriented languages can perform on your program. Objects encourage the programmer think about what the exact classes of problems are and work out what routines are capable of handling what data. Chances for reuse and problem cases both become evident when this is done. This continues the idea, introduced in L, that if you give the compiler more information about what you're trying to do, it can help you do it (or atleast help you to not not do it). L is a quick introduction to threads in Perl. It teaches the ideas of concurrency and its evil twin, race conditions. =head3 Section 3 Section 3 looks at techniques out of acedamia. Popularized by applications like artificial intelligence, they bring very hard problems down to Earth. L introduces two other kinds of data collection something like arrays: conjunctive sets and disjunctive sets. These let us easy ask questions of the data such as "do any match?" and "do all match?". Sets may contain other sets, not necessarily of the same type, allowing data to be structured in immediately useful ways. L talks about subroutines that can be configured and customized by the subroutine that returns or creates them. L explains functional continuations. Continuations ease connecting pieces of code, lessoning the need to hard-code function or method names into a routine by letting multiple coexistant function calls pass data back and forth without knowing who they're talking to. L describe coroutines, which allow multiple subroutine calls to be made in parallel. Concurrent network connections represent well as coroutines. From scott at illogics.org Thu Oct 14 14:01:48 2004 From: scott at illogics.org (Scott Walters) Date: Thu Oct 14 14:04:07 2004 Subject: [Phoenix-pm] "Perl 6 Now" chapter 1 Message-ID: <20041014190148.GU18376@illogics.org> Again, but chapter 1, which needs some assurance (hint? suggestion?) of technical accuracy. The editor will look at it after this and suggest structural and content changes, and the copy editor will fix any spelling errors I've introduced since I last spell checked it and correct grammar and style - so don't worry about those things. This chapter exists to get some of the technical things out of the way readers might not be familiar with (building Perl from source, etc), and also to serve as a more traditional first chapter by defining the terms the book is about. I think it overlaps with the intro too much still. Hrm. Thanks! -scott =head1 1. The Programmer's Introduction to the Perl Computer Programming Language Perl is a technical creation as well as a social creation, and the license it's distributed under tells a good deal about what kind of social creation Perl is. Perl 5 borrows heavily from other languages, most of which are procedural or special purpose languages, and by far, the most powerful features come from the special purpose languages. Perl 6 too borrows heavily but favors features from object oriented languages from industry and from functional languages from academia. As I write this, the latest, unreleased version of the language is needed to run the examples, and this chapter will help you download, patch, and build a development version of Perl from sources. This book uses Perl modules heavily to demonstrate Perl 6 concepts, and in the interest of easily installing these, I'll show you how to set Perl to fetch CPAN modules automatically on demand, which is itself a Perl 6 concept. Many of these modules tailor, or let you tailor, Perl's behavior to data types, so a summary of Perl 5 data types is presented which doubles as a reader's guide to the standard documention on built-in functions. Chapters after this one outline in detail the changes and addition to Perl 5 that create Perl 6, but this chapter first sets the stage for the kinds of changes I'm going to detail. =head2 Hello World F is the program that parses and executes Perl programs: $ perl -e 'print "Hello, world!\n";' Run that at the command shell for the familiar greeting. =head2 Dual-License Perl is a copyrighted work, but the owner of the copyright, Larry Wall, makes Perl available under two license agreements, as is the privilege of a copyright holder. Generally speaking, licenses grant others certain rights to do things with a copyrighted work they otherwise wouldn't have under the terms of copyright law. Often these license grant precious few rights, such as: One person at a time may use this software on one computer; the software may not be moved to another computer or sold with the computer; you may not reverse engineer this software to build utilities which work with it; the copyright holder may revoke at any time this license for you to use this software, even though you paid money for it. This is in addition to not allowing you to make or distribute copies. Perl's license is far less restrictive than this, but there are certain controls in place. You have the choice of two licenses, the I and the I. Under the terms of either license, you're not limited in how you may use Perl, and, provided you abide by the terms of the license, the license is non-revokable. The Aritistic License, included with Perl in the file named F, allows for creation of commercial versions of Perl provided they don't conflict with, and are properly distinguished from, the community maintained Perl. This allows Larry Wall creative control over the official Perl while others are able to make improved and specialized versions. The Artistic License also grants programmers the right to embed Perl in commercial creations of their own (provided the primary selling point of that creation isn't that Perl is embedded in it). This lets you build a business around Perl and even make user extensibility using Perl a feature of products you create. Further more, commercial interest may cause Perl to be ported to new platforms where the free software developers don't have the knowledge or inclination. Under the terms of the GNU GPL, the software community may modify and enhance Perl, and may redistribute, and even sell, copies of Perl (as long as the license is perpetuated in copies). As Perl cannot be taken off the market by any single entity, you'll never find yourself helpless to obtain bug or security fixes fixes, as any competent C programmer can, with some work, perform this service for you. This is a rough summary; read the file F, included with Perl's source code, and the GNU GPL at F for details. =head2 Perl's Influences I can't think of a better introduction to the Perl language than listing the features it sports, much like an advertising brochure might. It's widely known Perls 1 through 4 borrowed from "C, sed, awk, and sh" and "language historians will also note some vestiges of csh, Pascal, and even BASIC-PLUS" (I'm quoting the F manual page here). Regular expressions originated in I, the Unix line mode text editor, of which I is a non-interactive version intended for batch processing text data. I is text scanning and reporting language also possessing a decidedly C influence (which is little wonder as awk and C shared creators). I apparently contributed some notions of lists and list processing (including the C<$#arr> syntax for counting the number of elements in an array, C<@arr>), but the ideas of readily piping data to from other programs and expanding variables in strings come from shell scripting languages such as csh and sh. (sh is the Bourne shell). =head3 Perl 5 Influences Perls 1 through 4 took from procedural, special purpose text processing, and scripting languages, but Perl 5 branched out into functional and and object oriented languages. Perl 5.00, released in 1994, introduced objects, a feature first realized in Simula (1968), where it languished in academia for nearly 20 years before it was popularized by C++. Perl would add support for overloaded operators soon afterwards, allowing programmers to use create objects that behaved as ordinary strings and numbers as far as the operators are concerned, or even invent new meanings for operators when used on their objects. Perl 5.00 also took the idea of lexically scoped variables from Lisp. (I is a functional programming concept where it refers to a system of scope and reference counting where a variables are limited in scope to the current block). >From PL/I (1965), Perl 5.005 took multiple concurrent threads of execution. Lisp also introduced a concept of I, which would later become known as I, that allows a running program to inspect itself to learn about such things as functions defined and variables defined. Perl barrowed this idea as well (though no languages outside of the Lisp family of languages have truly completed and generalized this idea because Lisp source code is just lists of data). =head3 Perl 6 Influences Perl 6 continues in the footsteps of Perl 5, drawing from functional, object oriented, and specialized languages. Python arguments may be passed into functions using the parameter names rather than position in a list. In other words, if a function had a variable named C, a call to that function could supply a value for C with an expressioin of the form C. (Apologizes if there is prior art here I'm not aware of). Perl 6 adopts this feature. The Lisp folks have a saying about how all other languages slowly evolve towards Lisp. Perhaps this is true, of they don't mean evolve I towards Lisp. Lisp macros are defined just as regular function call is, but when called, the call executes immediately, stopping compilation momentarily to do so. The output of the macro may be code that's substituted back in in place of the call (which may be nothing more than a constant value or variable reference computed at compile time). Also useful for extending the language as is an idea from the ML family of languages: allowing programms to extend the language by introducing entirely new operators rather than merely overloading existing operators. Perl 6 better rounds out Perl's reflection facilities, allowing inspection of the parameter names and types expected by subroutines and the ability to inspect lexical variables in other lexical contexts. Perl 6 adopts Smalltalk's (early 1970's) concept of making everything an object to generalize the language and add flexibility to objectish things people want to do. In Perl 6, for example, subroutines are objects, and may be queried for information such as the parameters they expect, and operators are a kind of subroutine, and likewise may be queried for meta-information. Python and C both had a concept of user defined types beyond the character and numeric types included with the language, and both languages attempted to check for consistant use of these types, as, unlike numeric types, they couldn't automatically be converted between. Object oriented languages and functional languages alike ran with the idea of program validation, and Perl 6 optionally, on a variable by variable basis, performs this checking. The Icon programming language introduced a combinational behavior, where logic tests are performed of sets of data, where each set may be composed of other sets. This overloads the meanings of the logic operators. For example, C<< (1|2|3) = (0|1) >> is true as C<1> exists in both sets. Perl 6 includes this feature. Perl 5 mplementations are available for most of the features mentioned here, including combinational logic, the idea of making everything an object, better type checking, and to a degree, named parameters and reflection. Other topics are covered in this book as well. =head3 Functional and Object Oriented Languages I languages introduce a sence of multiplicity to programming, where instead of merely having one module with its own data and functions, you may have multiple independent copies of that module, and rather than having a single implementation of that module, multiple versions of it may be swapped out and multiple versions may be used concurrently in a single program. Functions in I are garunteed to return the same results given the same arguments, which implies a lack of global variables and a lack of side-effects from expressions. For example, there are no special variables to alter the basic rules of pattern matching or built-in functions to change the working directory for the entire program. As a result of restricting the design of the language, functional languages developed powerful primitives for expressing solutions recursively and in terms of pipelining lists of data through series of operations. Just as many languages are primarily, but not completely, object oriented, most functional languages are primarily, but not entirely, functional. Lisp, Scheme, Haskell, and the ML family of languages represent functional languages, with the last two being the most pure of these. Many functional languages, such as Common Lisp and Ocaml (an ML language), have object systems and are thus hybrid languages. As Perl 6 adds more list processing built-in functions, it seems fair to call it a hybrid language as well. =head2 Get and Build Perl Examples for this book require Perl 5.8.4 or later. Some features described require "bleeding edge" (unstable) version 5.9.2. One module used heavily throughout this book, F, requires patches to the Perl interpreter. =head3 Microsoft Windows Users ActiveState Perl directly interfaces to the Microsoft Windows operating system and because of that is normally the preferred version of Perl for Microsoft Windows machines. However, it doesn't come with sources and modules aren't built inside of a full POSIX 2 compliant environment, and this hobbles some of the more demanding modules documented in this book. You're going to need the Cygwin environment to take advantage of this book. Download Cygwin from F<< http://www.cygwin.com >>. You'll get a small installer that automates fetching and installing potentially hundreds of optional software bundles. You're going to need a full compiler build environment including F, F, and F. After installing Cygwin and the appropriate bundles, you have a Unix-like system running on top of Microsoft Windows. Cygwin's command shell is F, the GNU Bourne Again Shell, which works with the command line examples in this book. Modules install using the process shown XXX section. Code examples in this book require no modification to run on Microsoft Windows (especially under Cygwin), but you should consult F for information about potential portability problems. If you don't have F installed, the same documentation is available online at F. Follow the instructions in the next section, "Building Perl", for the next steps in building Perl from source. =head3 Building Perl For POSIX 2 compliant systems with full build environment (such as Cygwin, Linux, FreeBSD, and Apple's MacOS X), get the portable version of Perl 5 from the CPAN at F. Fetch the latest source code from F<< ftp://ftp.cpan.org/pub/CPAN/src >>. Here are two of the entries right now: -rw-rw-r-- 1 ftp ftp 11930764 Jul 19 21:57 perl-5.8.5.tar.gz -rw-rw-r-- 1 ftp ftp 11995887 Mar 16 2004 perl-5.9.1.tar.gz Odd minor numbered versions are development versions. C<< 5.9.1 >> is development (C<9> is the minor version) and C<< 5.8.5 >> is stable (C<8> is the minor version). If you have the F utility, get the F version instead of the F version to save bandwidth. On a Unix-like system, the install process might go something like this, assuming Perl version 5.8.3: tar -xzvf perl-5.8.5.tar.gz cd perl-5.8.5 ./Configure -de && make && make install After moving into the directory containg the sources and before running F, apply the F<< autobox-0.xx/patch/perl-5.x.x.diff >> patch for your version of F and your version of F. You'll first need to download and uncompress the F module from CPAN. Find it using the CPAN search engine at F. tar -xzvf autobox-0.12.tar.gz tar -xzvf perl-5.8.5.tar.gz cd perl-5.8.5 patch < ../autobox-0.12/patch/perl-5.8.5.diff ./Configure -de && make && make install Perl's install process will no longer replace F by default, so if you have a vendor supplied version that you'd like to install over top of, use the C<< --prefix >> argument to C: ./Configure -de --prefix=/usr && make && make install After C, run F and you should see a message similar to: This is perl, v5.9.4 built for i386-netbsd (with 1 registered patch, see perl -V for more detail) Copyright 1987-2004, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using `man perl' or `perldoc perl'. If you have access to the Internet, point your browser at http://www.perl.com/, the Perl Home Page. Your version and host platform will likely differ from mine. If you do remove the version of Perl supplied with your operating system, scripts written in Perl that came with your operating system may fail to function - newer versions of Perl 5 are more aware of syntax errors, deprecated features, and grossly unsafe operations than earlier versions of Perl 5. If you elect not to replace the F that came with the system, the default (for most platforms) is to install into F. Use F<< #!/usr/local/bin/perl >> as the she-bang line to use the new version you've installed. I like to reference specific versions of Perl in my scripts easy upgrades. I can then change each script, one by one, to use the new version of Perl and test it. This way, no scripts broke completely and escaped attentioned. Specific versions of Perl may be referenced explicitly as long as they aren't uninstalled: #!/usr/local/bin/perl5.9.0 Modules dependant on a specific version of Perl will need to be installed for the new version of Perl. The old version of the module will stay installed for the old version of Perl. The F shell's F command creates an installable bundle of modules installed for an existing version of Perl and places the bundle under the F<.cpan> directory of your home directory (or whereever F was configured to place its data). This is useful if you've installed modules for the previous version of Perl and programs depend on those modules. After installing a new version of Perl, install this bundle as if it were any other Perl module. XXX reference CPAN module install instructions =begin WARNING RedHat's RPM Package Manager It is strongly recommended that RedHat users doing serious development install Perl from source and not use F<< rpm >> to install modules or updates. Perl does a lot of work to manage different versions of module dependencies and RPM was never designed for this complexity. =end =head3 Development Versions of Perl Development versions include bug fixes as well as new features and usually work well. Use the F utility to download (and update an already downloaded copy) of Perl: mkdir bleedperl rsync -avz rsync://ftp.linux.activestate.com/perl-current/ bleedperl/ To build a development version of F, you'll need the F<-Dusedevel> command line argument to C<./Configure>: cd bleedperl ./Configure -de -Dusedevel && make && make install Module incompatabilities and errors with some expressions are common problems. If you don't mind dealing with and reporting these hiccups, running the development version helps the testing process. =head2 Perl as the Script Interpeter The first line of any Perl program should read: #!/usr/bin/perl If you're writing Perl on Win32 with the intention of uploading it to a Unix-like system, turn MS-DOS style newlines off in your text editor and use this example first line instead: #!/usr/bin/perl -- This prevents a common problem where Unix-like systems look for a program named F<< /usr/bin/perl^M >> (where F<< ^M >> is the character generated by holding down the Control key and pressing the M key) and fail to find it. The F<< -- >> tells F that no futher arguments follow and to ignore the rest of the command line. Alternatively, the single line command C<< perl -pi.bak -e 's/\r$//' program_name.pl >> will strip MS-DOS style line feeds. You will need to trade the single quotes for double quotes on MS-DOS based systems. Unix-like systems use the first line of a program to specify which interpreter should run the program when the first line starts with the magic sequence C<< #! >>, pronounced I. Even Win32 users should use the shebang line. Environments such as Apache use this and Perl itself looks for command line arguments there on the Win32 platform. Perl versions 1 through 5 have been mostly backwards compatiable so the executable name F<< perl >> has been kept. Perl 6 currently installs as F<< perl6 >> and will probably continue to do so atleast until an automatic translation or emulation mechanism is put in place. To distinguish Perl 6 programs from ones written for Perl 5 and earlier, use this she-bang line: #!/usr/bin/perl6 Give programs their she-bang lines and mark them executable with F<< chmod u+x program.pl >> and run them as if they were a binary program. Common Gateway Interface programs should end in F<.cgi> as most webservers, even on Unix-like systems, look at the file extension. Command-line programs written in Perl don't require F<.pl> on the end of their name. (What if you rewrite the program in another language later?) =head2 Perl Basics Comments start with the C<#> character and may appear on the end of the line. Not all C<#> characters start comments - they may appear in quoted strings, regular expressions, or as user-selected quote characters. # This is a comment The she-bang line is a comment to F. Import modules with the C syntax: C. Pragmatic modules modify the environment in some way rather than providing routines or objects or code libraries. These traditionally go next after the she-bang line: #!/usr/bin/perl use strict; use warnings; Some modules, such as F, are considered quasi-pragmatic. # Make sure headers are sent reguardless of most compile time errors - Perl 5 use CGI::Carp 'fatalsToBrowser'; This intercepts warning messages and fatal errors, queuing up warnings in case of a fatal error, and sending HTTP headers, fatal errors, and accumulated warnings to C<< STDOUT >>, formatted for display by a web browser. F<< CGI::Carp >> is a must for web development. As mentioned in L, C<< use diagnostics >> is handy too, especially for those new to Perl needing explanations of what the errors mean. Alternatively, consult F to discover the meaning of error messages. L deals with common problems. C also requests versions. It can request a minimum version of a module or a minimum version of F itself. use 5.10.0; # Require atleast perl version 5.10 use 6; # Require perl 6 to run Failure looks something like: Perl v5.10.0 required--this is only v5.9.0, stopped at -e line 1. This and the C statement are two days Perl 6 code is distinguinshed from Perl 5 code. =head2 Installing Modules Perl is a user-extensible language. Modules are the means by which the language is extended. The most important features are the ones we haven't even thought of yet. This book makes heavy use of optional modules to extend Perl 5 into doing Perl 6-like things. Perl 6 will fetch and install modules for you, should you attempt to use a module you don't currently have installed. We can do this too with Perl 5 with the F<< Acme::Intraweb >> module and the F<< CPANPLUS >> module. F<< CPANPLUS >> also gives you an easy shell to use to install modules manually, invokable with the command F<< cpanp >>. Once in the shell, use the F<< install >> command with the exact name of a module, without version number, and the module will download and install. F<< Acme::Intraweb >> will likely fail on atleast one module in this book, so remember that using F or F<< cpanp >> are the traditional methods of installing modules. Fetch F from F<< http://search.cpan.org/search?q=CPANPLUS >>, fetch F from F<< http://search.cpan.org/search?q=Acme::Intraweb >>, and install them by hand. In the search results, the bolded name takes you to the documentation, and the smaller version with version number takes you to a screen with a download link. Click on F in the search results for C<< Acme::Intraweb >>, for example. tar -xzvf CPANPLUS-0.048.tar.gz cd CPANPLUS-0.048 perl Makefile.PL make make test make install This procedure is standard. Repeat the process for F<< Acme::Intraweb >>. =head2 Data Types Perl features true X variables. Lexicals are rare treat for a language frequently used outside of acedamia to write production code. Lexical variables are valid in any code until the end of the block. Even if a reference to a portion of that code is returned or stored and then executed later, those variables will still have their values. The values will be remembered even if the routine has since been called again. This feature comes to us by way of Lisp. Declare lexical variables using the C keyword. Perl's basic data types are hashes, arrays, and scalars, any of which can be lexicals when declared with C: # Lexical variables - Perl 5 and Perl 6 my $foo; # declares a scalar - references are scalars my @foo; # declares an array my %foo; # declares a hash Scalars may hold references to other things such as regular expressions, objects, and code. =begin NOTE Naming Things Variables traditionally have lower case names with underscores separating words, C<< $like_this >>. Constants traditionally are written in all capital letters with or without underscores, C<< $LIKETHIS >>. Class names are written in mixed case with no underscores, C<< SuchAsThis >>. =end NOTE Typing F<< perldoc perlfunc >> at the shell pulls up documention for the built-in functions. The Perl core is rich in functions that interface to the operating system, and work on arrays and hashes. F uses a sort of short-hand when listing the functions. For example, C is listed with three forms: chomp VARIABLE chomp( LIST ) chomp C will work on any variable, a list of terms, or without an argument at all. Built-in functions like C may do completely different things depending on how you use the result (which context they execute in) and what you pass to them. Prossiblities for the kinds of things you pass to built-ins are: =over 1 =item C - any variable, such as C<$scalar_var>, C<@array_var>, C<%hash_var> =item C - one or more values of arbitrary origin, all in a list =item C - an array variable, which looks like C<@foo> =item C - a hash variable, which looks like C<%foo> =item C - sometimes an expression that products a hash value, sometimes an expression that picks a value out of an array, other times other things =item C - a number =item C - a string representing the name of a file =item C - the result of opening a file as well as C, C, and C =item C - a block of code, either right there, or else a reference to a subroutine =item Others - other values with less formal meanings are used, too =item None - operators on the default variable, C<$_> =back Operations that require an C won't accept a C. An array can be modified in various ways where a list is read-only. =head2 Chapter Summary That's the penny tour. F is another quick introduction to Perl, complimentary to this chapter, that introduces Perl from the perspective of its basic syntax. You should have F installed and built from source (though many examples will still work with only a reasonably modern but otherwise unmodified F). You should know how to install modules, know where to go for documentation on for modules, for operators, and for built-in functions. I've tried to convey how Perl builds on the ideas of other languages, and how the individual ideas are more valuable for being combined in a greater-than-the-sum-of-their-parts sort of way. From scott at illogics.org Thu Oct 14 14:12:36 2004 From: scott at illogics.org (Scott Walters) Date: Thu Oct 14 14:14:53 2004 Subject: [Phoenix-pm] "Perl 6 Now" chapter 1 In-Reply-To: <20041014190148.GU18376@illogics.org> References: <20041014190148.GU18376@illogics.org> Message-ID: <20041014191236.GV18376@illogics.org> Whomever has the 0spam.com email address, you're probably not going to see very many list posts as people posting to the list aren't going to bother to go through the captcha. And I'm imagining a future where posting an innocent email to a list gets you bombarded with hundreds of email verification requests with links to web captchas. And what happens when a 0spam.com user emails someone who has an account at a like service? Both services would do a cold-war gig until one first accepted email from the other, which neither will do, so no mail goes through. Also, a lot of spam is sent with well known email addresses as the sender. So, you might want to add phoenix-pm@pm.org to a whitelist ;) Perhaps I'm just bitter because I discovered /usr was full, and upon investigation, found Mail::SpamAssassin had accumulated over a gig of data, and now I'm running without filtering until I can write a minimal replacement (sometimes you just have to do things yourself if you want them done right - other people have entirely too much time on their hands). Cheers! -scott From scott at illogics.org Fri Oct 15 03:31:50 2004 From: scott at illogics.org (Scott Walters) Date: Fri Oct 15 03:34:12 2004 Subject: [Phoenix-pm] Re: "Perl 6 Now" chapter 1 In-Reply-To: <20041014190148.GU18376@illogics.org> References: <20041014190148.GU18376@illogics.org> Message-ID: <20041015083150.GH7867@illogics.org> The silence is deafening. Can anyone commit to doing this in the next day? Did I mention I was under a time constraint? (Yes, yes, I did). Where's the love? -scott On 0, Scott Walters wrote: > Again, but chapter 1, which needs some assurance (hint? suggestion?) > of technical accuracy. The editor will look at it after this and > suggest structural and content changes, and the copy editor will fix > any spelling errors I've introduced since I last spell checked it > and correct grammar and style - so don't worry about those things. > > This chapter exists to get some of the technical things out of the way > readers might not be familiar with (building Perl from source, etc), > and also to serve as a more traditional first chapter by defining > the terms the book is about. I think it overlaps with the intro too > much still. Hrm. > > Thanks! > > -scott > > > > =head1 1. The Programmer's Introduction to the Perl Computer Programming Language > > Perl is a technical creation as well as a social creation, and the license it's distributed under > tells a good deal about what kind of social creation Perl is. > > Perl 5 borrows heavily from other languages, most of which are procedural or special purpose languages, > and by far, the most powerful features come from the special purpose languages. > Perl 6 too borrows heavily but favors features from object oriented languages from industry and from > functional languages from academia. > > As I write this, the latest, unreleased version of the language is needed to run the examples, > and this chapter will help you download, patch, and build a development version of Perl from sources. > This book uses Perl modules heavily to demonstrate Perl 6 concepts, and in the interest of > easily installing these, I'll show you how to set Perl to fetch CPAN modules automatically on > demand, which is itself a Perl 6 concept. > Many of these modules tailor, or let you tailor, Perl's behavior to data types, so a summary > of Perl 5 data types is presented which doubles as a reader's guide to the standard documention > on built-in functions. > > Chapters after this one outline in detail the changes and addition to Perl 5 that create > Perl 6, but this chapter first sets the stage for the kinds of changes I'm going to detail. > > > =head2 Hello World > > F is the program that parses and executes Perl programs: > > $ perl -e 'print "Hello, world!\n";' > > Run that at the command shell for the familiar greeting. > > > =head2 Dual-License > > Perl is a copyrighted work, but the owner of the copyright, Larry Wall, > makes Perl available under two license agreements, as is the privilege of a copyright holder. > Generally speaking, licenses grant others certain rights to do things > with a copyrighted work they otherwise wouldn't have under the terms of copyright law. > Often these license grant precious few rights, such as: One person at a time may use this > software on one computer; the software may not be moved to another computer or sold > with the computer; you may not reverse engineer this software to build utilities which > work with it; the copyright holder may revoke at any time this license for you to use > this software, even though you paid money for it. > This is in addition to not allowing you to make or distribute copies. > > Perl's license is far less restrictive than this, but there are certain controls in place. > You have the choice of two licenses, the I and the I. > Under the terms of either license, you're not limited in how you may use Perl, > and, provided you abide by the terms of the license, the license is non-revokable. > > The Aritistic License, included with Perl in the file named F, allows > for creation of commercial versions of Perl provided they don't conflict with, > and are properly distinguished from, the community maintained Perl. > This allows Larry Wall creative control over the official Perl while others > are able to make improved and specialized versions. > The Artistic License also grants programmers the right to embed Perl in > commercial creations of their own > (provided the primary selling point of that creation isn't that Perl is embedded in it). > This lets you build a business around Perl and even make user extensibility using Perl a > feature of products you create. > Further more, commercial interest may cause Perl to be ported to new platforms where > the free software developers don't have the knowledge or inclination. > > Under the terms of the GNU GPL, the software community may modify and enhance Perl, and > may redistribute, and even sell, copies of Perl (as long as the license is perpetuated in copies). > As Perl cannot be taken off the market by any single entity, you'll never > find yourself helpless to obtain bug or security fixes > fixes, as any competent C programmer can, with some work, perform this service for you. > > This is a rough summary; read the file F, included with Perl's source code, and the > GNU GPL at F for details. > > > =head2 Perl's Influences > > I can't think of a better introduction to the Perl language than listing the features > it sports, much like an advertising brochure might. > > It's widely known Perls 1 through 4 borrowed from "C, sed, awk, and sh" and > "language historians will also note some vestiges of csh, Pascal, and even BASIC-PLUS" > (I'm quoting the F manual page here). > Regular expressions originated in I, the Unix line mode text editor, of which > I is a non-interactive version intended for batch processing text data. > I is text scanning and reporting language also possessing a decidedly C influence > (which is little wonder as awk and C shared creators). > I apparently contributed some notions of lists and list processing > (including the C<$#arr> syntax for counting the number of elements in an array, C<@arr>), > but the ideas of readily piping data to from other programs and expanding variables > in strings come from shell scripting languages such as csh and sh. > (sh is the Bourne shell). > > > =head3 Perl 5 Influences > > Perls 1 through 4 took from procedural, special purpose text processing, and scripting > languages, but Perl 5 branched out into functional and and object oriented languages. > > Perl 5.00, released in 1994, introduced objects, a feature first realized in Simula (1968), where it > languished in academia for nearly 20 years before it was popularized by C++. > Perl would add support for overloaded operators soon afterwards, allowing programmers > to use create objects that behaved as ordinary strings and numbers as far as the operators > are concerned, or even invent new meanings for operators when used on their objects. > Perl 5.00 also took the idea of lexically scoped variables from Lisp. > (I is a functional programming concept where it refers to a system of > scope and reference counting where a variables are limited in scope > to the current block). > > From PL/I (1965), Perl 5.005 took multiple concurrent threads of execution. > > Lisp also introduced a concept of I, which would later become known as I, that > allows a running program to inspect itself to learn about such things as functions defined and variables > defined. > Perl barrowed this idea as well (though no languages outside of the Lisp family of languages > have truly completed and generalized this idea because Lisp source code is just lists of data). > > > =head3 Perl 6 Influences > > Perl 6 continues in the footsteps of Perl 5, drawing from functional, object oriented, > and specialized languages. > > Python arguments may be passed into functions using the parameter names rather than position in a list. > In other words, if a function had a variable named C, a call to that function > could supply a value for C with an expressioin of the form C. > (Apologizes if there is prior art here I'm not aware of). > Perl 6 adopts this feature. > > The Lisp folks have a saying about how all other languages slowly evolve towards Lisp. > Perhaps this is true, of they don't mean evolve I towards Lisp. > Lisp macros are defined just as regular function call is, but when called, the > call executes immediately, stopping compilation momentarily to do so. > The output of the macro may be code that's substituted back in in place of the call > (which may be nothing more than a constant value or variable reference computed at compile time). > > Also useful for extending the language as is an idea from the ML family of languages: > allowing programms to extend the language by introducing entirely new operators rather > than merely overloading existing operators. > > Perl 6 better rounds out Perl's reflection facilities, allowing inspection of the parameter names and types > expected by subroutines and the ability to inspect lexical variables in other lexical contexts. > > Perl 6 adopts Smalltalk's (early 1970's) concept of making everything an object to generalize > the language and add flexibility to objectish things people want to do. > In Perl 6, for example, subroutines are objects, and may be queried for information such as > the parameters they expect, and operators are a kind of subroutine, and likewise may be > queried for meta-information. > > Python and C both had a concept of user defined types beyond the character and numeric > types included with the language, and both languages attempted to check for consistant > use of these types, as, unlike numeric types, they couldn't automatically be converted between. > Object oriented languages and functional languages alike ran with the idea of > program validation, and Perl 6 optionally, on a variable by variable basis, performs this checking. > > The Icon programming language introduced a combinational behavior, where logic tests > are performed of sets of data, where each set may be composed of other sets. > This overloads the meanings of the logic operators. > For example, C<< (1|2|3) = (0|1) >> is true as C<1> exists in both sets. > Perl 6 includes this feature. > > Perl 5 mplementations are available for most of the features mentioned here, > including combinational logic, the idea of making everything an object, > better type checking, and to a degree, named parameters and reflection. > Other topics are covered in this book as well. > > > =head3 Functional and Object Oriented Languages > > I languages introduce a sence of multiplicity to programming, where > instead of merely having one module with its own data and functions, you may have > multiple independent copies of that module, and rather than having a single implementation > of that module, multiple versions of it may be swapped out and multiple versions may > be used concurrently in a single program. > > Functions in I are garunteed to return the same results given the > same arguments, which implies a lack of global variables and a lack of side-effects from expressions. > For example, there are no special variables to alter the basic rules of pattern matching > or built-in functions to change the working directory for the entire program. > As a result of restricting the design of the language, functional languages developed > powerful primitives for expressing solutions recursively and in terms of pipelining lists > of data through series of operations. > Just as many languages are primarily, but not completely, object oriented, most > functional languages are primarily, but not entirely, functional. > Lisp, Scheme, Haskell, and the ML family of languages represent functional languages, with > the last two being the most pure of these. > > Many functional languages, such as Common Lisp and Ocaml (an ML language), > have object systems and are thus hybrid languages. > As Perl 6 adds more list processing built-in functions, it seems fair to call > it a hybrid language as well. > > > =head2 Get and Build Perl > > Examples for this book require Perl 5.8.4 or later. > Some features described require "bleeding edge" (unstable) version 5.9.2. > One module used heavily throughout this book, F, requires patches to the Perl interpreter. > > =head3 Microsoft Windows Users > > ActiveState Perl directly interfaces to the Microsoft Windows operating system and because > of that is normally the preferred version of Perl for Microsoft Windows machines. > However, it doesn't come with sources and modules aren't built inside of a full POSIX 2 compliant > environment, and this hobbles some of the more demanding modules documented in this book. > You're going to need the Cygwin environment to take advantage of this book. > Download Cygwin from F<< http://www.cygwin.com >>. > You'll get a small installer that automates fetching and installing potentially hundreds of optional > software bundles. > You're going to need a full compiler build environment including F, F, and F. > After installing Cygwin and the appropriate bundles, you have a Unix-like system > running on top of Microsoft Windows. > Cygwin's command shell is F, the GNU Bourne Again Shell, which works with the > command line examples in this book. > Modules install using the process shown XXX section. > Code examples in this book require no modification to run on Microsoft Windows (especially under > Cygwin), but you should consult F for information about potential portability > problems. > If you don't have F installed, the same documentation is available online at > F. > Follow the instructions in the next section, "Building Perl", for the next steps in > building Perl from source. > > > =head3 Building Perl > > For POSIX 2 compliant systems with full build environment (such as Cygwin, Linux, FreeBSD, and Apple's MacOS X), > get the portable version of Perl 5 from the CPAN at F. > Fetch the latest source code from F<< ftp://ftp.cpan.org/pub/CPAN/src >>. > Here are two of the entries right now: > > -rw-rw-r-- 1 ftp ftp 11930764 Jul 19 21:57 perl-5.8.5.tar.gz > -rw-rw-r-- 1 ftp ftp 11995887 Mar 16 2004 perl-5.9.1.tar.gz > > Odd minor numbered versions are development versions. > C<< 5.9.1 >> is development (C<9> is the minor version) and C<< 5.8.5 >> is stable (C<8> is the minor version). > If you have the F utility, get the F version instead of the F > version to save bandwidth. > On a Unix-like system, the install process might go something like this, assuming Perl > version 5.8.3: > > tar -xzvf perl-5.8.5.tar.gz > cd perl-5.8.5 > ./Configure -de && make && make install > > After moving into the directory containg the sources and before running > F, apply the F<< autobox-0.xx/patch/perl-5.x.x.diff >> patch for your version of > F and your version of F. > You'll first need to download and uncompress the F module from CPAN. > Find it using the CPAN search engine at F. > > tar -xzvf autobox-0.12.tar.gz > tar -xzvf perl-5.8.5.tar.gz > cd perl-5.8.5 > patch < ../autobox-0.12/patch/perl-5.8.5.diff > ./Configure -de && make && make install > > Perl's install process will no longer replace F by default, so if you have a vendor supplied > version that you'd like to install over top of, use the C<< --prefix >> argument > to C: > > ./Configure -de --prefix=/usr && make && make install > > After C, run F and you should see a message similar to: > > This is perl, v5.9.4 built for i386-netbsd > (with 1 registered patch, see perl -V for more detail) > > Copyright 1987-2004, Larry Wall > > Perl may be copied only under the terms of either the Artistic License or the > GNU General Public License, which may be found in the Perl 5 source kit. > > Complete documentation for Perl, including FAQ lists, should be found on > this system using `man perl' or `perldoc perl'. If you have access to the > Internet, point your browser at http://www.perl.com/, the Perl Home Page. > > Your version and host platform will likely differ from mine. > If you do remove the version of Perl supplied with your operating system, scripts > written in Perl that came with your operating system may fail to function - newer versions > of Perl 5 are more aware of syntax errors, deprecated features, and grossly unsafe > operations than earlier versions of Perl 5. > > If you elect not to replace the F that came with the system, the default (for most platforms) is to > install into F. > Use F<< #!/usr/local/bin/perl >> as the she-bang line to use the new version you've installed. > I like to reference specific versions of Perl in my scripts easy upgrades. > I can then change each script, one by one, to use the new version of Perl and test it. > This way, no scripts broke completely and escaped attentioned. > Specific versions of Perl may be referenced explicitly as long as they aren't uninstalled: > > #!/usr/local/bin/perl5.9.0 > > Modules dependant on a specific version of Perl will need to be installed > for the new version of Perl. > The old version of the module will stay installed for the old version of Perl. > The F shell's F command creates an installable bundle of modules installed > for an existing version of Perl and places the bundle under the F<.cpan> directory of your > home directory (or whereever F was configured to place its data). > This is useful if you've installed modules for the previous version of Perl and programs depend on those modules. > After installing a new version of Perl, install this bundle as if it were any other > Perl module. > XXX reference CPAN module install instructions > > =begin WARNING RedHat's RPM Package Manager > > It is strongly recommended that RedHat users doing serious development > install Perl from source and not use F<< rpm >> to install modules or > updates. Perl does a lot of work to manage different versions of > module dependencies and RPM was never designed for this complexity. > > =end > > > =head3 Development Versions of Perl > > Development versions include bug fixes as well as new features and usually work well. > Use the F utility to download (and update an already downloaded copy) of > Perl: > > mkdir bleedperl > rsync -avz rsync://ftp.linux.activestate.com/perl-current/ bleedperl/ > > To build a development version of F, you'll need the F<-Dusedevel> > command line argument to C<./Configure>: > > cd bleedperl > ./Configure -de -Dusedevel && make && make install > > Module incompatabilities and errors with some expressions are common problems. > If you don't mind dealing with and reporting these hiccups, running the development version > helps the testing process. > > > =head2 Perl as the Script Interpeter > > The first line of any Perl program should read: > > #!/usr/bin/perl > > If you're writing Perl on Win32 with the intention of uploading it to a Unix-like system, turn MS-DOS > style newlines off in your text editor and use this example first line instead: > > #!/usr/bin/perl -- > > This prevents a common problem where Unix-like systems look for a program named > F<< /usr/bin/perl^M >> (where F<< ^M >> is the character generated by holding down > the Control key and pressing the M key) and fail to find it. > The F<< -- >> tells F that no futher arguments follow and to ignore the rest of the command line. > Alternatively, the single line command C<< perl -pi.bak -e 's/\r$//' program_name.pl >> > will strip MS-DOS style line feeds. > You will need to trade the single quotes for double quotes on MS-DOS based systems. > > Unix-like systems use the first line of a program to specify which interpreter > should run the program when the first line starts with the magic sequence > C<< #! >>, pronounced I. > Even Win32 users should use the shebang line. > Environments such as Apache use this and Perl itself looks for command line arguments there on the Win32 platform. > > Perl versions 1 through 5 have been mostly backwards compatiable so the > executable name F<< perl >> has been kept. > Perl 6 currently installs > as F<< perl6 >> and will probably continue to do so atleast until an > automatic translation or emulation mechanism is put in place. > > To distinguish Perl 6 programs from ones written for Perl 5 and earlier, use this > she-bang line: > > #!/usr/bin/perl6 > > Give programs their she-bang lines and mark them executable with F<< chmod u+x program.pl >> > and run them as if they were a binary program. > Common Gateway Interface programs should end in F<.cgi> as most webservers, even on Unix-like > systems, look at the file extension. > Command-line programs written in Perl don't require F<.pl> on the end of their name. > (What if you rewrite the program in another language later?) > > > =head2 Perl Basics > > Comments start with the C<#> character and may appear on the end of the line. > Not all C<#> characters start comments - they may appear in quoted strings, > regular expressions, or as user-selected quote characters. > > # This is a comment > > The she-bang line is a comment to F. > > Import modules with the C syntax: C. > Pragmatic modules modify the environment in some way > rather than providing routines or objects or code libraries. > These traditionally go next after the she-bang line: > > #!/usr/bin/perl > > use strict; > use warnings; > > Some modules, such as F, are considered quasi-pragmatic. > > # Make sure headers are sent reguardless of most compile time errors - Perl 5 > use CGI::Carp 'fatalsToBrowser'; > > This intercepts warning messages and fatal errors, queuing up warnings in case of a fatal error, and sending > HTTP headers, fatal errors, and accumulated warnings to C<< STDOUT >>, formatted for display > by a web browser. > F<< CGI::Carp >> is a must for web development. > As mentioned in L, C<< use diagnostics >> is handy too, > especially for those new to Perl needing explanations of what the errors mean. > Alternatively, consult F to discover the meaning of error messages. > L deals with common problems. > > C also requests versions. > It can request a minimum version of a module or a minimum version of F itself. > > use 5.10.0; # Require atleast perl version 5.10 > use 6; # Require perl 6 to run > > Failure looks something like: > > Perl v5.10.0 required--this is only v5.9.0, stopped at -e line 1. > > This and the C statement are two days Perl 6 code is distinguinshed > from Perl 5 code. > > > =head2 Installing Modules > > Perl is a user-extensible language. > Modules are the means by which the language is extended. > The most important features are the ones we haven't even thought of yet. > This book makes heavy use of optional modules to extend Perl 5 into doing Perl 6-like things. > > Perl 6 will fetch and install modules for you, should you attempt to use a module > you don't currently have installed. > We can do this too with Perl 5 with the F<< Acme::Intraweb >> > module and the F<< CPANPLUS >> module. > F<< CPANPLUS >> also gives you an easy shell to use to install modules manually, invokable with > the command F<< cpanp >>. > Once in the shell, use the F<< install >> command > with the exact name of a module, without version number, and the module will > download and install. > F<< Acme::Intraweb >> will likely fail on atleast one > module in this book, so remember that using F or F<< cpanp >> are the traditional methods of > installing modules. > Fetch F from F<< http://search.cpan.org/search?q=CPANPLUS >>, > fetch F from F<< http://search.cpan.org/search?q=Acme::Intraweb >>, > and install them by hand. > In the search results, the bolded name takes you to the documentation, > and the smaller version with version number takes you to a screen with a download link. > Click on F in the search results for C<< Acme::Intraweb >>, for example. > > tar -xzvf CPANPLUS-0.048.tar.gz > cd CPANPLUS-0.048 > perl Makefile.PL > make > make test > make install > > This procedure is standard. > Repeat the process for F<< Acme::Intraweb >>. > > > =head2 Data Types > > Perl features true X variables. > Lexicals are rare treat for a language frequently used outside of acedamia to write production code. > Lexical variables are valid in any code until the end of the block. > Even if a reference to a portion of that code is returned or stored and then > executed later, those variables will still have their values. > The values will be remembered even if the routine has since been called again. > This feature comes to us by way of Lisp. > Declare lexical variables using the C keyword. > Perl's basic data types are hashes, arrays, and scalars, any of which can be lexicals when > declared with C: > > # Lexical variables - Perl 5 and Perl 6 > > my $foo; # declares a scalar - references are scalars > my @foo; # declares an array > my %foo; # declares a hash > > Scalars may hold references to other things such as regular expressions, objects, and code. > > > =begin NOTE Naming Things > > Variables traditionally have lower case names with underscores separating words, > C<< $like_this >>. > Constants traditionally are written in all capital letters > with or without underscores, C<< $LIKETHIS >>. > Class names are written in mixed case with no underscores, C<< SuchAsThis >>. > > =end NOTE > > Typing F<< perldoc perlfunc >> at the shell pulls up documention for the built-in functions. > The Perl core is rich in functions that interface to the operating > system, and work on arrays and hashes. > F uses a sort of short-hand when listing the functions. > For example, C is listed with three forms: > > chomp VARIABLE > chomp( LIST ) > chomp > > C will work on any variable, a list of terms, or without an argument at all. > Built-in functions like C may do completely different > things depending on how you use the result (which context they execute in) and what you pass to them. > Prossiblities for the kinds of things you pass to built-ins are: > > =over 1 > > =item C - any variable, such as C<$scalar_var>, C<@array_var>, C<%hash_var> > > =item C - one or more values of arbitrary origin, all in a list > > =item C - an array variable, which looks like C<@foo> > > =item C - a hash variable, which looks like C<%foo> > > =item C - sometimes an expression that products a hash value, sometimes an expression that picks a value out of an > array, other times other things > > =item C - a number > > =item C - a string representing the name of a file > > =item C - the result of opening a file as well as C, C, and C > > =item C - a block of code, either right there, or else a reference to a subroutine > > =item Others - other values with less formal meanings are used, too > > =item None - operators on the default variable, C<$_> > > =back > > Operations that require an C won't accept a C. > An array can be modified in various ways where a list is read-only. > > > =head2 Chapter Summary > > That's the penny tour. > F is another quick introduction to Perl, complimentary to this chapter, > that introduces Perl from the perspective of its basic syntax. > You should have F installed and built from source > (though many examples will still work with only a reasonably modern but otherwise unmodified F). > You should know how to install modules, know where to go for documentation on > for modules, for operators, and for built-in functions. > I've tried to convey how Perl builds on the ideas of other languages, and how > the individual ideas are more valuable for being combined in a greater-than-the-sum-of-their-parts sort of way. > From awwaiid at thelackthereof.org Fri Oct 15 10:49:01 2004 From: awwaiid at thelackthereof.org (Brock) Date: Fri Oct 15 10:49:14 2004 Subject: [Phoenix-pm] Re: "Perl 6 Now" chapter 1 In-Reply-To: <20041015083150.GH7867@illogics.org> References: <20041014190148.GU18376@illogics.org> <20041015083150.GH7867@illogics.org> Message-ID: <20041015154901.GR1321@thelackthereof.org> How about I look at it this evening / tomorrow morning? --Brock On 2004.10.15.01.31, Scott Walters wrote: | The silence is deafening. Can anyone commit to doing this in the next day? | Did I mention I was under a time constraint? (Yes, yes, I did). Where's the love? | | -scott From scott at illogics.org Fri Oct 15 17:22:01 2004 From: scott at illogics.org (Scott Walters) Date: Fri Oct 15 17:24:17 2004 Subject: [Phoenix-pm] Re: "Perl 6 Now" chapter 1 In-Reply-To: <20041015154901.GR1321@thelackthereof.org> References: <20041014190148.GU18376@illogics.org> <20041015083150.GH7867@illogics.org> <20041015154901.GR1321@thelackthereof.org> Message-ID: <20041015222201.GK18376@illogics.org> Hi Brock, That's for coming forward. It means a lot to me that *someone* would. I just got up a few hours ago and I've been slogging through email since. No wonder I'm loathe to go to bed. And no wonder I'm so willing to inflict the same sadism on others, flooding them with email. Don't worry about it though - looks like Doug beat you to it. But if you have any comments you *want* to voice, by all means, hit me. The introduction is important to me as it has to sell the damn thing. I'm not known for coherently organizing my thoughts. Cheers, -scott On 0, Brock wrote: > > How about I look at it this evening / tomorrow morning? > > --Brock > > On 2004.10.15.01.31, Scott Walters wrote: > | The silence is deafening. Can anyone commit to doing this in the next day? > | Did I mention I was under a time constraint? (Yes, yes, I did). Where's the love? > | > | -scott > > _______________________________________________ > Phoenix-pm mailing list > Phoenix-pm@mail.pm.org > http://www.pm.org/mailman/listinfo/phoenix-pm From awwaiid at thelackthereof.org Tue Oct 19 14:47:22 2004 From: awwaiid at thelackthereof.org (Brock) Date: Tue Oct 19 14:47:53 2004 Subject: [Phoenix-pm] Continuity Message-ID: <20041019194722.GP1321@thelackthereof.org> Hey all, I packaged up that technology I gave a talk on a bit, and will continue to polish it... but thought I'd let you guys know the status. It would be lovely if someone were to try using Continuity for a small project, guestbook or something simple, and give me lots of feedback/complaints so that I can know what is important to get documented first. Otherwise I will be adding more example programs and documentation. Here are some links: * http://tlt42.org/wiki.pl/Continuity - My wiki page for the project * http://search.cpan.org/perldoc?Continuity - CPAN entry Feedback encouraged, --Brock