From jobs at kandidates.com Fri Dec 5 14:14:01 2003 From: jobs at kandidates.com (Jobs) Date: Mon Aug 2 21:37:12 2004 Subject: SPUG: USA: Seattle, WA - 8 Web Developers, Enterprise E-Commerce Development Message-ID: <032901c3bb6c$9f7346a0$0200a8c0@nyc.rr.com> USA: Seattle, WA - 8 Web Developers, Enterprise E-Commerce Development http://www.kandidates.com/jobs/ooperlmason.htm Location: Seattle, WA (relocation available for dead-on matches) Duration: Full Time Salary: Competitive Positions: 8 Citizenship: US or Green Card Job Responsibilities: Interested in working in challenging, exciting Web development projects? Join the Enterprise E-Commerce Development team! As a developer on this team you will work independently and with software engineers, program managers, and design team members to create dynamic, optimized templates and its related partners on the platform alongside application services. Documented delivery of your ability to effectively explain technical options and limitations to both technical and non-technical audiences is required. You will be responsible for real-time operational support of the team's functional areas as well as brainstorming features and ideas. You will design and implement scalable, flexible features using HTML, Mason, Perl, and other Web technologies. Experience working with highly transactional systems and or C++/Java is a plus. Requirements: All candidates must have UNIX (or LINUX) experience. Candidates will have working knowledge of HTML, scripting languages, Perl, OO/Mason, and current trends in Web technology, as well as the desire to learn new technologies. Candidates must be innovative, creative, flexible, self-directed, and understand how to design and write high-performance, reliable, maintainable code. Candidate's ability to quickly adapt to new development environments, changing business requirements and learning new systems is highly desired. Please send source code samples and URL samples. Candidates must have a strong computer science background with a bachelor's degree, or higher, in computer science, required. Desired: Experience with other Web technologies like ASP, JSP, PHP, or graphics software such as Photoshop is a plus. A Bachelor's degree in Computer Science or a relevant area is highly desired. Experience with large database driven web sites or applications is highly desired. My client offers competitive compensation packages including comprehensive health care, 401K, and stock. Please submit resume and full time salary requirement to: jobs@kandidates.com Consultants MAY be considered for outstanding skills. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/spug-list/attachments/20031205/fd6c782a/attachment.htm From MichaelRWolf at att.net Sun Dec 7 14:21:55 2003 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:12 2004 Subject: SPUG: C is a scripting language??? Message-ID: I've started getting Google alerts for the keyword "Perl", a beta service of Google Labs http://www.google.com/newsalerts. The following alerg made me wonder/snicker.... ... Many sites use Perl as their scripting language, but our company chose C because we felt it was more flexible in the long term. ... If you have to be stuck in a gear, first gear is the one to choose, but who needs to write CGI in C? Perl is written in C. That's good enough for me. So much for rapid. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From bri at ifokr.org Sun Dec 7 15:39:30 2003 From: bri at ifokr.org (Brian Hatch) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: C is a scripting language??? In-Reply-To: References: Message-ID: <20031207213930.GI16040@ifokr.org> > The following alerg made me wonder/snicker.... > > ... Many sites use Perl as their scripting language, but our > company chose C because we felt it was more flexible in the long > term. ... If you read the rest of the page, you'll see that this person is very enlightened and believes in programming for multiple browsers. She has netscape 1.0 => 4.04 and IE 3 and 4! Very up to date! Perhaps this was written a while back... > If you have to be stuck in a gear, first gear is the one to choose, > but who needs to write CGI in C? Perl is written in C. That's good > enough for me. So much for rapid. My first CGIs were all in C. I wrote some great stuff in it, including huge dynamic, authenticated, threaded message board sites back in 1995. Then again, I can write those same CGIs now in 60 lines of perl... -- Brian Hatch "We only ordered one at the store, Systems and but we got two anyway." Security Engineer "Yeah, they've got some good deals..." http://www.ifokr.org/bri/ -- Bri and JJester, discussing twins. Every message PGP signed -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://mail.pm.org/pipermail/spug-list/attachments/20031207/2edd6bda/attachment.bin From OtterMain at hotmail.com Sun Dec 7 16:13:31 2003 From: OtterMain at hotmail.com (Otter) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: C is a scripting language??? References: <20031207213930.GI16040@ifokr.org> Message-ID: Looking through the article list, it was infact written in April 1998. There are current articles on that site though... I might have to have a look. --Otter --Original Message (outlook sucks sometimes)--> >If you read the rest of the page, you'll see that this person >is very enlightened and believes in programming for multiple >browsers. She has netscape 1.0 => 4.04 and IE 3 and 4! >Very up to date! >Perhaps this was written a while back... From MichaelRWolf at att.net Sun Dec 7 16:57:11 2003 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: C is a scripting language??? In-Reply-To: <20031207213930.GI16040@ifokr.org> (Brian Hatch's message of "Sun, 7 Dec 2003 13:39:30 -0800") References: <20031207213930.GI16040@ifokr.org> Message-ID: Brian Hatch writes: >> The following alerg made me wonder/snicker.... >> >> ... Many sites use Perl as their scripting language, but our >> company chose C because we felt it was more flexible in the long >> term. ... > > If you read the rest of the page, you'll see that this person > is very enlightened and believes in programming for multiple > browsers. She has netscape 1.0 => 4.04 and IE 3 and 4! > Very up to date! > > Perhaps this was written a while back... I got the alert *recently*, so I /assumed/ that she was very interested in backwards compatibility. In that respect, she *is* very up to date. I like robust applications, and admire folks that keep their users in mind enough to test it so thoroughly. But you could be right -- it may have just been harvested recently, but written a while ago. [...] > My first CGIs were all in C. I wrote some great stuff in it, > including huge dynamic, authenticated, threaded message board sites > back in 1995. A Model T is pretty cool, especially in historical perspective. I like FM music and cruise control. > Then again, I can write those same CGIs now in 60 lines of perl... The "swiss army chain saw of the internet" triumphs again. Would you like some ginsu knives with that purchase, guru? -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From david.dyck at fluke.com Mon Dec 8 00:42:59 2003 From: david.dyck at fluke.com (David Dyck) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: C is a scripting language??? In-Reply-To: References: Message-ID: On Sun, 7 Dec 2003 at 12:21 -0800, Michael R. Wolf wrote: > I've started getting Google alerts for the keyword "Perl", a beta > service of Google Labs http://www.google.com/newsalerts. Thanks for pointing out another of google's new features! > The following alert .... > > ... Many sites use Perl as their scripting language, but our > company chose C because we felt it was more flexible in the long > term. ... I guess that this is one of the reasons that these newsalerts are still beta, as they can't always tell if a web page re-publishes them from the past, as this one was. You can see in http://webdesign.about.com/library/weekly/mprev98.htm titled "Articles from 1998 " a link from 04/06/98 - What is a Webmaster? Do you know what a professional Webmaster does all day? to your article in question http://webdesign.about.com/library/weekly/aa040698.htm The article's author Jennifer Kyrnin does list her Perl Guide picks on http://webdesign.about.com/cs/perl/ and a google search http://www.google.com/search?q=Jennifer+Kyrnin+perl returned 61 links. Perhaps we will hear from her soon..... From heiko_peter at comcast.net Mon Dec 8 13:05:45 2003 From: heiko_peter at comcast.net (heiko_peter@comcast.net) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: Re: spug-list Digest, Vol 6, Issue 1 Message-ID: <120820031905.29623.3507@comcast.net> > My client offers competitive compensation I did not intend to sound sarcastic but is there a reason why the 'client' wants to remain anonymous ? On this occasion I think most of know who the 'client' is but I thought it would be reasonable to expect that anyone posting to this list ought to reveal who they are. Thanks -HP > Send spug-list mailing list submissions to > spug-list@mail.pm.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://mail.pm.org/mailman/listinfo/spug-list > or, via email, send a message with subject or body 'help' to > spug-list-request@mail.pm.org > > You can reach the person managing the list at > spug-list-owner@mail.pm.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of spug-list digest..." > > > Today's Topics: > > 1. USA: Seattle, WA - 8 Web Developers, Enterprise E-Commerce > Development (Jobs) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Fri, 5 Dec 2003 15:14:01 -0500 > From: "Jobs" > Subject: SPUG: USA: Seattle, WA - 8 Web Developers, Enterprise > E-Commerce Development > To: > Message-ID: <032901c3bb6c$9f7346a0$0200a8c0@nyc.rr.com> > Content-Type: text/plain; charset="windows-1252" > > USA: Seattle, WA - 8 Web Developers, Enterprise E-Commerce Development > > http://www.kandidates.com/jobs/ooperlmason.htm > > > > Location: Seattle, WA (relocation available for dead-on matches) > > Duration: Full Time > > Salary: Competitive > > Positions: 8 > > Citizenship: US or Green Card > > > > Job Responsibilities: Interested in working in challenging, exciting Web > development projects? Join the Enterprise E-Commerce Development team! As a > developer on this team you will work independently and with software engineers, > program managers, and design team members to create dynamic, optimized templates > and its related partners on the platform alongside application services. > Documented delivery of your ability to effectively explain technical options and > limitations to both technical and non-technical audiences is required. You will > be responsible for real-time operational support of the team's functional areas > as well as brainstorming features and ideas. You will design and implement > scalable, flexible features using HTML, Mason, Perl, and other Web technologies. > Experience working with highly transactional systems and or C++/Java is a plus. > > > > Requirements: All candidates must have UNIX (or LINUX) experience. Candidates > will have working knowledge of HTML, scripting languages, Perl, OO/Mason, and > current trends in Web technology, as well as the desire to learn new > technologies. Candidates must be innovative, creative, flexible, self-directed, > and understand how to design and write high-performance, reliable, maintainable > code. Candidate's ability to quickly adapt to new development environments, > changing business requirements and learning new systems is highly desired. > Please send source code samples and URL samples. Candidates must have a strong > computer science background with a bachelor's degree, or higher, in computer > science, required. > > > > Desired: Experience with other Web technologies like ASP, JSP, PHP, or graphics > software such as Photoshop is a plus. A Bachelor's degree in Computer Science > or a relevant area is highly desired. Experience with large database driven web > sites or applications is highly desired. > > > > My client offers competitive compensation packages including comprehensive > health care, 401K, and stock. > > > > Please submit resume and full time salary requirement to: jobs@kandidates.com > > > > Consultants MAY be considered for outstanding skills. > > > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > http://mail.pm.org/pipermail/spug-list/attachments/20031205/fd6c782a/attachment- > 0001.htm > > ------------------------------ > > _______________________________________________ > spug-list mailing list > spug-list@mail.pm.org > http://mail.pm.org/mailman/listinfo/spug-list > > > End of spug-list Digest, Vol 6, Issue 1 > *************************************** From tim at consultix-inc.com Mon Dec 8 13:38:09 2003 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: Re: spug-list Digest, Vol 6, Issue 1 In-Reply-To: <120820031905.29623.3507@comcast.net> References: <120820031905.29623.3507@comcast.net> Message-ID: <20031208193809.GA31939@jumpy.consultix-inc.com> On Mon, Dec 08, 2003 at 07:05:45PM +0000, heiko_peter@comcast.net wrote: > > My client offers competitive compensation > I did not intend to sound sarcastic but > is there a reason why the 'client' wants to remain anonymous ? That would be because recruiters like to *get paid* for finding workers for companies, and those who approach the company directly can eliminate the middle-man's markup and negotiate better wages. That's obviously not a favorable outcome for the recruiter! > On this occasion I think most of know who the 'client' is but I > thought it would be reasonable to expect that anyone posting to > this list ought to reveal who they are. > Thanks > -HP Actually, the policy on this list (as stated at http://seattleperl.org/#Jobs) is that *nobody* is supposed to post a job announcement directly in the first place; they are meant to be sent to spug@teachmeperl.com first for verification, additional info gathering, and editing, to ensure the completeness and accuracy of job postings. Those who violate this policy may be prevented any further access to our list. On your other point, SPUG doesn't currently require that job offers identify the company with the opening; that's to encourage recruiters to work with us. ============================================================== | Tim Maher, Ph.D. tim(AT)teachmeperl.com | | SPUG Founder & Leader spug(AT)teachmeperl.com | | Seattle Perl Users Group http://www.seattleperl.com | | SPUG Wiki Site http://spugwiki.perlocity.org | | Perl Certification Site http://perlcert.perlocity.org | ============================================================== From MichaelRWolf at att.net Mon Dec 8 23:49:59 2003 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: bioperl Message-ID: Anyone using bioperl? Could I trade a coffee (or lunch) for your trench-side views on how I can get started on a small side project? Even if not, I think it would be interesting if you'd post a 1-2 sentence blurb on how you're using it. I've been exploring the life sciences lately, and would be interested to hear how folks are using Perl in support of your work, exploration, or hobbies in that arena. Thanks, Michael -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From kmeyer at blarg.net Thu Dec 11 02:12:57 2003 From: kmeyer at blarg.net (Ken Meyer) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: GSLUG Meeting This Saturday: Knoppix and CVS Message-ID: <01d501c3bfbe$a2492560$cfd7e50c@attbi.com> The next Greater Seattle Linux User Group (GSLUG) meeting will be on Saturday, December 13th. It starts promptly at 10:00 AM at the North Seattle Community College Campus, Room IB 3319. Parking is free on weekends. For directions, agenda, and lecturer bios, please visit the GSLUG monthly meetings web page at: http://www.gslug.org/meeting.html The topics will be as follows: * 10:00am - Knoppix: Installing This Bootable CD to the Hard Drive by Harvey Friedman Knoppix is a bootable Linux CD that is useful for any occasion -- useful as a rescue CD, showing potential converts how cool Linux is, when you're stuck in an Internet cafe and don't want to use Windows... It doesn't touch or require a hard drive to function, so it can be safely used on any machine, and has excellent hardware detection support. However, Knoppix can also be installed to a hard drive if you want. Harvey will show us how. Great for helping out your poor Windows brethren. * 11:15am - Introduction to CVS/Cervisia by Fred Morris CVS is a revision control system, which means it lets you track and refer to old versions of a document. As a long-time user of DEC CMS, CVS seems pretty rough around the edges; but the KDE/Konqueror plug-in is pretty sweet! Outline: + What is CVS for? + Setting up a workspace + Cervisia is pretty cool, eh? + Removing a workspace + Pitfalls when setting up a repository + Pitfalls when setting up a project Fred says: "Although I know a lot about configuration management and version control, I know next to nothing about CVS (except that the Cervisia thing is cool). I'll bring a box and we can screw up CVS as a collective effort." ------------------------------------------- Please feel free to forward this announcement as appropriate. To ensure that you receive future GSLUG announcements. Please join our list at: http://lists.gslug.org/mailman/listinfo/gslug-announce You are also cordially invited to join the general discussion list at: http://lists.gslug.org/mailman/listinfo/gslug-general A message board alternative may be found at: http://msgboard.gslug.org/ And a fledgling wiki site at: http://wiki.gslug.org/ ------------------------------------------- The overall GSLUG meeting schedule is as follows: 10:00 AM - Lecture #1 11:00 AM - Break 11:10 AM - GSLUG and Event Announcements 11:15 AM - Lecture #2 12:15 PM - Break 12:30 PM - Raffle Quiz Raffle prizes giveaway 12:45 PM * Other Announcements and News from Attendees * Receive requests for assistance and enlist attendees to help those who requested assistance 1:00 PM-ish - Formal meeting is adjourned; "Help/Gab Session" begins * Informal PGP key signing * Install fest/assistance * Chatting, blathering, etc, etc 4:00 PM - End of meeting ------------------------------- 30 ---------------------------- From anon-perljobs at craigslist.org Thu Dec 11 13:05:32 2003 From: anon-perljobs at craigslist.org (Anon) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: JOB: 8 Object Oriented Perl Developers, Seattle, WA Message-ID: <02e501c3c019$c071ba60$0200a8c0@nyc.rr.com> JOB: 8 Object Oriented Perl Developers, Seattle, WA http://www.kandidates.com/jobs/ooperlmason.htm Location: Seattle, WA (relocation available) Duration: Full Time (on-site) Salary: Competitive + health care, 401K, and stock Positions: 8 Citizenship: US, Green Card or Canadian Requirements: All candidates must have Object Oriented Perl, and UNIX (or LINUX) experience. Candidates will have working knowledge of HTML, DHTML, and JavaScript. Candidates must have a strong computer science background with a bachelor's degree, or higher, in computer science, required. Desired: Experience with other Web technologies like ASP, JSP, PHP, Mason, or graphics software such as Photoshop is a plus. A Bachelor's degree in Computer Science or a relevant area is highly desired. Experience with large database driven web sites or applications is highly desired. My client offers competitive compensation packages including comprehensive health care, 401K, and stock. Please submit resume and full time salary requirement to: jobs@kandidates.com Consultants MAY be considered for outstanding skills. From david.ward at philips.com Mon Dec 15 11:57:00 2003 From: david.ward at philips.com (david.ward@philips.com) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: Looking for info on developing programming language parser / lint program Message-ID: Thanks for the pointer, ashamedly I'd never even heard of RedDescent. I've only tried the demos and an extremely trivial "grammar" of my own so far, but it's quite apparent that this module will easily do all that I needed and more! (besides, the Abbott and Costello demo, besides being instructive, is quite a hoot!) Also thanks to the kind folks for the book recommendations; while it doesn't appear I'll need it for this particular project, the recommendations were such that it's been added to my Santa's List, Thanks again! -Dave Ward ----- Message from Chris Wilkes on Tue, 25 Nov 2003 11:16:06 -0800 ----- To: spug-list@mail.pm.org Subject: Re: SPUG: Looking for info on developing programming language parser / lint program On Tue, Nov 25, 2003 at 11:03:34AM -0800, david.ward@philips.com wrote: > Can anyone give me any recommendations as to books, module documentation, > etc that might be helpful on the construction of programming language > parsers and / or lint programs? Have you looked into the perl module Parse::RecDescent? http://search.cpan.org/src/DCONWAY/Parse-RecDescent-1.94/tutorial/tutorial.html http://search.cpan.org/~tbone/Parse-RecDescent-FAQ-3.25/FAQ.pm and from the FAQ: http://www.urth.org/~metaperl/domains/semantic-elements.com/perl/prd/dans-blog/000235.html Chris From beckyls at u.washington.edu Mon Dec 15 16:23:04 2003 From: beckyls at u.washington.edu (Rebecca L. Schmidt) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: UW Advanced Perl Course In-Reply-To: References: Message-ID: Hi all, Reminder: the UW Applied Advanced Perl course is open for registration now. The course begins on January 6. Please see below for course information and registration details. We'd love to have you in the class! If you have any questions please don't hesitate to contact me. Best regards, Rebecca Schmidt Program Manager University of Washington Extension rschmidt@ese.washington.edu 4311 11th Ave NE, Office #343G Seattle, WA 98105-4608 (206) 221-6243 On Mon, 10 Nov 2003, Rebecca L. Schmidt wrote: > > SPUGsters, > > At a SPUG meeting a few months ago, we mentioned that the UW was > developing an Applied Advanced Perl Programming course for experienced > Perl Programmers to take their programming skills to the next level. I'm > pleased to announce that the course will be held this Winter (Tuesday > nights, downtown Seattle) and it is open for registration now. > > Here is a course description and registration details: > > Applied Advanced Perl Programming > Perl is much more than a language for small scripts and web sites. It is > often the best choice for lexical parsing, bioinformatics and dynamically > dispatched object designs. This lecture-based course is for > object-oriented Perl programmers who wish to use advanced techniques to > tackle tough problems in Perl. Course topics include advanced object- > oriented design, inheritance and polymorphism, smart hashes with Tie, > object persistence, operator overloading, advanced text parsing with > grammars and extending a Perl interface to C libraries. Prerequisites: > Experience with Perl object-oriented programming and Perl data structures, > and access to a computer running Perl 5.6.1 or later, with internet > access. Bringing a laptop to class is encouraged, but not required. > > Noncredit, 3 CEUs > 10 Sessions, Tue., 6:30-9:30 p.m., Jan. 6-Mar. 9; $569. Location: Downtown > Seattle. Doug Treder, senior software engineer, Amazon.com. > > For detailed course and registration information, please see this URL: > > http://www.extension.washington.edu/ext/courses/select/comp/programming.asp > > We hope to see you in class this winter! Please feel free to contact me > if you have any questions. > > > Best regards, > > Rebecca Schmidt > Associate Program Manager > University of Washington Extension > rschmidt@ese.washington.edu > 4311 11th Ave NE, Office #343G > Seattle, WA 98105-4608 > (206) 221-6243 > _____________________________________________________________ > Seattle Perl Users Group Mailing List > POST TO: spug-list@mail.pm.org http://spugwiki.perlocity.org > ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list > MEETINGS: 3rd Tuesdays, U-District, Seattle WA > WEB PAGE: http://www.seattleperl.org > > From tim at consultix-inc.com Mon Dec 15 16:19:21 2003 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: Dec. Mtg: Bill Campbell on Web Apps w/ Perl Modules Message-ID: <20031215221921.GA1996@jumpy.consultix-inc.com> All are welcome at this month's SPUG meeting, featuring long-time UNIX/Linux/Perl enthusiast and Celestial.com owner Bill Campbell on developing web-apps with Perl. Please RSVP at spugwiki.perlocity.org for the dinner if you plan to attend. -Tim December Seattle Perl Users Group Meeting -------------------------------------------------------- Title: Building Web Apps with Perl Modules Speaker: Bill Campbell Meeting Time: Tuesday, Dec. 16, 2003 7-9pm Location: SAFECO bldg, Brooklyn St. and NE 45th St. Cost: Admission is free and open to the general public. Info: http://seattleperl.org/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Bill will talk about building web applications using the CGI::Application, HTML::Template, and CGI::Session modules from CPAN. These tools simplify building web apps by largely separating the web page design from program code. The CGI::Application module allows the programmer to build applications with a very simple CGI script that invokes an application in a well defined modular structure. It is designed to use the HTML::Template module which removes most of the HTML considerations from the Perl programmer who only has to supply and process template variables used in the template. CGI::Session preserves state information for the session with minimal work. See the following link for more details: http://support.celestial.com/doc/webapps/index_long.txt Pre- and Post- Meeting Activities --------------------------------- The pre-meeting dinner will be at the Cedars restaurant, at 50th St. and Brooklyn, in the University District, near the Safeco building where the meeting will take place. The phone number is 527-5247. If you are planning to be there, please enter your name on the Kwiki RSVP page by 2pm on the meeting day. (NOTE: Arrival by 5:45pm is recommended for those ordering food). Those who comply with the RSVP policy, and are therefore counted in the seating reservation, will have top priority for seating at the speaker's table. ============================================================== | Tim Maher, Ph.D. tim(AT)teachmeperl.com | | SPUG Founder & Leader spug(AT)teachmeperl.com | | Seattle Perl Users Group http://www.seattleperl.com | | SPUG Wiki Site http://spugwiki.perlocity.org | | Perl Certification Site http://perlcert.perlocity.org | ============================================================== From mwallend at fastmail.fm Wed Dec 17 00:16:39 2003 From: mwallend at fastmail.fm (Michael Wallendahl) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: Cross-Pollination - Seattle BSD Users Group Meeting this Thursday Message-ID: <001201c3c465$55d79a80$3201a8c0@lestat> Since two of you at tonight's meeting seemed interested, this is a reminder that the Seattle BSD Users Group will be having their monthly meeting this Thursday, Dec. 18th at 6:00 PM. At this week's meeting, Brooks Davis will be giving a presentation about building a high-performance computing cluster using FreeBSD. Abstract: http://lists.seabug.org/pipermail/bsd-users/2003-December/000255.html Meetings are held on the third Thursday of the month at F5 Networks on Elliot Ave. down by the Puget Sound waterfront. Directions are posted at the link below. http://www.seabug.org/meetings.html -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/spug-list/attachments/20031216/3f8ce566/attachment.htm From rowol at copper.net Wed Dec 17 04:23:59 2003 From: rowol at copper.net (Ross Wolin) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: "Programming Challenge" Message-ID: <3FE02EBF.3070801@copper.net> At this evening's SPUG meeting, Tim made reference to a "programming challenge" to be posted to the list within 24 hours. I'm not sure I would go as far as to name this a challenge, but I am interested in getting a better understanding of what's going on. I am working a project where I need tools to collect waveform data from a logic analyzer via RS232, save the data to disk, filter the data based on edges and other trigger conditions, then interpret the filtered data as LCD controller commands and render the LCD controller commands into a Windows bitmap to view the result of the commands. I wrote this whole tool chain in perl (yee haw!) and it currently works, but that's not important. =) The part I'm concentrating on for this email is writing the collected waveform data to disk. Because of the way the logic analyzer works, I get my 16 bit samples (16 channels) by downloading all the low bytes (low 8 channels) of each sample, then downloading all the high bytes (upper 8 channels) of each sample, then combining them into word samples and writing them to disk (I just redirect STDOUT) - there can be up to 4M in each "half sample" download. Originally I thought the fastest/most efficient way to do this would be to write the low bytes to one scalar (binary) string and the high bytes to another string using the '.' operator to append them to the end of the respective strings, then loop to pull out the two first bytes, then the two 2nd bytes, etc from each string and write them to the file as a word. I tried several methods for doing this, including: #Method 1 #Now interleave the low and high bytes and write to STDOUT while ($LSB =~/(.)/g) { print $1; $MSB =~/(.)/g; print $1; } .... #Method 2 #Now interleave the low and high bytes and write to STDOUT for (my $x=0; $x References: <3FE02EBF.3070801@copper.net> Message-ID: <20031217191413.GQ16419@speakeasy.org> On Wed, Dec 17, 2003 at 02:23:59AM -0800, Ross Wolin wrote: > At this evening's SPUG meeting, Tim made reference to a "programming > challenge" to be posted to the list within 24 hours. I'm not sure I > would go as far as to name this a challenge, but I am interested in > getting a better understanding of what's going on. > > #Method 1 > #Method 2 > #Method 3 (same as #1, but buffered writes) Method 4 > > #Now interleave the low and high bytes and write to STDOUT > for (my $x=0; $x <= $#LSB; $x++) { > print $LSB[$x],$MSB[$x]; > } > > > (Of course checking beforehand that $#LSB == $#MSB) I thought this > method would have more overhead since now I have 4M scalars in an array > instead of a 4M string of bytes.... but of course I was wrong. =) > This approach took 1-2 **seconds** to write 8M, which was roughly the > same speed as the C program I wrote to try to speed things up. > > > My question is: did I do something horribly wrong in the scalar/binary > string implementations that made it go so slow, or is this just God > (Larry) smacking me around for trying to use a byte/character as the > basic unit of operation rather than a string? And also, is there a > better way to perform this operation than the array version I settled on > (I can either put the bytes from the analyzer into an array or a > scalar/binary string, it doesn't matter to me.) 1 and 3 probably take so long because of the regular expressions. 2 writes byte by byte with lots of syswrite() calls, which also adds up. 4 uses print instead, which does buffering and uses fewer writes of more data each, and thus is faster. Here's some suggestions: See if there's any modules on CPAN that allow you to use memory mapped files, and go that way instead of normal file I/O. Or create huge long strings with the data, and then print them, instead of bytes at a time. -- Shawn Wagner shawnw@speakeasy.org From MichaelRWolf at att.net Wed Dec 17 16:08:36 2003 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: cp --recursive --preserve ftp-site1/* ftp-site2/ Message-ID: I'm trying to replicate the entire directory structure of one ftp site on another ftp site. I only have FTP access to the sites, no shell-level login. I've looked at a few FTP applications (LapLink FTP, WS_FTP...) at download.com, but they only let me specify the source *or* the destination, not *both*. I also looked at wget, from GNU, available on cygwin. The --mirror option looked good, but only if I could login to the destination machine. I cant. Where's it's twin -- wput? In other words, how do I do this: cp --recursive --preserve --force ftp-site1/* ftp-site2/ Ideas? -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From cwilkes-spug at ladro.com Wed Dec 17 16:23:52 2003 From: cwilkes-spug at ladro.com (Chris Wilkes) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: cp --recursive --preserve ftp-site1/* ftp-site2/ In-Reply-To: References: Message-ID: <20031217222352.GB281@www.ladro.com> On Wed, Dec 17, 2003 at 02:08:36PM -0800, Michael R. Wolf wrote: > > I'm trying to replicate the entire directory structure of one ftp site > on another ftp site. I only have FTP access to the sites, no > shell-level login. Look into ncftpget / ncftpput http://www.ncftpd.com/ ftp://ftp.ncftp.com/ncftp/binaries/ncftp-3.1.6-win32.exe Should't you use Net::FTP anyway? :) Chris From asim at pair.com Wed Dec 17 17:01:44 2003 From: asim at pair.com (Asim Jalis) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: cp --recursive --preserve ftp-site1/* ftp-site2/ In-Reply-To: <20031217222352.GB281@www.ladro.com> References: <20031217222352.GB281@www.ladro.com> Message-ID: <20031217230144.GB74806@wokkil.pair.com> Chris Wilkes wrote: > Michael R. Wolf wrote: > > I'm trying to replicate the entire directory structure of one > > ftp site on another ftp site. I only have FTP access to the > > sites, no shell-level login. > > Look into ncftpget / ncftpput > http://www.ncftpd.com/ > ftp://ftp.ncftp.com/ncftp/binaries/ncftp-3.1.6-win32.exe > > Should't you use Net::FTP anyway? :) A solution which requires almost no programming, would be to use wget, which contains a --mirror option. Since you don't have shell access, first you should write a tiny shell script, update_site, which invokes wget with the appropriate options (see the wget man page) and echoes a "done" message. Next upload this script into the cgi-bin directory of the receiving site (using FTP). Finally type the URL of the cgi script into your favorite browser, and wait for the done message. Asim From jmail at poplarware.com Wed Dec 17 17:08:18 2003 From: jmail at poplarware.com (Jennifer Hodgdon) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: cp --recursive --preserve ftp-site1/* ftp-site2/ In-Reply-To: Message-ID: <5.2.1.1.2.20031217150613.01c238a0@mail.poplarware.com> If you are using Windows... The FTP built into IE is not too great (it only seems to do binary transfers), but if you open up two IE windows and point them to two different FTP sites, you can use the standard Windows GUI to drag files/folders from one window to the other. (You can also drag from an FTP site to/from a folder on your hard drive.) So, might help... Jennifer ____________________________ Jennifer Hodgdon Poplar ProductivityWare Database Solutions for Office Tedium Reduction jmail@poplarware.com http://www.poplarware.com From dan at concolor.org Wed Dec 17 17:39:28 2003 From: dan at concolor.org (dan@concolor.org) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: cp --recursive --preserve ftp-site1/* ftp-site2/ In-Reply-To: <5.2.1.1.2.20031217150613.01c238a0@mail.poplarware.com> References: <5.2.1.1.2.20031217150613.01c238a0@mail.poplarware.com> Message-ID: <20031217233928.GA13372@kell.fairehosting.com> Try cuteftp. Site to site transfer is one of their features. http://www.cuteftp.com/cuteftp/features.asp -dan On Wed, Dec 17, 2003 at 03:08:18PM -0800, Jennifer Hodgdon wrote: > If you are using Windows... > > The FTP built into IE is not too great (it only seems to > do binary transfers), but if you open up two IE windows > and point them to two different FTP sites, you can use > the standard Windows GUI to drag files/folders from one > window to the other. (You can also drag from an FTP > site to/from a folder on your hard drive.) > > So, might help... > Jennifer > ____________________________ > Jennifer Hodgdon > Poplar ProductivityWare > Database Solutions for Office Tedium Reduction > > jmail@poplarware.com > http://www.poplarware.com > > > _____________________________________________________________ > Seattle Perl Users Group Mailing List > POST TO: spug-list@mail.pm.org http://spugwiki.perlocity.org > ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list > MEETINGS: 3rd Tuesdays, U-District, Seattle WA > WEB PAGE: http://www.seattleperl.org > From bri at ifokr.org Wed Dec 17 17:39:20 2003 From: bri at ifokr.org (Brian Hatch) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: cp --recursive --preserve ftp-site1/* ftp-site2/ In-Reply-To: <20031217233928.GA13372@kell.fairehosting.com> References: <5.2.1.1.2.20031217150613.01c238a0@mail.poplarware.com> <20031217233928.GA13372@kell.fairehosting.com> Message-ID: <20031217233920.GO722@ifokr.org> > Try cuteftp. > Site to site transfer is one of their features. > http://www.cuteftp.com/cuteftp/features.asp Which only works if both FTP servers are badly configured and vulnerable to the 'pizza thief' attack. 3rd party FTP transfers are not supported on modern or secure FTP servers. xftp is a good client to use if both servers don't mind being permissive. -- Brian Hatch "Great, doesn't anything Systems and come under warranty anymore?" Security Engineer http://www.ifokr.org/bri/ Every message PGP signed -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://mail.pm.org/pipermail/spug-list/attachments/20031217/21e694ed/attachment.bin From sthoenna at efn.org Wed Dec 17 19:12:49 2003 From: sthoenna at efn.org (Yitzchak Scott-Thoennes) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: "Programming Challenge" In-Reply-To: <3FE02EBF.3070801@copper.net> References: <3FE02EBF.3070801@copper.net> Message-ID: <20031218011249.GA1800@efn.org> Avoid loops at all costs (or keep them in C where they belong): use Encode; print encode("UCS-2LE", $LSB) ^ encode("UCS-2BE", $MSB); This works by "encoding" each string as little- or big-endian 2 bytes per character (so each string will have all the odd or all the even bytes null) then stringwise-xoring them together. Using syswrite may be faster. From MichaelRWolf at att.net Wed Dec 17 19:17:17 2003 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: cp --recursive --preserve ftp-site1/* ftp-site2/ In-Reply-To: <20031217230144.GB74806@wokkil.pair.com> (Asim Jalis's message of "Wed, 17 Dec 2003 18:01:44 -0500") References: <20031217222352.GB281@www.ladro.com> <20031217230144.GB74806@wokkil.pair.com> Message-ID: Asim Jalis writes: > Chris Wilkes wrote: >> Michael R. Wolf wrote: >> > I'm trying to replicate the entire directory structure of one >> > ftp site on another ftp site. I only have FTP access to the >> > sites, no shell-level login. >> >> Look into ncftpget / ncftpput >> http://www.ncftpd.com/ >> ftp://ftp.ncftp.com/ncftp/binaries/ncftp-3.1.6-win32.exe >> >> Should't you use Net::FTP anyway? :) > > A solution which requires almost no programming, would be to use > wget, which contains a --mirror option. > > Since you don't have shell access, first you should write a tiny > shell script, update_site, which invokes wget with the > appropriate options (see the wget man page) and echoes a "done" > message. Next upload this script into the cgi-bin directory of > the receiving site (using FTP). Finally type the URL of the cgi > script into your favorite browser, and wait for the done message. I'm not sure I've got a cgi-bin directory or cgi permissions. I'll look into it. From david.dyck at fluke.com Wed Dec 17 19:46:05 2003 From: david.dyck at fluke.com (David Dyck) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: "Programming Challenge" In-Reply-To: <20031218011249.GA1800@efn.org> References: <3FE02EBF.3070801@copper.net> <20031218011249.GA1800@efn.org> Message-ID: On Wed, 17 Dec 2003 at 17:12 -0800, Yitzchak Scott-Thoennes Avoid loops at all costs (or keep them in C where they belong): > > use Encode; > print encode("UCS-2LE", $LSB) ^ encode("UCS-2BE", $MSB); That's clever, and I'll try to remember it, but this loop version is a tad faster in my testcases. for (my $i=0; $i < length $LSB; $i++) { print substr($LSB,$i,1).substr($MSB,$i,1) } From MichaelRWolf at att.net Wed Dec 17 23:09:59 2003 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: "Programming Challenge" In-Reply-To: <3FE02EBF.3070801@copper.net> (Ross Wolin's message of "Wed, 17 Dec 2003 02:23:59 -0800") References: <3FE02EBF.3070801@copper.net> Message-ID: Ross Wolin writes: [...] > #Method 3 (same as #1, but buffered writes) > #Now interleave the low and high bytes and write to STDOUT, > #buffering the write in memory first > my $buf; > while ($LSB =~/(.)/g) { > $buf .= $1; > $MSB =~/(.)/g; > $buf .= $1; > } > syswrite(STDOUT, $buf, length($buf)); Caveat emptor. All code is untested. You can get rid of the regexp keeping track of pos() via the /g by spliting it all at once. @lsb = split //, $lsb; @msb = split //, $msb; die "Oops. Bad balance." unless @lsb == @msb; while (@lsb && @msb) { print pop @lsb, pop $msb; } Anyone remember Perl6 enough to do this with parallel iterators? Something like this.... for @lsb ; @msb -> $lsb; $msb { print $lsb, $msb; } Or (sorry, Tim... sometimes I like it the other way around) print $lsb, $msb for split //, $LSB ; split //, $MSB -> $lsb ; $msb; Well, perhaps not in *this* case..... But then again, I think this has a parsing problem. Is ";" the expression terminator or the stream separator? I guess we'll have to wait and see. Enjoy, Michael Wolf P.S. Did you like my use of "remember" to reference the future? It's a poor sort of memory that only works backward. -- Lewis Carroll -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From david.dyck at fluke.com Thu Dec 18 01:00:56 2003 From: david.dyck at fluke.com (David Dyck) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: "Programming Challenge" In-Reply-To: References: <3FE02EBF.3070801@copper.net> <20031218011249.GA1800@efn.org> Message-ID: On Wed, 17 Dec 2003 at 17:46 -0800, David Dyck wrote: > On Wed, 17 Dec 2003 at 17:12 -0800, Yitzchak Scott-Thoennes > > Avoid loops at all costs (or keep them in C where they belong): > > > > use Encode; > > print encode("UCS-2LE", $LSB) ^ encode("UCS-2BE", $MSB); > > That's clever, and I'll try to remember it, but > this loop version is a tad faster in my testcases. > > for (my $i=0; $i < length $LSB; $i++) { > print substr($LSB,$i,1).substr($MSB,$i,1) > } After thinking about what encode was doing I used pack and unpack to do the same think. I needed to block up the chunks because I was running out of RAM (and swapping slowed it down anyway) The following code is twice as fast as either of the above. sub block_size { 0x200 }; for (my $i=0; $i < length $LSB; $i+= block_size ) { syswrite STDOUT, pack( "v*", unpack "C*", substr($LSB, $i, block_size ) ) | pack( "n*", unpack "C*", substr($MSB, $i, block_size ) ); } Then I realized that my benchmark of the encode solution may have been swapping also, so I chunked it up, and it was the fastest. use Encode; sub block_size { 0x2000 }; for (my $i=0; $i < length $LSB; $i+= block_size ) { syswrite STDOUT, encode("UCS-2LE", substr($LSB, $i, block_size )) ^ encode("UCS-2BE", substr($MSB, $i, block_size )); } I'm not sure how the original $LSB and $MSB were being read in, but it might have been good to read it in by a similar chunk to use less RAM. It was educational to look into the Encode module, as it looks like the .xs (C) implementation of encode is specialized version of pack, even using the "v" and "n" characters for endian flags. My thanks to Yitzchak and Ross for this learning opportunity, David From sthoenna at efn.org Thu Dec 18 02:08:03 2003 From: sthoenna at efn.org (Yitzchak Scott-Thoennes) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: "Programming Challenge" In-Reply-To: References: <3FE02EBF.3070801@copper.net> <20031218011249.GA1800@efn.org> Message-ID: <20031218080802.GA3144@efn.org> On Wed, Dec 17, 2003 at 11:00:56PM -0800, David Dyck wrote: > use Encode; > sub block_size { 0x2000 }; > for (my $i=0; $i < length $LSB; $i+= block_size ) { > syswrite STDOUT, encode("UCS-2LE", substr($LSB, $i, block_size )) > ^ encode("UCS-2BE", substr($MSB, $i, block_size )); > } > > I'm not sure how the original $LSB and $MSB were being read in, but > it might have been good to read it in by a similar chunk to use less RAM. > > It was educational to look into the Encode module, as > it looks like the .xs (C) implementation of encode is specialized version > of pack, even using the "v" and "n" characters for endian flags. > > My thanks to Yitzchak and Ross for this learning opportunity, > David I'm curious to know if you experimented with different block sizes. I'd guess its not swapping but cpu cache that is the issue. From david.dyck at fluke.com Thu Dec 18 02:21:00 2003 From: david.dyck at fluke.com (David Dyck) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: "Programming Challenge" In-Reply-To: <20031218080802.GA3144@efn.org> References: <3FE02EBF.3070801@copper.net> <20031218011249.GA1800@efn.org> <20031218080802.GA3144@efn.org> Message-ID: On Thu, 18 Dec 2003 at 00:08 -0800, Yitzchak Scott-Thoennes On Wed, Dec 17, 2003 at 11:00:56PM -0800, David Dyck wrote: > > use Encode; > > sub block_size { 0x2000 }; > > for (my $i=0; $i < length $LSB; $i+= block_size ) { > > syswrite STDOUT, encode("UCS-2LE", substr($LSB, $i, block_size )) > > ^ encode("UCS-2BE", substr($MSB, $i, block_size )); > > } > > > > I'm not sure how the original $LSB and $MSB were being read in, but > > it might have been good to read it in by a similar chunk to use less RAM. > > > > It was educational to look into the Encode module, as > > it looks like the .xs (C) implementation of encode is specialized version > > of pack, even using the "v" and "n" characters for endian flags. > > > > My thanks to Yitzchak and Ross for this learning opportunity, > > David > > I'm curious to know if you experimented with different block sizes. > I'd guess its not swapping but cpu cache that is the issue. Yes, I tried larger and smaller block sizes, as I narrowed in on the best times plus/minus a half second. My first clue was when I ran out of memory (literally got the out of memory message, as I have a small swap space), when the block size was too small, I'd guess the cost of the loop became to great (plus there's probably some extra overhead in encode to setup the function), but I could see execution time increase as the block size got too big, so I chose the smallest block size that still was within .5 seconds of fastest run time. I initialized my buffers using the following code so I could verify the byte order etc...: my $LSB = (join '', map {chr} 0 .. 0xff) x 0x4000; my $MSB = join '', (map {chr() x 0x100} 0 .. 0xff) x 0x40; From m3047 at inwa.net Sat Dec 20 23:50:43 2003 From: m3047 at inwa.net (Fred Morris) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: interpolating into a string variable Message-ID: Let's say we have a string variable. In practice it's read in from a file, but it could be a constant. And what we want to do is force interpolation into it before we use it for something like... ooooh, a regex. So, something like this: my $foo_str = 'foo'; my $expr = 'a $foo_str happens here'; my $interpolated_expr = something magic happens to $expr; and then if you print "$interpolated_expr\n"; you would get a foo happens here Is there a way to do this? For some reason, I thought there was... thought I'd ask, because it's a Saturday night and the answer isn't materializing for me... dang. -- Fred Morris fredm3047@inwa.net (I-ACK) From bri at ifokr.org Sun Dec 21 00:13:48 2003 From: bri at ifokr.org (Brian Hatch) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: interpolating into a string variable In-Reply-To: References: Message-ID: <20031221061348.GU722@ifokr.org> > Let's say we have a string variable. In practice it's read in from a file, > but it could be a constant. And what we want to do is force interpolation > into it before we use it for something like... ooooh, a regex. So, > something like this: > > > my $foo_str = 'foo'; > > my $expr = 'a $foo_str happens here'; > > my $interpolated_expr = something magic happens to $expr; > > and then if you print "$interpolated_expr\n"; you would get > > a foo happens here my $interpolated_expr; eval "\$interpolated_expr = \"$expr\"; "; (Hope I didn't miss any backslashes.) -- Brian Hatch Failure is not an option. Systems and It comes preinstalled Security Engineer with the software. http://www.ifokr.org/bri/ Every message PGP signed -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://mail.pm.org/pipermail/spug-list/attachments/20031220/d795062d/attachment.bin From m3047 at inwa.net Sun Dec 21 00:40:11 2003 From: m3047 at inwa.net (Fred Morris) Date: Mon Aug 2 21:37:13 2004 Subject: string not block Re: SPUG: interpolating into a string variable Message-ID: Ooerr.. that was my mistake, eval a string not a block... d'oh! At 10:13 PM 12/20/03, Brian Hatch wrote: > I wrote: >> my $foo_str = 'foo'; >> >> my $expr = 'a $foo_str happens here'; >> >> my $interpolated_expr = something magic happens to $expr; >> >> and then if you print "$interpolated_expr\n"; you would get >> >> a foo happens here > >my $interpolated_expr; > >eval "\$interpolated_expr = \"$expr\"; "; > >(Hope I didn't miss any backslashes.) Close enough to kick the proper brain cells into gear, thanks! ;-) -- Fred Morris fredm3047@inwa.net (I-ACK) From m3047 at inwa.net Sun Dec 21 01:23:30 2003 From: m3047 at inwa.net (Fred Morris) Date: Mon Aug 2 21:37:13 2004 Subject: performance Re: string not block Re: SPUG: interpolating into a string variable Message-ID: Interestingly, my brain-dead workaround seems to perform slightly better than eval for a smallish number of substitutions; it also doesn't kick errors when a variable isn't defined (it just leaves it alone). (8 seconds versus 10 seconds) #!/usr/bin/perl -w use strict; my %subs = ( foo_str => 'foo', bar_str => 'bar', baz_str => 'baz'); my $source = '$fizz boom $foo_str bim bam $baz_str'; print "\nready>"; my $line = <>; for (my $i = 0; $i < 20000; $i++) { my $s = $source; foreach my $key (keys %subs) { $s =~ s/\$$key/$subs{$key}/; } } print "\ndone>"; $line = <>; exit(0); versus: #!/usr/bin/perl -w use strict; my $foo_str = 'foo'; my $bar_str = 'bar'; my $baz_str = 'baz'; my $source = 'fizz boom $foo_str bim bam $baz_str'; print "\nready>"; my $line = <>; for (my $i = 0; $i < 20000; $i++) { my $s = eval ' my $s = "' . $source . '";'; } print "\ndone>"; $line = <>; exit(0); FWIW... -- Fred Morris fredm3047@inwa.net (I-ACK) From sthoenna at efn.org Sun Dec 21 02:32:27 2003 From: sthoenna at efn.org (Yitzchak Scott-Thoennes) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: interpolating into a string variable In-Reply-To: References: Message-ID: <20031221083227.GA3052@efn.org> On Sat, Dec 20, 2003 at 09:50:43PM -0800, Fred Morris wrote: > Let's say we have a string variable. In practice it's read in from a file, > but it could be a constant. And what we want to do is force interpolation > into it before we use it for something like... ooooh, a regex. So, > something like this: > > > my $foo_str = 'foo'; > > my $expr = 'a $foo_str happens here'; > > my $interpolated_expr = something magic happens to $expr; > > and then if you print "$interpolated_expr\n"; you would get > > a foo happens here > > > Is there a way to do this? For some reason, I thought there was... thought > I'd ask, because it's a Saturday night and the answer isn't materializing > for me... dang. perldoc -q expand From krahnj at acm.org Sun Dec 21 05:03:40 2003 From: krahnj at acm.org (John W. Krahn) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: interpolating into a string variable In-Reply-To: References: Message-ID: <03122103034001.01680@d66-183-119-25> On Saturday 20 December 2003 21:50, Fred Morris wrote: > Let's say we have a string variable. In practice it's read in from a > file, but it could be a constant. And what we want to do is force > interpolation into it before we use it for something like... ooooh, a > regex. So, something like this: > > my $foo_str = 'foo'; > > my $expr = 'a $foo_str happens here'; > > my $interpolated_expr = something magic happens to $expr; > > and then if you print "$interpolated_expr\n"; you would get > > a foo happens here > > Is there a way to do this? For some reason, I thought there was... > thought I'd ask, because it's a Saturday night and the answer isn't > materializing for me... dang. http://search.cpan.org/~nobull/String-Interpolate-0.2/ John -- use Perl; program fulfillment From bri at ifokr.org Sun Dec 21 09:53:48 2003 From: bri at ifokr.org (Brian Hatch) Date: Mon Aug 2 21:37:13 2004 Subject: performance Re: string not block Re: SPUG: interpolating into a string variable In-Reply-To: References: Message-ID: <20031221155348.GV722@ifokr.org> > Interestingly, my brain-dead workaround seems to perform slightly better > than eval Not suprising at all. Your solution (which required you knew the potential variable names) was all already-compiled perl code. A few substitutions with hash lookups, etc. Eval (or s///e) requires that perl read your code and compile it internally before running it - an expensive operation. No doubt it's slower. It's more robust (no need to know what's in the string first) but it's slow. However the 'my' in the eval case may be slowing things down too - it's not only setting the value, it's making scoping decisions. -- Brian Hatch "This product is defective. Systems and It only holds one baby." Security Engineer -- Bree, looking in baby magazines, http://www.ifokr.org/bri/ shortly after learning we're having twins... Every message PGP signed -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://mail.pm.org/pipermail/spug-list/attachments/20031221/8e411239/attachment.bin From ivandh at comcast.net Sun Dec 21 13:03:05 2003 From: ivandh at comcast.net (Ivan Heffner) Date: Mon Aug 2 21:37:13 2004 Subject: performance Re: string not block Re: SPUG: interpolating into a string variable In-Reply-To: Message-ID: <5.0.2.1.2.20031221094527.02391510@mail.comcast.net> An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/spug-list/attachments/20031221/1cfe06cb/attachment.htm From m3047 at inwa.net Sun Dec 21 15:09:15 2003 From: m3047 at inwa.net (Fred Morris) Date: Mon Aug 2 21:37:13 2004 Subject: performance Re: string not block Re: SPUG: interpolating into a string variable Message-ID: > foreach my $key (keys %subs) { > $s =~ s/\$$key/$subs{$key}/; > } Borrowing from the foregoing (and also from the perldoc, thanks YS-T) I settled on the following, which seems to be the fastest (notably so) of all (and also arguably much safer than eval): $s =~ s/\$(\w+)/defined($subs{$1}) ? $subs{$1} : $1/eg; -- Fred Morris fredm3047@inwa.net (I-ACK) From MichaelRWolf at att.net Sun Dec 21 17:09:25 2003 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: interpolating into a string variable In-Reply-To: (Fred Morris's message of "Sat, 20 Dec 2003 21:50:43 -0800") References: Message-ID: m3047@inwa.net (Fred Morris) writes: > Let's say we have a string variable. In practice it's read in from a file, > but it could be a constant. And what we want to do is force interpolation > into it before we use it for something like... ooooh, a regex. So, > something like this: > > > my $foo_str = 'foo'; > > my $expr = 'a $foo_str happens here'; > > my $interpolated_expr = something magic happens to $expr; > > and then if you print "$interpolated_expr\n"; you would get > > a foo happens here For readability, I always liked sprintf my $foo_str = 'useful use of sprintf'; my $fmt = "a %s happens here"; my $interpolated_expr = sprintf($fmt, $foo_str); print $interpolated_expr; yeilds this output a useful use of sprintf happens here ================================================================ I've seen the fat comma used to enhance readability (for some definitions of enhance and readability), though it does not change the semantics in this case. my $interpolated_expr = sprintf($fmt => $foo_str); -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From bri at ifokr.org Sun Dec 21 17:43:32 2003 From: bri at ifokr.org (Brian Hatch) Date: Mon Aug 2 21:37:13 2004 Subject: performance Re: string not block Re: SPUG: interpolating into a string variable In-Reply-To: References: Message-ID: <20031221234332.GB722@ifokr.org> > Borrowing from the foregoing (and also from the perldoc, thanks YS-T) I > settled on the following, which seems to be the fastest (notably so) of all > (and also arguably much safer than eval): > > $s =~ s/\$(\w+)/defined($subs{$1}) ? $subs{$1} : $1/eg; Cool. It's nice to have someone obsessed with performance on this list. -- Brian Hatch Kids in the back seat cause Systems and accidents. Accidents in Security Engineer the back seat cause kids. http://www.ifokr.org/bri/ Every message PGP signed -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://mail.pm.org/pipermail/spug-list/attachments/20031221/e11202a9/attachment.bin From MichaelRWolf at att.net Mon Dec 22 00:59:52 2003 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: IRC Message-ID: I'd heard about a Perl IRC channel. Is it still around? Is it useful? For what definition of "useful"? -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From MichaelRWolf at att.net Mon Dec 22 04:00:36 2003 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: OSCON - Call for Participation - Proposals Due February 9, 2004 Message-ID: http://conferences.oreillynet.com/cs/os2004/create/e_sess -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From scutvick at hotmail.com Mon Dec 22 23:02:59 2003 From: scutvick at hotmail.com (Bradley Scutvick) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: commie server situation sought Message-ID: Hello everyone, I've never been to a meeting or met any of you all but I've heard good things, and besides, I can quit programming in perl any time. I was wondering if any of you in Seattle happen to share an internet connection in some suitable place, with room for a couple more boxes. I have no idea if people even do this, seems like a good idea to me though. At any rate, merry festivus. -brad _________________________________________________________________ Tired of slow downloads? Compare online deals from your local high-speed providers now. https://broadband.msn.com From MichaelRWolf at att.net Tue Dec 23 10:39:33 2003 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: commie server situation sought In-Reply-To: (Bradley Scutvick's message of "Tue, 23 Dec 2003 05:02:59 +0000") References: Message-ID: "Bradley Scutvick" writes: > Hello everyone, > > I've never been to a meeting or met any of you all but I've heard good > things, and besides, I can quit programming in perl any time. Hi, Brad. > I was wondering if any of you in Seattle happen to share an internet > connection in some suitable place, with room for a couple more boxes. > I have no idea if people even do this, seems like a good idea to me > though. At any rate, merry festivus. Are you looking to move in with someone, or co-locate your computers? Responsible Perl programmer seeks same or Looking for Mister Good Rack -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From pudge at pobox.com Tue Dec 23 14:14:02 2003 From: pudge at pobox.com (Chris Nandor) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: Re: IRC In-Reply-To: <200312221800.hBMI0Jv29868@mail.pm.org> References: <200312221800.hBMI0Jv29868@mail.pm.org> Message-ID: At 12:00 -0600 2003.12.22, spug-list-request@mail.pm.org wrote: >Date: Sun, 21 Dec 2003 22:59:52 -0800 >From: "Michael R. Wolf" >Subject: SPUG: IRC > > >I'd heard about a Perl IRC channel. Is it still around? Is it useful? >For what definition of "useful"? Yes, it depends on what you are looking for. And there are several. There's one in irc.rhizomatic.net, which also houses a #p5p and #parrot, but is as much for non-Perl talk as it is for Perl talk. The Perl talk it does have is mostly of an intermediate-to-advanced nature. It migrated to that network from the EFNet #perl (which I believe still exists), because it was constantly filled with "newbies" asking about how to "do CGI." I think there is also still a #perl on OPN/freenode. When most people who have been around the "Perl community" (esp. those sub-communities that have grown out of p5p and the two conferences, TPC/YAPC::NA) for a long time, they are speaking of the rhizomatic Perl channel. And while there's a lot of non-Perl talk there, the general rule of thumb is that you get out of it what you put into it. HTH, -- Chris Nandor pudge@pobox.com http://pudge.net/ Open Source Development Network pudge@osdn.com http://osdn.com/ From jmates at sial.org Tue Dec 23 14:23:20 2003 From: jmates at sial.org (Jeremy Mates) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: Re: IRC In-Reply-To: References: <200312221800.hBMI0Jv29868@mail.pm.org> Message-ID: <20031223202320.GK74179@darkness.sial.org> * Chris Nandor > I think there is also still a #perl on OPN/freenode. Yes, there are some 200 odd folks, bots, and etc. on that channel; we tend to get beginning to intermediate users most of the time, but little of the "do CGI" types. From asim at pair.com Wed Dec 24 12:31:53 2003 From: asim at pair.com (Asim Jalis) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: commie server situation sought In-Reply-To: References: Message-ID: <20031224183153.GB49198@wokkil.pair.com> On Tue, Dec 23, 2003 at 05:02:59AM +0000, Bradley Scutvick wrote: > and besides, I can quit programming in perl any time. Hah. That's exactly what I thought when I first started. Asim From asim at pair.com Thu Dec 25 20:24:06 2003 From: asim at pair.com (Asim Jalis) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: POD to Pretty HTML Message-ID: <20031226022406.GA70236@wokkil.pair.com> I have some POD and want to make it look like the HTML at search.cpan.org. How can I do this? The pod2html utility generates really bland looking output. How can I make the output look more like the documents at search.cpan.org? Asim From tim at consultix-inc.com Fri Dec 26 12:30:38 2003 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: POD to Pretty HTML In-Reply-To: <20031226022406.GA70236@wokkil.pair.com> References: <20031226022406.GA70236@wokkil.pair.com> Message-ID: <20031226183038.GA7144@jumpy.consultix-inc.com> On Thu, Dec 25, 2003 at 09:24:06PM -0500, Asim Jalis wrote: > I have some POD and want to make it look like the HTML at > search.cpan.org. How can I do this? The only way I know is to upload your pod in a module, and let CPAN format it automatically 8-} > The pod2html utility generates really bland looking output. How > can I make the output look more like the documents at > search.cpan.org? > > Asim I asked the same question about a year ago, after finding that my documentation was being formatted correctly by my local pod2html utility, but being screwed up by the automatic CPAN formatting. Nobody was able to explain the difference, apart from saying that "something special" was happening with CPAN's customized version of pod2html (which applies gray shading to groups of indented lines, among other things). -Tim *--------------------------------------------------------------------------* | Tim Maher, CEO (206) 781-UNIX (866) DOC-PERL (866) DOC-UNIX | | tim(AT)Consultix-Inc.Com http://TeachMePerl.Com http://TeachMeUnix.Com | *+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-* | Watch for my Manning book: "Minimal Perl for Shell Users & Programmers" | *--------------------------------------------------------------------------* From jmates at sial.org Fri Dec 26 12:57:49 2003 From: jmates at sial.org (Jeremy Mates) Date: Mon Aug 2 21:37:13 2004 Subject: SPUG: Re: POD to Pretty HTML In-Reply-To: <20031226022406.GA70236@wokkil.pair.com> References: <20031226022406.GA70236@wokkil.pair.com> Message-ID: <20031226185749.GC36419@darkness.sial.org> * Asim Jalis > I have some POD and want to make it look like the HTML at > search.cpan.org. How can I do this? I have heard recommendations for Pod::Simple and subclasses thereof, though have not really experimented much with the module myself.