From fred at redhotpenguin.com Thu Mar 5 08:53:54 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Thu, 5 Mar 2009 08:53:54 -0800 Subject: [sf-perl] Fwd: [pm_groups] Nordic Perl Workshop 2009: Registration open! In-Reply-To: References: Message-ID: This is a great small conference. Having been to it (as a speaker and listener) I highly recommend it. ---------- Forwarded message ---------- From: Salve J Nilsen Date: Mon, Mar 2, 2009 at 6:55 AM Subject: [pm_groups] Nordic Perl Workshop 2009: Registration open! To: pm_groups at pm.org Hi! Registration to Nordic Perl Workshop 2009 is open! ? http://www.perlworkshop.no/npw2009/register The schedule is looking good, the organizers are excited, and the payment system will come online as soon as the Act admins come back from vacation. If you want to be sure you get a T-shirt, please register before April 1st. See you in Oslo! Regards, - Salve J. Nilsen (NPW'09 orga) -- #!/usr/bin/perl sub AUTOLOAD{$AUTOLOAD=~/.*::(\d+)/;seek(DATA,$1,0);print# ?Salve Joshua Nilsen getc DATA}$"="'};&{'";@_=unpack("C*",unpack("u*",':4@,$'.# ? ? '2!--"5-(50P%$PL,!0X354UC-PP%/0\`'."\n"));eval "&{'@_'}"; ? __END__ is near! :) -- Request pm.org Technical Support via support at pm.org pm_groups mailing list pm_groups at pm.org http://mail.pm.org/mailman/listinfo/pm_groups From fred at redhotpenguin.com Thu Mar 5 08:57:07 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Thu, 5 Mar 2009 08:57:07 -0800 Subject: [sf-perl] Fwd: [pm_groups] Call for Mentors - Google Summer of Code In-Reply-To: <200903032210.58462.scratchcomputing@gmail.com> References: <200903032210.58462.scratchcomputing@gmail.com> Message-ID: ---------- Forwarded message ---------- From: Eric Wilhelm Date: Tue, Mar 3, 2009 at 10:10 PM Subject: [pm_groups] Call for Mentors - Google Summer of Code To: pm_groups at pm.org Cc: Jonathan Leto Hi all, Please forward this to your local perl mongers lists. Jonathan has a signup form ready for those who would like to offer their availability to mentor for The Perl Foundation in this year's Google Summer of Code. ?http://bit.ly/Hht5E For more information, please see the following link or mail Jonathan. http://leto.net/dukeleto.pl/2009/03/gsoc-2009-mentor-signup-form-go.html Thanks, Eric -- "It works better if you plug it in!" --Sattinger's Law --------------------------------------------------- ? ?http://scratchcomputing.com --------------------------------------------------- -- Request pm.org Technical Support via support at pm.org pm_groups mailing list pm_groups at pm.org http://mail.pm.org/mailman/listinfo/pm_groups From fred at redhotpenguin.com Thu Mar 5 08:56:10 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Thu, 5 Mar 2009 08:56:10 -0800 Subject: [sf-perl] Fwd: [Announce] Call For Papers extended for ApacheCon US 2009 In-Reply-To: <49AF56F9.3030308@apache.org> References: <20081107200919.29573.44373@eos.apache.org> <49AF56F9.3030308@apache.org> Message-ID: ApacheCon is in Oakland this year. Great opportunity to go to the hackathon at the very least. ---------- Forwarded message ---------- From: William A. Rowe, Jr. Date: Wed, Mar 4, 2009 at 8:37 PM Subject: [Announce] Call For Papers extended for ApacheCon US 2009 To: committers at apache.org If you have only 30 seconds to read this; Join us in celebrating the ASF's 10th Anniversary at ApacheCon! The Call for Papers is has been extended for ApacheCon US 2009, taking place 2-6 November in Oakland, California. ?Proposals are being accepted at http://us.apachecon.com/c/acus2009/cfp/ and can be revised at anytime until the revised closing deadline of 14 March 2009 at 12:00 GMT. In addition, sponsorship opportunities for both ApacheCon Europe 2009 in Amsterdam and ApacheCon US 2009 in Oakland are both still available. Please contact Delia Frees at delia at apachecon.com for further information. Please, read on... ******* ApacheCon Celebrates the ASF's 10th Anniversary in Oakland, California, 2-6 November 2009 Call for Papers Opens for ApacheCon US 2009 The Apache Software Foundation (ASF) invites submissions to its official user and developer conference, taking place 2-6 November 2009 at the Oakland Convention Center and Marriott Hotel. ApacheCon serves as a forum for showcasing the ASF's latest projects, members, and community initiatives. Offering unparalleled educational opportunities, ApacheCon's presentations, hands-on trainings, and sessions address key technology, development, business/community, and licensing issues in Open Source. The wide range of activities offered at ApacheCon promotes the exchange of ideas amongst ASF Members, committers, innovators, developers, vendors, and users interested in the future of Open Source technology. The conference program includes peer-reviewed sessions, trainings/workshops, and select invited keynote presentations and speakers. Conference Themes and Topics Building on ten years of success, ApacheCon returns to the Bay Area for the 10th anniversary of the Apache Software Foundation. Comprising some of the most active and recognized developers in the Open Source community, ApacheCon provides an influential platform for dialogue between Open Source developers and users, traversing a wide range of ideas, expertise, and personalities. ApacheCon welcomes submissions across many fields, geographic locations, and areas of development. The breadth of the Apache community lends itself to conference content that is somewhat loosely-structured, with common themes of interest addressing groundbreaking technologies and emerging trends, best practices (from development to deployment), case studies and lessons learned (tips, tools, and tricks). In addition, ApacheCon will continue to offer its highly popular, two-day intensive trainings; certifications of completion will be distributed to those who fulfill all the training requirements. Topics appropriate for submission are manifold, and may include but are not restricted to: Apache HTTP server (installation, configuration, migration, and more); ASF-wide projects (including Lucene, Hadoop, Jackrabbit, and Maven); Scripting languages and dynamic content (such as Java, Perl, Python, Ruby, XSL, and PHP); Security and e-commerce (performance tuning, load balancing and high availability); New technologies (including broader initiatives such as Web Services and Web 2.0); ASF-Incubated projects (such as Sling, UIMA, and Shindig); and Business/Community issues (Open Source driven business models, open development, enterprise adoption, and more). Submission Guidelines Submissions must include; ? Session title - Speaker name - Speaker biography - Session description - Format and duration - Audience expertise level Full details are available online on the CFP page at [WWW] http://us.apachecon.com/c/acus2009/cfp/ Types of Presentations; - Trainings/Workshops - General Sessions - Case Studies/Industry Profiles - Corporate Showcases & Demonstrations - Fast Feather (short) sessions - Birds of a Feather discussions - Invited Keynotes/Panels/Speakers Pre-Conference Trainings/Workshops Held on the first two days of the conference (2-3 November 2009), ApacheCon trainings are available at a registration fee beyond the regular conference fee. Proposals may be submitted for half-day (3 hours), full-day (6 hours), or two-day (12 hours) training sessions. These proposed tutorials should be aimed at providing in-depth, hands-on development experience or related continuing education. Training submissions are welcome at beginner, intermediate, and expert levels. General Sessions include presentations on practical development applications, insight into high-interest projects, best practices and key advances, overcoming implementation challenges, and industry innovations. Especially welcome are submissions that extend participants' understanding the role of ASF projects and their influence on the Open Source community at large. General Sessions are scheduled for 50 minutes and are accessible to all conference delegates. Case Study/Industry Profile Practitioners are invited to submit presentations that focus on how implementing particular ASF technologies led to improved products/solutions, service offerings, changes in work practices, among other successes. Proposals that highlight overcoming interesting challenges in application design and developing innovative frameworks using multiple ASF projects are particularly encouraged. NOTE: Marketing-oriented submissions aimed at promoting specific organizations or products will not be accepted. Invited Keynotes/Panels/Speakers Each conference the ApacheCon Planning team invites select presenters dealing with engaging, dialectical, and challenging subjects to present in keynote and/or panel formats. Topics include cutting-edge technology development, industry leadership, hot or emerging trends, opinions on controversial issues, insight on technology paradigms, and contrasting viewpoints in complementary professional areas. Those interested in suggesting a candidate for an invited speaker opportunity should submit a brief proposal with the speaker's name, affiliation, background/bio, overview of topics of interest, and contact information. Birds of a Feather (BoF) sessions and Fast Feather Track talks are selected by separate processes, nearer to the beginning of the conference. Proposals are now being accepted at http://us.apachecon.com/c/acus2009/cfp/ and can be revised at anytime until the revised closing deadline of 14 March 2009 at 12:00 GMT. In addition, sponsorship opportunities for both ApacheCon Europe 2009 in Amsterdam and ApacheCon US 2009 in Oakland are both available. Please contact Delia Frees at delia at apachecon.com for further information. ApacheCon US 2009 is co-produced by the Apache Software Foundation and Stone Circle Productions. The ApacheCon Planning team comprises ASF Members from all over the world working on a wholly-volunteer basis. For more information, visit http://us.apachecon.com/c/acus2009/ From fred at redhotpenguin.com Thu Mar 5 13:42:51 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Thu, 5 Mar 2009 13:42:51 -0800 Subject: [sf-perl] Fwd: Newsletter from O'Reilly UG Program, March 5 In-Reply-To: References: Message-ID: Today is announcement day, yay ---------- Forwarded message ---------- From: Marsee Henon Date: Thu, Mar 5, 2009 at 12:47 PM Subject: Newsletter from O'Reilly UG Program, March 5 To: fred at redhotpenguin.com Hi there, I hope you're enjoying your spring. We've had a month of much needed rain here in Sebastopol, CA. But that hasn't slowed us down. We've been working on some new projects like O'Reilly Master Classes and Developer Workshops. In this increasingly competitive job market, having top-of-the-line technical and management skills is critical. The good news is that you can improve your skills and learn some new techniques that will make you irreplaceable--without breaking the bank. Right now user group members can save 35% on an O'Reilly Master class, and learn directly from Scott Berkun on project management, Jonathan Zdziarski on iPhone forensics, Douglas Crockford on JavaScript coding, and Steve Souders on improving website performance. Give your career a real boost--just go to and use special offer code masterclassug to register and save 25%. Register by March 15 and get an extra $50 off. Speaking of discounts, I took a very quick poll from a couple of user group leaders and discovered there is quite a bit of confusion about our current book discount for user group members. Currently we offer 35% off with code DSUG on books, ebooks, and PDFs ordered directly through oreilly.com. Receive free ground shipping on orders of $29.95 or more in the US. International members and those of you looking for digital content--ordering an ebook is very easy and quick and gives you a DRM free version of our book you can read instantly in PDF, Kindle, iPhone, or other mobile formats. Read more about all our ebooks and how to use them at . Looking for even more info about our authors? ?We've just created a special O'Reilly Authors group twitter account that allows our authors to share with you directly. Read more on our blog post. --Marsee ================================================================ O'Reilly UG Program News--Just for User Group Leaders March 5, 2009 ================================================================ Put Up a Banner, Get a Free Book We're looking for user groups to display our discount banners on their web sites. If you send me your group's site with one or more banners, I'll send you the O'Reilly book(s) of your choice. Choose from the following list: Found Banners Where Banners RailsConf Banners OSCON Banners Customizable O'Reilly Book Widgets 35% off User Group Discount Banners ================================================================ O'Reilly News for User Group Members March 5, 2009 ================================================================ --------------------------------------------------------------- New Releases--Books, Short Cuts, and Rough Cuts ---------------------------------------------------------------- Get 35% off from O'Reilly, No Starch, Paraglyph, PC Publishing, Pragmatic Bookshelf, Rocky Nook, SitePoint, or YoungJin books and ebooks you purchase directly from O'Reilly. Just use code DSUG when ordering online or by phone 800-998-9938. Free ground shipping on orders of $29.95 or more. For more details, go to: Did you know you can request a free book, ebook, or PDF to review for your group? Ask your group leader for more information. For book review writing tips and suggestions, go to: New Releases: 97 Things Every Software Architect Should Know Adobe Illustrator CS4 One-on-One Agile Web Development with Rails, Third Edition (Pragmatic Bookshelf) Apprenticeship Patterns Architectural Photography (Rocky Nook) Beautiful Teams Build a Better Photograph (Rocky Nook) Cisco Routers for the Desperate, Second Edition (No Starch) Cocoa Programming (Pragmatic Bookshelf) Computer Orchestration Tips and Tricks (PC Publishing) Data Warehousing with SAP BW7 BI in SAP Netweaver 2004s (Rocky Nook) Growing Software (No Starch) iMovie '09 and iDVD: The Missing Manual iWork '09: The Missing Manual: Rough Cuts Version Java Web Services: Up and Running Make: Technology on Your Time Volume 17 Manage Your Project Portfolio (Pragmatic Bookshelf) Masterminds of Programming Network Know-How (No Starch) Palm webOS: Rough Cuts Version Photoshop CS4 Photographer's Handbook (Rocky Nook) Practical Digital Photomicrography (Hard Cover) (Rocky Nook) Programming Entity Framework Programming F#: Rough Cuts Version Programming Ruby 1.9 (Pragmatic Bookshelf) Programming Scala (Pragmatic Bookshelf) Programming Scala: Rough Cuts Version Programming the Semantic Web: Rough Cuts Version Scanning Negatives and Slides, Second Edition (Rocky Nook) Security Monitoring Sexy Web Design (SitePoint) Take Control of Running Windows on a Mac, Third Edition (TidBITS) The Book of Inkscape (No Starch) The Manga Guide to Electricity (No Starch) The Nikon Creative Lighting System (Rocky Nook) The Nikon D90 Companion MAKE Magazine Subscriptions The annual subscription price for four issues is $34.95. When you subscribe with this link, you'll get a free issue--one plus four more for $34.95. So subscribe for yourself or friends with this great offer for UG Members: five volumes for the cost of four. Subscribe at: ================================================ Upcoming Author Events ================================================ For more events, please see: Lesa Snider King at Geek Girl Camp Mar?7, 2009 Cape Cod Community College Hyannis, MA Author Lesa Snider King (Photoshop CS4: The Missing Manual) presents her digital photography and Photoshop Elements workshop "How to Shoot & Edit Like a Pro". She's also teaching "Graphic Secrets for Presenters" which focuses on how to give better presentations by telling your story through pictures, and how to use Photoshop or Elements to turn the imagery you have into the imagery you need. Joshua-Michele Ross Featured on "Press:Here" Mar?8, 2009 Joshua-Michele Ross will be featured on "Press:Here," joined by John Schwarz from USA Today and Sarah Lacey from Business Week and Yahoo. The topic will be on Twitter--exploring questions such as what is the value of Twitter to you personally, professionally, and to your brand. Dean Wampler at SD West Mar?10-12, 2009 Santa Clara Convention Center Santa Clara, CA Author Dean Wampler (co-author of Programming Scala) is teaching a tutorial on "The Seductions of Scala" and a class on "Better Ruby through Functional Programming" at SD West 2009. The tutorial is March 10th and the class is March 12th. Nancy Duarte Presenting at the Forum for Women Entrepreneurs & Executives Mar?11, 2009 Menlo Park, CA Nancy Duarte (slide:ology) will be presenting at the Forum for Women Entrepreneurs & Executives (FWE&E). You'll gain insights into story structures and the power that a well developed and delivered presentation can have. QCon London 2009 Mar?11-13, 2009 The Queen Elizabeth II Conference Centre London, UK The third annual London enterprise software development conference designed for team leads, architects and project management is back! There is no other event in the UK with similar opportunities for learning, networking, and tracking innovation occurring in the Java, .NET, Ruby, SOA, Agile, and architecture communities. Madness and fun! Lesa Snider King at Geek Girl Camp Mar?12, 2009 Lombardo's Randolph, MA Author Lesa Snider King (Photoshop CS4: The Missing Manual) presents her digital photography and Photoshop Elements workshop "How to Shoot & Edit Like a Pro". She's also teaching "Graphic Secrets for Presenters" which focuses on how to give better presentations by telling your story through pictures, and how to use Photoshop or Elements to turn the imagery you have into the imagery you need. Ken Lunde at Worldware Conference Mar?17-19, 2009 Hilton Santa Clara Santa Clara, CA Author Ken Lunde (CJKV Information Processing) presents "GB 18030 ? Regional Challenges in Internationalizing Software." Wendy Chisholm and Matt May at SXSW Mar?17, 2009 Room Day Stage, Austin Convention Center Austin, TX Authors Wendy Chisholm and Matt May read from and discuss Universal Design for Web Applications. Nancy Duarte Speaks at presentation//reboot Mar?17-19, 2009 Duarte Design, 161 E. Evelyn Ave. Mountain View, CA Nancy Duarte (slide:ology) and Garr Reynolds host a six-hour seminar on presentations. This seminar will transform you into a creative thinker and change the way you prepare, design, and deliver your next presentation. Choose from three different days, and register now--space is limited. Bill Scott at Mix09 Mar?18-20, 2009 The Venetian Las Vegas, NV, USA Author Bill Scott (Designing Web Interfaces: Principles and Patterns for Rich Interaction) will be presenting "Interactive Prototyping with DHTML." Nancy Duarte Honored at Silicon Valley's 2009 Women of Influence Awards Mar?18, 2009 The Fairmont Hotel San Jose, CA Silicon Valley/San Jose Business Journal and El Camino Hospital will recognize 100 outstanding women who exercise power and influence within business, government, or nonprofits in Silicon Valley, and serve as role models for future generations of leaders. Among the honorees is Nancy Duarte, author of slide:ology. Registration is mandatory. Stephen Johnson Gives a Class on Hands-on Digital Black and White Printing Mar?19-22, 2009 Stephen Johnson Studios & Gallery Pacifica, CA Join Stephen Johnson (Stephen Johnson on Digital Photography) in his studio for four days of hands-on printing instruction. Dux Raymond Sy presents "7 Ways to Leverage SharePoint for Project Management Success" Mar?23, 2009 Sheraton Inner Harbor, Baltimore, MD, USA Dux Raymond Sy (SharePoint for Project Management) will present "7 Ways to Leverage SharePoint for Project Management Success" at the SharePoint Conference.ORG. Acquire the practical knowledge of how SharePoint can address common project management challenges such as Inefficient communication among stakeholders, poor document management practices, and undefined project collaboration standards that can compromise project success. Lesa Snider King at Photoshop World Boston Mar?25, 2009 Hynes Convention Center, Boston, MA Lesa Snider King (Photoshop CS4: The Missing Manual) presents "Graphic Secrets: Combining Photos & Vectors." Learn how to easily combine illustrations with photography in this super creative session. Glean the secret to importing vectors into your document so you can experiment with them as backgrounds, artful embellishments, ornamental photo frames, and more -- all without losing an ounce of quality! Dux Raymond Sy presents: "Empowering Your Organization with SharePoint: An Executive Seminar" Mar?30, 2009 Learning Tree Alexandria Education Center Alexandria, VA Over the course of one day, SharePoint expert Dux Raymond Sy (SharePoint for Project Management) will detail the benefits SharePoint can deliver to your organization through a combination of lecture, presentations and demonstrations. This comprehensive, non-technical overview is designed to help you assess how SharePoint Technologies can have a positive effect on your company?s productivity and competitiveness. "Using Drupal" Authors Present Lullabot Drupal Workshops Mar?30-Apr?3, 2009 Biltmore Hotel, Providence, RI Authors James Walker, Jeff Robbins, Angie Byron, and Nate Haug (Using Drupal) will be leading a week of Drupal workshops in Providence, RI. ================================================ Conferences and Special Events ================================================ User Group Discount Information for our upcoming conferences: Last Chance--Emerging Technology Conference 2009 March 9-12, 2009 San Jose, CA Use code "et09usrg" when you register, and receive an additional 30% off the registration price. To register for the conference, go to: --- O'Reilly Found, The Search Acquisition and Architecture Conference June 9-11, 2009 Burlingame, CA Use code "fo09usrg" when you register, and receive 15% off the registration price. Early registration ends on April 21. To register for the conference, go to: --- Velocity 2009 June 22-24, 2009 San Jose, CA Use code "vel09usrg" when you register, and receive 15% off the registration price. Early registration ends on May 3. To register for the conference, go to: --- RailsConf 2009 Co-presented by O'Reilly Media and Ruby Central May 4-7, 2009 Las Vegas, NV Use code "rc09usrg" when you register, and receive 10% off the registration price. Early registration ends on March 16. To register for the conference, go to: --- Where 2.0 Conference 2009 May 19-21, 2009 San Jose, CA Use code "whr09usrg" when you register, and receive 15% off the registration price. Early registration ends on March 31. To register for the conference, go to: --- MySQL Conference & Expo Co-presented by O'Reilly Media and MySQL April 20-23, 2009 Santa Clara, CA Use code "mys09usrg" when you register, and receive 15% off the registration price. To register for the conference, go to: --- Web 2.0 Expo San Francisco Co-presented by O'Reilly Media and TechWeb March 31-April 3, 2009 San Francisco, CA Use code "websf09ugp" when you register, and receive 15% off the registration price.?Or use code "websf09ug" and receive $100 off or a free expo hall pass. To register for the conference, go to: --- OSCON 2009 July 20-24, 2009 San Jose, CA If you have ideas for speakers and topics please send them to: oscon-idea at oreilly.com --- Ignite If you had five minutes on stage what would you say? What if you only got 20 slides and they rotated automatically after 15 seconds? Around the world geeks have been putting together Ignite nights to show their answers. Create your own Ignite in your area Upcoming Ignite events: For more events, go to Events Ignite Orlando March 4, 2009 Slingapours, 27 Wall Street Plaza Orlando, FL Ignite Reno 1 March 7, 2009 148 West St. Reno, NV Ignite Denver 2 March 11, 2009 Forest Room 5 Denver, CO Announcing Ignite Spatial 2 March 11, 2009 52 King St Sydney New South Wales, Australia Ignite Boise March 19, 2009 Egyptian Theater, 700 W. Main Street, Boise, ID Ignite Salt Lake 2 March 26, 2009 677 South 200 West Salt Lake City UT, USA ================================================ O'Reilly School of Technology ================================================ O'Reilly School of Technology Courses: UG Members Receive a 30% Discount In today's economy, it's crucial to stay competitive in Information Technology. With the O'Reilly School of Technology, you can do just that--at your own pace, with 1-to-1 instructor support, real tools, and free books. Our online learning methods are second to none, and when you're done you'll have earned a University of Illinois Professional Development Certificate--and the proven experience to advance your career. As an O'Reilly User Group member, you save on all the courses in the following University of Illinois Certificate Series: -Java Programming -PHP/SQL Programming -Linux/Unix System Administration -Web Programming -Open Source Programming -.NET Programming -Client-Side Web Programming featuring AJAX To redeem, use Promotion Code "ORALL1" good for a 30% discount, in Step #2 of the enrollment process. Each course comes with a free O'Reilly book and a 7-day money-back guarantee. Register online: (This discount is not combinable with other offers.) ================================================ News From O'Reilly & Beyond ================================================ --------------------- News & Blogs --------------------- Listen to the O'Reilly Week in Review Get some O'Reilly on your iPod!?Every week, we take the wisdom of O'Reilly, and squeeze it down into a bite-sized podcast you can listen to on the go.?The O'Reilly Week in Review features excerpts from interviews, tips from authors, roundtable discussions from the editors, and a quiz that can score you a free O'Reilly book. Subscribe via iTunes or search for "week in review" on the O'Reilly web site to listen from your browser. Can Subversion help teams work better? Tell us and you could win one of 10 great prize packages! Are you on a team that works with shared documents? If so, you know what a headache version control can be. The good news is that there is a remedy: Subversion, a simple yet powerful open-source document management tool that streamlines the versioning process. O'Reilly, Beanstalk, Versions, and CollabNet--four companies who make working with Subversion even easier--want to hear your best stories about how Subversion has or could help your team. Tell us your story by March 6, 2009 and enter to win one of 10 Prize Packages. State of the Computer Book Market 2008 As described in Computer Book Sales as a Technology Trend Indicator, and our other posts on the State of the Computer Book Market we have an updated series of posts that show the whole market's final 2008 numbers. Part 2: The Technologies Part 3: The Publishers Part 4:The Languages Part 5: eBooks and Summary Why Kindle Should Be An Open Book In O'Reilly Insights on Forbes.com, Tim O'Reilly boldly predicts that "unless Amazon embraces open ebook standards like epub, which allow readers to read books on a variety of devices, the Kindle will be gone within two or three years." In the new column, O'Reilly explains why he's thrown his support behind "epub and other open ebook standards, providing our books as "ebook bundles" that give the reader the choice of pdf (still the only viable choice for many highly formatted books like our Head First series of "brain friendly" tutorials that even HTML can't handle), epub, and mobi, an HTML-based predecessor to the Kindle format that lacks digital rights management but that can be imported into the Kindle." Deke McClelland's Martini Hour Visualization Contest Details The basic idea is simple; create a graphic that can be used to promote Martini Hour that features some Deke, some Colleen, and some Martini or other refreshing beverage. You can use the raw materials we have posted in the dekeOnline Flickr group. Or you can use anything you like. (Remember, Deke likes costumes and weapons.) Twitter Drives Traffic, Sales: A Case Study Back in December, Dell reported that offers from its Dell Outlet Twitter account had led to more than $1 million in revenue. A small percentage for a company that books $16B in revenue annually--but a nice number nonetheless, particularly in a dreary economy. Question is: are they the only ones? Call For Makers: Maker Faire Bay Area 2009 We are now accepting entries for the Maker Faire Bay Area, May 30 and 31 at the San Mateo County Expo Center. This year's focus is Re-Make America, inspired by President Obama's call for all of us to participate in remaking America. We're looking to showcase "the risk-takers, the doers, the makers of things." Sneak Peek at iWork '09 & Share Your Tips Contest Currently available as a Rough Cut, the new book will teach you everything you need to know about Apple's incredible productivity programs, including the Pages word-processor, the Numbers spreadsheet, and the Keynote presentation program that Al Gore and Steve Jobs made famous. Read an excerpt from Josh Clark's work in progress, (adapted for the web). Then, take a minute to share an iWork '09 tip and you could win free access to iWork '09: The Missing Manual: Rough Cuts Version. What You'll Find in "Ruby Best Practices" When Ruby Best Practices first entered roughcuts, Gregory Brown passed on a couple copies to some reviewers to see what they thought, and Peter Cooper summed things up pretty accurately. And here's a sample chapter "Mastering the Dynamic Toolkit" in PDF: Ignite Launches Weekly Video Series Highlighting the Best of Geek Culture Ignite captures the best of geek culture in a series of five-minute speed presentations on topics ranging from "The Best Way to Buy a Car" to "Hacking Chocolate" to "Transhuman Technology Trends." Imagine that you're on stage in front of an audience of hundreds of people, doing a five-minute presentation using a slide deck that auto-forwards every 15 seconds, whether you're ready or not. What would you do? What would you say? Could you stand the pressure? Every week, find out how some of the smartest minds on the planet dealt with this situation as your host, Brady Forrest, highlights a different talk from Ignites around the world. Safari Books Online Optimizes for Top Mobile Devices Safari Books Online Ubiquitous for Users On-the-Go Safari Books Online is now fully optimized to support the top mobile devices in the United States. The new website, m.safaribooksonline.com, optimizes Safari Books Online's content and reading experience for the majority of mobile phones (such as Nokia, BlackBerry, iPhone, and Windows Mobile), making it possible for users to read while on-the-go. ETech Preview: Creating Biological Legos If you've gotten tired of hacking firewalls or cloud computing, maybe it's time to try your hand with DNA. That's what Reshma Shetty is doing with her Doctorate in Biological Engineering from MIT. Apart from her crowning achievement of getting bacteria to smell like mint and bananas, she's also active in the developing field of synthetic biology and has recently helped found a company called Gingko BioWorks which is developing enabling technologies to allow for rapid prototyping of biological systems. ETech Preview: Inside Factory China, An Interview with Andrew Huang China has become the production workhorse of the consumer electronics industry. Almost anything you pick up at a Best Buy first breathed life across the Pacific Ocean. But what is it like to shepherd a product through the design and production process? Andrew "bunnie" Huang has done just that with the Chumby, a new internet appliance. Until next time-- Marsee Henon ================================================================ O'Reilly 1005 Gravenstein Highway North Sebastopol, CA ? 95472 800-998-9938 http://ug.oreilly.com/ Follow us on Twitter at http://twitter.com/OReillyMedia You are receiving this email because you are a User Group contact with O'Reilly Media. If you would like to stop receiving these newsletters or announcements from O'Reilly, send an email to marsee at oreilly.com ================================================================ From fred at redhotpenguin.com Thu Mar 5 13:44:31 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Thu, 5 Mar 2009 13:44:31 -0800 Subject: [sf-perl] YAPC::NA 2009 CFP Message-ID: This should be a good one, Pittsburgh is a strong group. http://yapc10.org/yn2009/cfp.html From fred at redhotpenguin.com Thu Mar 5 13:51:57 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Thu, 5 Mar 2009 13:51:57 -0800 Subject: [sf-perl] The Idioms of March Message-ID: For March people usually think of Ides, but for this group I'm going to propose the Idioms of March instead. Bring your favorite idiom to the March meeting and win a prize. There will be ( scalar(@prizes) == 3 ), all geekworthy. Idiom that gets the most votes wins. Here's an example idiom I saw yesterday, retweeting http://twitter.com/schwern. Clever and simple way to get the last N elements of a list. @last = @foo[-$n..-1]; Don't forget to register for the meetup! http://www.meetup.com/San-Francisco-Perl-Mongers/calendar/9442341/ From andy at petdance.com Thu Mar 5 13:55:23 2009 From: andy at petdance.com (Andy Lester) Date: Thu, 5 Mar 2009 15:55:23 -0600 Subject: [sf-perl] The Idioms of March In-Reply-To: References: Message-ID: <7E47A04E-3A05-4F0A-8BBD-D8141A8362E3@petdance.com> On Mar 5, 2009, at 3:51 PM, Fred Moyer wrote: > will be ( scalar(@prizes) == 3 ), all geekworthy. Idiom that gets the The idiomatic way to check that there are three elements is simply to take @prizes in scalar context, which doesn't require the scalar() keyword @prizes == 3 :-) xoxo, Andy -- Andy Lester => andy at petdance.com => www.petdance.com => AIM:petdance From extasia at extasia.org Mon Mar 9 10:15:08 2009 From: extasia at extasia.org (David Alban) Date: Mon, 9 Mar 2009 10:15:08 -0700 Subject: [sf-perl] perl and your career Message-ID: <4c714a9c0903091015n4b3fdb14yd0e83704b2241b3c@mail.gmail.com> ---------- Forwarded message ---------- From: Jacqui Caren Date: Mon, Mar 9, 2009 at 10:03 AM Subject: http://www.xkcd.com/519/ To: "London.pm Perl M[ou]ngers" Well, it made me smile. http://www.xkcd.com/519/ -- Live in a world of your own, but always welcome visitors. From fred at redhotpenguin.com Thu Mar 12 21:47:36 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Thu, 12 Mar 2009 21:47:36 -0700 Subject: [sf-perl] Fwd: UG News: New O'Reilly Training: Master Classes in San Francisco In-Reply-To: References: Message-ID: Looks like some good speakers here. Has anyone read the high performance websites book? ---------- Forwarded message ---------- From: Marsee Henon Date: Thu, Mar 12, 2009 at 3:29 PM Subject: UG News: New O'Reilly Training: Master Classes in San Francisco To: fred at redhotpenguin.com Hi Can you share the following info with your group members if you think they'll be interested (and you haven't already!). I've included a special UG only discount code good for 25% off. If you've got an event calendar and include outside events, we'd appreciate your help posting it there too (or let me know if I can). As usual, thanks for all your help. Please let me know if you have any questions. Marsee New O'Reilly Training, Master Classes in San Francisco In this increasingly competitive job market, having top-of-the-line technical and management skills is critical. The good news is that you can improve your skills and learn some new techniques that will make you irreplaceable--without breaking the bank. Right now user group members can save 25% on an O'Reilly Master class, and learn directly from Scott Berkun on project management, Douglas Crockford on JavaScript coding, and Steve Souders on improving web site performance. Give your career a real boost--just go to and use special offer code masterclassug to register and save 25%. Register by March 15 and get an extra $50 off. Everyone in the class receives $100 worth of O'Reilly books. The first three one-day Master Classes on JavaScript, Creating High Performance Web Sites, and Project Management are scheduled for March 30 in San Francisco. Here are the details: O'Reilly Master Class: Douglas Crockford, March 30, 2009, San Francisco, CA JavaScript: The Good Parts Like most languages, JavaScript contains both good and bad parts. The bad parts keep it from becoming an elegant, lightweight, and highly expressive language. In this class, you'll discover good JavaScript you can use to create truly extensible code. The author of "JavaScript: The Good Parts," (O'Reilly Media), Crockford is a regular speaker at conferences on advanced JavaScript topics. He serves on the JavaScript 2.0 committee at ECMA. Register by March 15 and get an extra $50 off. Everyone in the class receives $100 worth of O'Reilly books. 1-day workshop, 9am-5pm, Mar. 30, $600 Mission Bay Conference Center University of California, San Francisco (UCSF) 1675 Owens St. San Francisco, CA 94143 For more information and to register: Call: (707) 827-7000 / (800) 998-9938 http://training.oreilly.com/javascript ******************************************* O'Reilly Master Class: Scott Berkun, March 30, 2009, San Francisco, CA Leading and Managing Breakthrough Projects Scott Berkun, author of the bestselling "The Myths of Innovation" (O'Reilly Media) uses valuable insights from the past as well as challenging in-class exercises to help you develop the leadership skills and knowledge you need to manage innovative people and projects. Register by March 15 and get an extra $50 off. Everyone in the class receives $100 worth of O'Reilly books. 1-day workshop, 10am-5pm, Mar. 30, $600 Mission Bay Conference Center University of California, San Francisco (UCSF) 1675 Owens St. San Francisco, CA 94143 For more information and to register: Call: (707) 827-7000 / (800) 998-9938 http://training.oreilly.com/projectmanagement ******************************************* O'Reilly Master Class: Steve Souders, March 30, 2009, San Francisco, CA Creating High Performance Web Sites While working at Google and Yahoo!, Steve Souders developed rules that cut up to 25% off response time for page requests. In this class, Souders, the author of the bestselling O'Reilly book, "High Performance Web Sites" (O'Reilly Media), explains those rules and shows you how you can greatly improve the performance of your existing web pages. Register by March 15 and get an extra $50 off. Everyone in the class receives $100 worth of O'Reilly books. 1-day workshop, 9am-5pm, Mar. 30, $600 Mission Bay Conference Center University of California, San Francisco (UCSF) 1675 Owens St. San Francisco, CA 94143 For more information and to register: Call: (707) 827-7000 / (800) 998-9938 http://training.oreilly.com/highperformancesites ================================================================ Marsee Henon UG Manager O'Reilly 1005 Gravenstein Highway North Sebastopol, CA ? 95472 marsee at oreilly.com 800-998-9938 http://ug.oreilly.com/ Follow us on Twitter at http://twitter.com/OReillyMedia You are receiving this email because you are a User Group contact with O'Reilly Media. If you would like to stop receiving these newsletters or announcements from O'Reilly, send an email to marsee at oreilly.com ================================================================ From swartz at pobox.com Fri Mar 13 05:21:46 2009 From: swartz at pobox.com (Jonathan Swartz) Date: Fri, 13 Mar 2009 05:21:46 -0700 Subject: [sf-perl] Fwd: UG News: New O'Reilly Training: Master Classes in San Francisco In-Reply-To: References: Message-ID: <360AB654-2543-4ACA-A21C-55E21B82BF4A@pobox.com> Thanks for forwarding this Fred. On this topic - does anyone have any recommendations for (or against) local classes in advanced javascript / ajax? On Mar 12, 2009, at 9:47 PM, Fred Moyer wrote: > Looks like some good speakers here. Has anyone read the high > performance websites book? > > ---------- Forwarded message ---------- > From: Marsee Henon > Date: Thu, Mar 12, 2009 at 3:29 PM > Subject: UG News: New O'Reilly Training: Master Classes in San > Francisco > To: fred at redhotpenguin.com > > > Hi > > Can you share the following info with your group members if you think > they'll be interested (and you haven't already!). I've included a > special > UG only discount code good for 25% off. If you've got an event > calendar > and include outside events, we'd appreciate your help posting it there > too (or let me know if I can). > > As usual, thanks for all your help. Please let me know > if you have any questions. > > Marsee > > > > New O'Reilly Training, Master Classes in San Francisco > > In this increasingly competitive job market, having top-of-the-line > technical and management skills is critical. The good news is that you > can improve your skills and learn some new techniques that will make > you > irreplaceable--without breaking the bank. > > Right now user group members can save 25% on an O'Reilly Master class, > and learn directly from Scott Berkun on project management, Douglas > Crockford on JavaScript coding, and Steve Souders on improving web > site > performance. Give your career a real boost--just go to > and use special offer code masterclassug > to register and save 25%. Register by March 15 and get an extra $50 > off. > Everyone in the class receives $100 worth of O'Reilly books. > > The first three one-day Master Classes on JavaScript, Creating High > Performance Web Sites, and Project Management are scheduled for > March 30 > in San Francisco. > > > Here are the details: > > > O'Reilly Master Class: Douglas Crockford, March 30, 2009, > San Francisco, CA > JavaScript: The Good Parts > Like most languages, JavaScript contains both good and bad parts. The > bad parts keep it from becoming an elegant, lightweight, and highly > expressive language. In this class, you'll discover good JavaScript > you > can use to create truly extensible code. The author of "JavaScript: > The > Good Parts," (O'Reilly Media), Crockford is a regular speaker at > conferences on advanced JavaScript topics. He serves on the JavaScript > 2.0 committee at ECMA. Register by March 15 and get an extra $50 off. > Everyone in the class receives $100 worth of O'Reilly books. > > 1-day workshop, 9am-5pm, Mar. 30, $600 > Mission Bay Conference Center > University of California, San Francisco (UCSF) > 1675 Owens St. > San Francisco, CA 94143 > > For more information and to register: > Call: (707) 827-7000 / (800) 998-9938 > http://training.oreilly.com/javascript > > ******************************************* > > O'Reilly Master Class: Scott Berkun, March 30, 2009, San Francisco, CA > Leading and Managing Breakthrough Projects > Scott Berkun, author of the bestselling "The Myths of Innovation" > (O'Reilly Media) uses valuable insights from the past as well as > challenging in-class exercises to help you develop the leadership > skills > and knowledge you need to manage innovative people and projects. > Register by March 15 and get an extra $50 off. > Everyone in the class receives $100 worth of O'Reilly books. > > > 1-day workshop, 10am-5pm, Mar. 30, $600 > Mission Bay Conference Center > University of California, San Francisco (UCSF) > 1675 Owens St. > San Francisco, CA 94143 > > For more information and to register: > Call: (707) 827-7000 / (800) 998-9938 > http://training.oreilly.com/projectmanagement > > ******************************************* > > O'Reilly Master Class: Steve Souders, March 30, 2009, San Francisco, > CA > Creating High Performance Web Sites > While working at Google and Yahoo!, Steve Souders developed rules that > cut up to 25% off response time for page requests. In this class, > Souders, the author of the bestselling O'Reilly book, "High > Performance > Web Sites" (O'Reilly Media), explains those rules and shows you how > you > can greatly improve the performance of your existing web pages. > Register by March 15 and get an extra $50 off. > Everyone in the class receives $100 worth of O'Reilly books. > > 1-day workshop, 9am-5pm, Mar. 30, $600 > Mission Bay Conference Center > University of California, San Francisco (UCSF) > 1675 Owens St. > San Francisco, CA 94143 > > For more information and to register: > Call: (707) 827-7000 / (800) 998-9938 > http://training.oreilly.com/highperformancesites > > > ================================================================ > Marsee Henon > UG Manager > O'Reilly > 1005 Gravenstein Highway North > Sebastopol, CA 95472 > marsee at oreilly.com > 800-998-9938 > http://ug.oreilly.com/ > Follow us on Twitter at http://twitter.com/OReillyMedia > > You are receiving this email because you are a User Group > contact with O'Reilly Media. If you would like to stop > receiving these newsletters or announcements from O'Reilly, > send an email to marsee at oreilly.com > ================================================================ > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm From fred at redhotpenguin.com Tue Mar 17 18:14:06 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Tue, 17 Mar 2009 18:14:06 -0700 Subject: [sf-perl] Idioms of March and Evolving Tests next Tuesday Message-ID: Remember to bring your favorite idiom! http://sf.pm.org/weblog/ http://www.meetup.com/San-Francisco-Perl-Mongers/calendar/9442341/ From kenuhl at berkeley.edu Wed Mar 18 16:01:40 2009 From: kenuhl at berkeley.edu (ken uhl) Date: Wed, 18 Mar 2009 16:01:40 -0700 Subject: [sf-perl] [Fwd: class DBI postgres date time format] Message-ID: <49C17D54.9080908@berkeley.edu> -------------- next part -------------- An embedded message was scrubbed... From: ken uhl Subject: class DBI postgres date time format Date: Tue, 17 Mar 2009 11:09:22 -0700 Size: 1716 URL: From biztos at mac.com Thu Mar 19 00:14:19 2009 From: biztos at mac.com (Kevin Frost) Date: Thu, 19 Mar 2009 00:14:19 -0700 Subject: [sf-perl] [Fwd: class DBI postgres date time format] In-Reply-To: <49C17D54.9080908@berkeley.edu> References: <49C17D54.9080908@berkeley.edu> Message-ID: <40C5276D-53D6-4E8B-89E2-FFB9316563D5@mac.com> It looks like your "updated" column is mapped as a DateTime object (line 26). You probably want to do something like this: $delta_row->updated( DateTime->now() ); Further resources: http://search.cpan.org/dist/DateTime/lib/DateTime.pm http://search.cpan.org/dist/DateTime-Format-Pg/lib/DateTime/Format/Pg.pm cheers -- frosty On Mar 18, 2009, at 4:01 PM, ken uhl wrote: > > > From: ken uhl > Date: March 17, 2009 11:09:22 AM PDT > To: beginners at perl.org > Subject: class DBI postgres date time format > > > How do I set up table class method to correctly format and write > 'updated' column date and time stamp to postgres? > > I have table entry object that contains this - to inflate and > deflate : > > I think I need to add "has_timestamp" > ..... > > 22 __PACKAGE__->table('dhcpmac'); > 23 __PACKAGE__->columns( Primary => qw/rowid/ ); > 24 __PACKAGE__->columns( All => qw/rowid mac calnetuid updated > updatedby dynhostname ishmael disable/ ); > 25 > 26 __PACKAGE__->has_a( updated => 'DateTime', > 27 inflate => sub { DateTime::Format::Pg- > >parse_timestamptz(shift); }, > 28 deflate => sub { DateTime::Format::Pg- > >format_timestamptz(shift); } ); > > ... > > my CGI does this : > > ... > # retrieve old row data 301 my $delta_row = > IST::DNSDB::dhcpmac->retrieve($old_rowid) ; > 302 my $old_mac = $delta_row->mac(); > ... > # replace some of the data - including 'updated' > 305 $delta_row->mac($new_validated_mac); > 306 $delta_row->updated( "now()" ); > .. > 308 $delta_row->updatedby($calnetuid); > ... > 313 $delta_row->update(); > 314 $delta_row->commit(); > > ( line 306 crashes with invalid SQL command line value, obviously, > but what goes here? ) > > ? > > TIA, > Ken Uhl, > UC Berkeley > > > > > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm -------------- next part -------------- An HTML attachment was scrubbed... URL: From ddascalescu at gmail.com Thu Mar 19 01:06:42 2009 From: ddascalescu at gmail.com (Dan Dascalescu) Date: Thu, 19 Mar 2009 01:06:42 -0700 Subject: [sf-perl] [Fwd: class DBI postgres date time format] In-Reply-To: <49C17D54.9080908@berkeley.edu> References: <49C17D54.9080908@berkeley.edu> Message-ID: <3561cc6d0903190106n4bbcc53dlbc3c2aa6096b40fe@mail.gmail.com> > How do I set up table class method to correctly format and write 'updated' > ?column ?date and time stamp to postgres? DBIx::Class::TimeStamp might take care of that automagicallly. From biztos at mac.com Thu Mar 19 01:23:26 2009 From: biztos at mac.com (Kevin Frost) Date: Thu, 19 Mar 2009 01:23:26 -0700 Subject: [sf-perl] [Fwd: class DBI postgres date time format] In-Reply-To: <3561cc6d0903190106n4bbcc53dlbc3c2aa6096b40fe@mail.gmail.com> References: <49C17D54.9080908@berkeley.edu> <3561cc6d0903190106n4bbcc53dlbc3c2aa6096b40fe@mail.gmail.com> Message-ID: <390FC95E-C446-4E6C-ADE7-C6E9BEE20049@mac.com> Is there a Class::DBI equivalent? Of course you could just subclass Class::DBI and do it automatically for everything that has an "updated" column. But for the same amount of effort you could learn DBIx::Class, so... :-) -- f. On Mar 19, 2009, at 1:06 AM, Dan Dascalescu wrote: >> How do I set up table class method to correctly format and write >> 'updated' >> column date and time stamp to postgres? > > DBIx::Class::TimeStamp might take care of that automagicallly. > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm From fred at redhotpenguin.com Thu Mar 19 01:37:08 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Thu, 19 Mar 2009 01:37:08 -0700 Subject: [sf-perl] [Fwd: class DBI postgres date time format] In-Reply-To: <49C17D54.9080908@berkeley.edu> References: <49C17D54.9080908@berkeley.edu> Message-ID: 2009/3/18 ken uhl : > > > How do I set up table class method to correctly format and write 'updated' > ?column ?date and time stamp to postgres? With PostgreSQL you don't need to deflate an object if you just want to mark the time the row was updated. I have two columns, cts (creation time stamp) and mts (modification time stamp). cts gets set automatically when the row is inserted, and mts updates to now() on subsequent updates via a trigger. cts | timestamp without time zone | default now() mts | timestamp without time zone | default now() create or replace function update_modified_column() returns trigger as $$ BEGIN NEW.mts = now(); return new; END; $$ language 'plpgsql'; create trigger update_table_mts BEFORE UPDATE ON router FOR EACH ROW EXECUTE PROCEDURE update_modified_column(); Here's an actual record update, all I did was change a boolean in the record: cts | 2007-08-29 12:55:22.028357 mts | 2008-08-12 11:58:37.77211 cts | 2007-08-29 12:55:22.028357 mts | 2009-03-19 00:43:54.714981 Granted, this approach involves no Perl, but TMTOWTDI, and row modification creation and timestamping seems like something that should be done in the database (although I need a trigger for each table I track the cts and mts. Modifying other date columns represents a chance though to use object inflation and deflation in Perl. > > I have table entry object that contains this - to inflate and deflate : > > I think I need to add ?"has_timestamp" > ..... > > ? ?22 __PACKAGE__->table('dhcpmac'); > ? ?23 __PACKAGE__->columns( Primary => qw/rowid/ ); > ? ?24 __PACKAGE__->columns( All => qw/rowid mac calnetuid updated updatedby > dynhostname ishmael disable/ ); > ? ?25 > ? ?26 __PACKAGE__->has_a( updated => 'DateTime', > ? ?27 ? ? ? ? ? ? ? ? ? ? inflate => sub { > DateTime::Format::Pg->parse_timestamptz(shift); }, > ? ?28 ? ? ? ? ? ? ? ? ? ? deflate => sub { > DateTime::Format::Pg->format_timestamptz(shift); } ); > > ... > > my CGI ?does this : > > ... > # ?retrieve old row data ? 301 ? ? ? ? ?my $delta_row = > IST::DNSDB::dhcpmac->retrieve($old_rowid) ; > ? 302 ? ? ? ? ?my $old_mac = $delta_row->mac(); > ... > # ?replace some of the data - including 'updated' > ? 305 ? ? ? ? ?$delta_row->mac($new_validated_mac); > ? 306 ? ? ? ? ? ? ?$delta_row->updated( "now()" ); > .. > ? 308 ? ? ? ? ?$delta_row->updatedby($calnetuid); > ... > ? 313 ? ? ? ? ? $delta_row->update(); > ? 314 ? ? ? ? ? $delta_row->commit(); > > ( line 306 crashes with invalid SQL command line value, obviously, but what > goes here? ) > > ? > > TIA, > Ken Uhl, > UC Berkeley > > > > > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > > From biztos at mac.com Thu Mar 19 01:55:24 2009 From: biztos at mac.com (Kevin Frost) Date: Thu, 19 Mar 2009 01:55:24 -0700 Subject: [sf-perl] [Fwd: class DBI postgres date time format] In-Reply-To: References: <49C17D54.9080908@berkeley.edu> Message-ID: <558A5336-CF67-46BF-83EA-DABFB8C4CE10@mac.com> Funny, I was almost going to mention triggers in my first response. The nice thing about doing it in a trigger is there's no way to forget/ break the logic in your application. The less-nice thing is that you have a performance hit per update, which can be a problem in high transaction volumes. It's definitely something you'd want to benchmark (triggers vs. Perl w/DateTime vs. Perl w/o DateTime) if you expect to be doing a lot of updates. Also, I would argue that in Fred's example the modified timestamp ("mts") should not have a default value. When you create a record but do not subsequently modify it, its modification timestamp should be NULL, so you can tell the difference. This of course is highly impractical because you then have to remember about the NULLs in all your queries for the rest of your life, so it's an argument I often lose. FWIW PostgreSQL is also pretty forgiving in its date casting, and for quick hacks and debugging you can often just skip the TO_DATE altogether. And now back to our regularly scheduled Perl programming... -- f. On Mar 19, 2009, at 1:37 AM, Fred Moyer wrote: > 2009/3/18 ken uhl : >> >> >> How do I set up table class method to correctly format and write >> 'updated' >> column date and time stamp to postgres? > > With PostgreSQL you don't need to deflate an object if you just want > to mark the time the row was updated. > > I have two columns, cts (creation time stamp) and mts (modification > time stamp). cts gets set automatically when the row is inserted, and > mts updates to now() on subsequent updates via a trigger. > > cts | timestamp without time zone | default now() > mts | timestamp without time zone | default now() > > create or replace function update_modified_column() returns trigger > as $$ BEGIN > NEW.mts = now(); > return new; > END; > $$ language 'plpgsql'; > > create trigger update_table_mts BEFORE UPDATE ON router FOR EACH ROW > EXECUTE PROCEDURE update_modified_column(); > > Here's an actual record update, all I did was change a boolean in > the record: > > cts | 2007-08-29 12:55:22.028357 > mts | 2008-08-12 11:58:37.77211 > > cts | 2007-08-29 12:55:22.028357 > mts | 2009-03-19 00:43:54.714981 > > > Granted, this approach involves no Perl, but TMTOWTDI, and row > modification creation and timestamping seems like something that > should be done in the database (although I need a trigger for each > table I track the cts and mts. Modifying other date columns > represents a chance though to use object inflation and deflation in > Perl. > >> >> I have table entry object that contains this - to inflate and >> deflate : >> >> I think I need to add "has_timestamp" >> ..... >> >> 22 __PACKAGE__->table('dhcpmac'); >> 23 __PACKAGE__->columns( Primary => qw/rowid/ ); >> 24 __PACKAGE__->columns( All => qw/rowid mac calnetuid updated >> updatedby >> dynhostname ishmael disable/ ); >> 25 >> 26 __PACKAGE__->has_a( updated => 'DateTime', >> 27 inflate => sub { >> DateTime::Format::Pg->parse_timestamptz(shift); }, >> 28 deflate => sub { >> DateTime::Format::Pg->format_timestamptz(shift); } ); >> >> ... >> >> my CGI does this : >> >> ... >> # retrieve old row data 301 my $delta_row = >> IST::DNSDB::dhcpmac->retrieve($old_rowid) ; >> 302 my $old_mac = $delta_row->mac(); >> ... >> # replace some of the data - including 'updated' >> 305 $delta_row->mac($new_validated_mac); >> 306 $delta_row->updated( "now()" ); >> .. >> 308 $delta_row->updatedby($calnetuid); >> ... >> 313 $delta_row->update(); >> 314 $delta_row->commit(); >> >> ( line 306 crashes with invalid SQL command line value, obviously, >> but what >> goes here? ) >> >> ? >> >> TIA, >> Ken Uhl, >> UC Berkeley >> >> >> >> >> _______________________________________________ >> SanFrancisco-pm mailing list >> SanFrancisco-pm at pm.org >> http://mail.pm.org/mailman/listinfo/sanfrancisco-pm >> >> > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm From david at fetter.org Thu Mar 19 09:14:57 2009 From: david at fetter.org (David Fetter) Date: Thu, 19 Mar 2009 09:14:57 -0700 Subject: [sf-perl] [Fwd: class DBI postgres date time format] In-Reply-To: <49C17D54.9080908@berkeley.edu> References: <49C17D54.9080908@berkeley.edu> Message-ID: <20090319161457.GB5359@fetter.org> On Wed, Mar 18, 2009 at 04:01:40PM -0700, ken uhl wrote: > How do I set up table class method to correctly format and write > 'updated' column date and time stamp to postgres? Table class? From what module? Just FYI, anything that's mapping tables one-to-one with objects in client code is Doing It Wrong(TM). Your best bet is to write SQL as appropriate. This is a task people are good at and machines will remain bad at until they are capable making good choices about which abstraction level is appropriate, that being a pretty serviceable definition of strong AI. Cheers, David. -- David Fetter http://fetter.org/ Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter Skype: davidfetter XMPP: david.fetter at gmail.com Remember to vote! Consider donating to Postgres: http://www.postgresql.org/about/donate From matt at lanier.org Thu Mar 19 10:30:30 2009 From: matt at lanier.org (Matthew Lanier) Date: Thu, 19 Mar 2009 10:30:30 -0700 (PDT) Subject: [sf-perl] how to add to @INC at perl build time? Message-ID: hey folks- i need to add a few paths to @INC while building perl, above and beyond the paths that you are allowed to set via '(priv|arch|vendor|...)lib'. I know that you can set @INC at runtime, though that doesn't meet my needs. any hints on how to add elements to @INC at perl build time? thanks- m@ -- Matthew D. P. K. Strelchun-Lanier From doom at kzsu.stanford.edu Thu Mar 19 11:27:51 2009 From: doom at kzsu.stanford.edu (Joe Brenner) Date: Thu, 19 Mar 2009 11:27:51 -0700 Subject: [sf-perl] [Fwd: class DBI postgres date time format] In-Reply-To: References: <49C17D54.9080908@berkeley.edu> Message-ID: <200903191827.n2JIRp3J071941@kzsu.stanford.edu> Fred Moyer wrote: > Granted, this approach involves no Perl, but TMTOWTDI, and row > modification creation and timestamping seems like something that > should be done in the database (although I need a trigger for each > table I track the cts and mts. I do it almost exactly the same way (though I'm inclined to call the columns "ctime" and "mtime"). And pl/pgsql seems like a better choice than pl/perl for something as simple as this... though I don't know, maybe pl/perl is almost as ubiquitous anyway. You do need to do a CREATE LANGUAGE plpgsql; before you can use pl/pgsql. From doom at kzsu.stanford.edu Thu Mar 19 11:29:54 2009 From: doom at kzsu.stanford.edu (Joe Brenner) Date: Thu, 19 Mar 2009 11:29:54 -0700 Subject: [sf-perl] [Fwd: class DBI postgres date time format] In-Reply-To: <558A5336-CF67-46BF-83EA-DABFB8C4CE10@mac.com> References: <49C17D54.9080908@berkeley.edu> <558A5336-CF67-46BF-83EA-DABFB8C4CE10@mac.com> Message-ID: <200903191829.n2JITsps072001@kzsu.stanford.edu> Kevin Frost wrote: > Also, I would argue that in Fred's example the modified timestamp > ("mts") should not have a default value. When you create a > record but do not subsequently modify it, its modification > timestamp should be NULL, so you can tell the difference. This > of course is highly impractical because you then have to remember > about the NULLs in all your queries for the rest of your life, so > it's an argument I often lose. I'm not sure I get the logic in any case. Creation strikes me as a kind of modification. From not.com at gmail.com Thu Mar 19 12:05:54 2009 From: not.com at gmail.com (yary) Date: Thu, 19 Mar 2009 12:05:54 -0700 Subject: [sf-perl] how to add to @INC at perl build time? In-Reply-To: References: Message-ID: <75cbfa570903191205o452f2539heb6a44f47159e677@mail.gmail.com> On Thu, Mar 19, 2009 at 10:30 AM, Matthew Lanier wrote: > hey folks- > > i need to add a few paths to @INC while building perl, above and beyond the > paths that you are allowed to set via '(priv|arch|vendor|...)lib'. I'll assume you really do mean building perl (and not "at my program's compile time", where you'd use a BEGIN block or the -I command line switch). I did build a perl with a custom INC years ago, let's see if I can dig out the incantation... aha, from INSTALL doc in perl's source: === As a final catch-all, Configure also offers an $otherlibdirs variable. ?This variable contains a colon-separated list of additional directories to add to @INC. ?By default, it will be empty. Perl will search these directories (including architecture and version-specific subdirectories) for add-on modules and extensions. For example, if you have a bundle of perl libraries from a previous installation, perhaps in a strange place: ? ? ? ?Configure -Dotherlibdirs=/usr/lib/perl5/site_perl/5.8.1 === back to lunch, -y From kenuhl at berkeley.edu Thu Mar 19 12:47:05 2009 From: kenuhl at berkeley.edu (ken uhl) Date: Thu, 19 Mar 2009 12:47:05 -0700 Subject: [sf-perl] SanFrancisco-pm Digest, Vol 50, Issue 7 In-Reply-To: References: Message-ID: <49C2A139.60309@berkeley.edu> Thanks everyone my solution was from Frost : $delta_row->updated( DateTime->now() ); Ken U UCBerkeley esanfrancisco-pm-request at pm.org wrote: > Send SanFrancisco-pm mailing list submissions to > sanfrancisco-pm at pm.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > or, via email, send a message with subject or body 'help' to > sanfrancisco-pm-request at pm.org > > You can reach the person managing the list at > sanfrancisco-pm-owner at pm.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of SanFrancisco-pm digest..." > > > Today's Topics: > > 1. [Fwd: class DBI postgres date time format] (ken uhl) > 2. Re: [Fwd: class DBI postgres date time format] (Kevin Frost) > 3. Re: [Fwd: class DBI postgres date time format] (Dan Dascalescu) > 4. Re: [Fwd: class DBI postgres date time format] (Kevin Frost) > 5. Re: [Fwd: class DBI postgres date time format] (Fred Moyer) > 6. Re: [Fwd: class DBI postgres date time format] (Kevin Frost) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Wed, 18 Mar 2009 16:01:40 -0700 > From: ken uhl > Subject: [sf-perl] [Fwd: class DBI postgres date time format] > To: perl beginners > Message-ID: <49C17D54.9080908 at berkeley.edu> > Content-Type: text/plain; charset="iso-8859-1"; Format="flowed" > > > -------------- next part -------------- > An embedded message was scrubbed... > From: ken uhl > Subject: class DBI postgres date time format > Date: Tue, 17 Mar 2009 11:09:22 -0700 > Size: 1716 > URL: > > ------------------------------ > > Message: 2 > Date: Thu, 19 Mar 2009 00:14:19 -0700 > From: Kevin Frost > Subject: Re: [sf-perl] [Fwd: class DBI postgres date time format] > To: San Francisco Perl Mongers User Group > Message-ID: <40C5276D-53D6-4E8B-89E2-FFB9316563D5 at mac.com> > Content-Type: text/plain; charset="us-ascii"; Format="flowed"; > DelSp="yes" > > It looks like your "updated" column is mapped as a DateTime object > (line 26). > > You probably want to do something like this: > > $delta_row->updated( DateTime->now() ); > > Further resources: > > http://search.cpan.org/dist/DateTime/lib/DateTime.pm > > http://search.cpan.org/dist/DateTime-Format-Pg/lib/DateTime/Format/Pg.pm > > cheers > > -- frosty > > On Mar 18, 2009, at 4:01 PM, ken uhl wrote: > > >> From: ken uhl >> Date: March 17, 2009 11:09:22 AM PDT >> To: beginners at perl.org >> Subject: class DBI postgres date time format >> >> >> How do I set up table class method to correctly format and write >> 'updated' column date and time stamp to postgres? >> >> I have table entry object that contains this - to inflate and >> deflate : >> >> I think I need to add "has_timestamp" >> ..... >> >> 22 __PACKAGE__->table('dhcpmac'); >> 23 __PACKAGE__->columns( Primary => qw/rowid/ ); >> 24 __PACKAGE__->columns( All => qw/rowid mac calnetuid updated >> updatedby dynhostname ishmael disable/ ); >> 25 >> 26 __PACKAGE__->has_a( updated => 'DateTime', >> 27 inflate => sub { DateTime::Format::Pg- >> >>> parse_timestamptz(shift); }, >>> >> 28 deflate => sub { DateTime::Format::Pg- >> >>> format_timestamptz(shift); } ); >>> >> ... >> >> my CGI does this : >> >> ... >> # retrieve old row data 301 my $delta_row = >> IST::DNSDB::dhcpmac->retrieve($old_rowid) ; >> 302 my $old_mac = $delta_row->mac(); >> ... >> # replace some of the data - including 'updated' >> 305 $delta_row->mac($new_validated_mac); >> 306 $delta_row->updated( "now()" ); >> .. >> 308 $delta_row->updatedby($calnetuid); >> ... >> 313 $delta_row->update(); >> 314 $delta_row->commit(); >> >> ( line 306 crashes with invalid SQL command line value, obviously, >> but what goes here? ) >> >> ? >> >> TIA, >> Ken Uhl, >> UC Berkeley >> >> >> >> >> _______________________________________________ >> SanFrancisco-pm mailing list >> SanFrancisco-pm at pm.org >> http://mail.pm.org/mailman/listinfo/sanfrancisco-pm >> > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > > ------------------------------ > > Message: 3 > Date: Thu, 19 Mar 2009 01:06:42 -0700 > From: Dan Dascalescu > Subject: Re: [sf-perl] [Fwd: class DBI postgres date time format] > To: San Francisco Perl Mongers User Group > Message-ID: > <3561cc6d0903190106n4bbcc53dlbc3c2aa6096b40fe at mail.gmail.com> > Content-Type: text/plain; charset=UTF-8 > > >> How do I set up table class method to correctly format and write 'updated' >> ?column ?date and time stamp to postgres? >> > > DBIx::Class::TimeStamp might take care of that automagicallly. > > > ------------------------------ > > Message: 4 > Date: Thu, 19 Mar 2009 01:23:26 -0700 > From: Kevin Frost > Subject: Re: [sf-perl] [Fwd: class DBI postgres date time format] > To: San Francisco Perl Mongers User Group > Message-ID: <390FC95E-C446-4E6C-ADE7-C6E9BEE20049 at mac.com> > Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes > > Is there a Class::DBI equivalent? > > Of course you could just subclass Class::DBI and do it automatically > for everything that has an "updated" column. But for the same amount > of effort you could learn DBIx::Class, so... :-) > > -- f. > > On Mar 19, 2009, at 1:06 AM, Dan Dascalescu wrote: > > >>> How do I set up table class method to correctly format and write >>> 'updated' >>> column date and time stamp to postgres? >>> >> DBIx::Class::TimeStamp might take care of that automagicallly. >> _______________________________________________ >> SanFrancisco-pm mailing list >> SanFrancisco-pm at pm.org >> http://mail.pm.org/mailman/listinfo/sanfrancisco-pm >> > > > > ------------------------------ > > Message: 5 > Date: Thu, 19 Mar 2009 01:37:08 -0700 > From: Fred Moyer > Subject: Re: [sf-perl] [Fwd: class DBI postgres date time format] > To: San Francisco Perl Mongers User Group > Message-ID: > > Content-Type: text/plain; charset=ISO-8859-1 > > 2009/3/18 ken uhl : > >> How do I set up table class method to correctly format and write 'updated' >> ?column ?date and time stamp to postgres? >> > > With PostgreSQL you don't need to deflate an object if you just want > to mark the time the row was updated. > > I have two columns, cts (creation time stamp) and mts (modification > time stamp). cts gets set automatically when the row is inserted, and > mts updates to now() on subsequent updates via a trigger. > > cts | timestamp without time zone | default now() > mts | timestamp without time zone | default now() > > create or replace function update_modified_column() returns trigger as $$ BEGIN > NEW.mts = now(); > return new; > END; > $$ language 'plpgsql'; > > create trigger update_table_mts BEFORE UPDATE ON router FOR EACH ROW > EXECUTE PROCEDURE update_modified_column(); > > Here's an actual record update, all I did was change a boolean in the record: > > cts | 2007-08-29 12:55:22.028357 > mts | 2008-08-12 11:58:37.77211 > > cts | 2007-08-29 12:55:22.028357 > mts | 2009-03-19 00:43:54.714981 > > > Granted, this approach involves no Perl, but TMTOWTDI, and row > modification creation and timestamping seems like something that > should be done in the database (although I need a trigger for each > table I track the cts and mts. Modifying other date columns > represents a chance though to use object inflation and deflation in > Perl. > > >> I have table entry object that contains this - to inflate and deflate : >> >> I think I need to add ?"has_timestamp" >> ..... >> >> ? ?22 __PACKAGE__->table('dhcpmac'); >> ? ?23 __PACKAGE__->columns( Primary => qw/rowid/ ); >> ? ?24 __PACKAGE__->columns( All => qw/rowid mac calnetuid updated updatedby >> dynhostname ishmael disable/ ); >> ? ?25 >> ? ?26 __PACKAGE__->has_a( updated => 'DateTime', >> ? ?27 ? ? ? ? ? ? ? ? ? ? inflate => sub { >> DateTime::Format::Pg->parse_timestamptz(shift); }, >> ? ?28 ? ? ? ? ? ? ? ? ? ? deflate => sub { >> DateTime::Format::Pg->format_timestamptz(shift); } ); >> >> ... >> >> my CGI ?does this : >> >> ... >> # ?retrieve old row data ? 301 ? ? ? ? ?my $delta_row = >> IST::DNSDB::dhcpmac->retrieve($old_rowid) ; >> ? 302 ? ? ? ? ?my $old_mac = $delta_row->mac(); >> ... >> # ?replace some of the data - including 'updated' >> ? 305 ? ? ? ? ?$delta_row->mac($new_validated_mac); >> ? 306 ? ? ? ? ? ? ?$delta_row->updated( "now()" ); >> .. >> ? 308 ? ? ? ? ?$delta_row->updatedby($calnetuid); >> ... >> ? 313 ? ? ? ? ? $delta_row->update(); >> ? 314 ? ? ? ? ? $delta_row->commit(); >> >> ( line 306 crashes with invalid SQL command line value, obviously, but what >> goes here? ) >> >> ? >> >> TIA, >> Ken Uhl, >> UC Berkeley >> >> >> >> >> _______________________________________________ >> SanFrancisco-pm mailing list >> SanFrancisco-pm at pm.org >> http://mail.pm.org/mailman/listinfo/sanfrancisco-pm >> >> >> > > > ------------------------------ > > Message: 6 > Date: Thu, 19 Mar 2009 01:55:24 -0700 > From: Kevin Frost > Subject: Re: [sf-perl] [Fwd: class DBI postgres date time format] > To: San Francisco Perl Mongers User Group > Message-ID: <558A5336-CF67-46BF-83EA-DABFB8C4CE10 at mac.com> > Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes > > Funny, I was almost going to mention triggers in my first response. > > The nice thing about doing it in a trigger is there's no way to forget/ > break the logic in your application. The less-nice thing is that you > have a performance hit per update, which can be a problem in high > transaction volumes. It's definitely something you'd want to > benchmark (triggers vs. Perl w/DateTime vs. Perl w/o DateTime) if you > expect to be doing a lot of updates. > > Also, I would argue that in Fred's example the modified timestamp > ("mts") should not have a default value. When you create a record but > do not subsequently modify it, its modification timestamp should be > NULL, so you can tell the difference. This of course is highly > impractical because you then have to remember about the NULLs in all > your queries for the rest of your life, so it's an argument I often > lose. > > FWIW PostgreSQL is also pretty forgiving in its date casting, and for > quick hacks and debugging you can often just skip the TO_DATE > altogether. > > And now back to our regularly scheduled Perl programming... > > -- f. > > > On Mar 19, 2009, at 1:37 AM, Fred Moyer wrote: > > >> 2009/3/18 ken uhl : >> >>> How do I set up table class method to correctly format and write >>> 'updated' >>> column date and time stamp to postgres? >>> >> With PostgreSQL you don't need to deflate an object if you just want >> to mark the time the row was updated. >> >> I have two columns, cts (creation time stamp) and mts (modification >> time stamp). cts gets set automatically when the row is inserted, and >> mts updates to now() on subsequent updates via a trigger. >> >> cts | timestamp without time zone | default now() >> mts | timestamp without time zone | default now() >> >> create or replace function update_modified_column() returns trigger >> as $$ BEGIN >> NEW.mts = now(); >> return new; >> END; >> $$ language 'plpgsql'; >> >> create trigger update_table_mts BEFORE UPDATE ON router FOR EACH ROW >> EXECUTE PROCEDURE update_modified_column(); >> >> Here's an actual record update, all I did was change a boolean in >> the record: >> >> cts | 2007-08-29 12:55:22.028357 >> mts | 2008-08-12 11:58:37.77211 >> >> cts | 2007-08-29 12:55:22.028357 >> mts | 2009-03-19 00:43:54.714981 >> >> >> Granted, this approach involves no Perl, but TMTOWTDI, and row >> modification creation and timestamping seems like something that >> should be done in the database (although I need a trigger for each >> table I track the cts and mts. Modifying other date columns >> represents a chance though to use object inflation and deflation in >> Perl. >> >> >>> I have table entry object that contains this - to inflate and >>> deflate : >>> >>> I think I need to add "has_timestamp" >>> ..... >>> >>> 22 __PACKAGE__->table('dhcpmac'); >>> 23 __PACKAGE__->columns( Primary => qw/rowid/ ); >>> 24 __PACKAGE__->columns( All => qw/rowid mac calnetuid updated >>> updatedby >>> dynhostname ishmael disable/ ); >>> 25 >>> 26 __PACKAGE__->has_a( updated => 'DateTime', >>> 27 inflate => sub { >>> DateTime::Format::Pg->parse_timestamptz(shift); }, >>> 28 deflate => sub { >>> DateTime::Format::Pg->format_timestamptz(shift); } ); >>> >>> ... >>> >>> my CGI does this : >>> >>> ... >>> # retrieve old row data 301 my $delta_row = >>> IST::DNSDB::dhcpmac->retrieve($old_rowid) ; >>> 302 my $old_mac = $delta_row->mac(); >>> ... >>> # replace some of the data - including 'updated' >>> 305 $delta_row->mac($new_validated_mac); >>> 306 $delta_row->updated( "now()" ); >>> .. >>> 308 $delta_row->updatedby($calnetuid); >>> ... >>> 313 $delta_row->update(); >>> 314 $delta_row->commit(); >>> >>> ( line 306 crashes with invalid SQL command line value, obviously, >>> but what >>> goes here? ) >>> >>> ? >>> >>> TIA, >>> Ken Uhl, >>> UC Berkeley >>> >>> >>> >>> >>> _______________________________________________ >>> SanFrancisco-pm mailing list >>> SanFrancisco-pm at pm.org >>> http://mail.pm.org/mailman/listinfo/sanfrancisco-pm >>> >>> >>> >> _______________________________________________ >> SanFrancisco-pm mailing list >> SanFrancisco-pm at pm.org >> http://mail.pm.org/mailman/listinfo/sanfrancisco-pm >> > > > > ------------------------------ > > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > > > End of SanFrancisco-pm Digest, Vol 50, Issue 7 > ********************************************** > > From matt at lanier.org Thu Mar 19 15:23:23 2009 From: matt at lanier.org (Matthew Lanier) Date: Thu, 19 Mar 2009 15:23:23 -0700 (PDT) Subject: [sf-perl] how to add to @INC at perl build time? In-Reply-To: <75cbfa570903191205o452f2539heb6a44f47159e677@mail.gmail.com> References: <75cbfa570903191205o452f2539heb6a44f47159e677@mail.gmail.com> Message-ID: yep, that did the trick, thanks! m@ On Thu, 19 Mar 2009, yary wrote: > On Thu, Mar 19, 2009 at 10:30 AM, Matthew Lanier wrote: >> hey folks- >> >> i need to add a few paths to @INC while building perl, above and beyond the >> paths that you are allowed to set via '(priv|arch|vendor|...)lib'. > > I'll assume you really do mean building perl (and not "at my program's > compile time", where you'd use a BEGIN block or the -I command line > switch). I did build a perl with a custom INC years ago, let's see if > I can dig out the incantation... > > aha, from INSTALL doc in perl's source: > === > As a final catch-all, Configure also offers an $otherlibdirs > variable. ?This variable contains a colon-separated list of additional > directories to add to @INC. ?By default, it will be empty. > Perl will search these directories (including architecture and > version-specific subdirectories) for add-on modules and extensions. > > For example, if you have a bundle of perl libraries from a previous > installation, perhaps in a strange place: > > ? ? ? ?Configure -Dotherlibdirs=/usr/lib/perl5/site_perl/5.8.1 > === > > back to lunch, > > -y > -- Matthew D. P. K. Strelchun-Lanier From fred at redhotpenguin.com Sat Mar 21 17:46:54 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Sat, 21 Mar 2009 17:46:54 -0700 Subject: [sf-perl] Fwd: [pm_groups] TPF in Google Summer of Code! In-Reply-To: <200903211709.53023.scratchcomputing@gmail.com> References: <200903211709.53023.scratchcomputing@gmail.com> Message-ID: ---------- Forwarded message ---------- From: Eric Wilhelm Date: Sat, Mar 21, 2009 at 5:09 PM Subject: [pm_groups] TPF in Google Summer of Code! To: pm_groups at pm.org Cc: Jonathan Leto Hi all, Please forward this to your local groups. The Perl Foundation has been officially accepted into the Google Summer of Code 2009 program as a mentor organization! Hopefully some of you have identified some potential students already. Now we need your help getting them to submit their proposals. http://leto.net/dukeleto.pl/2009/03/tpf-accepted-to-google-summer-of-code-2009.html The student application period begins Monday, March 23rd and runs through April 3rd. ?(Students note: ?you can edit your proposal throughout that 11-day period -- getting it started early and talking to potential mentors greatly increases your chances vs throwing it over the wall at the deadline.) ?See this page for details: ?http://code.google.com/soc/ Interested students and potential mentors, please read the GSoC info on the Perl wiki: ?http://www.perlfoundation.org/perl5/index.cgi?gsoc ?http://www.perlfoundation.org/perl5/index.cgi?gsoc_2009_projects If you're interested in mentoring or have a good project suggestion, now is the time to get your info up on the wiki so students will know about your code and where to find you. Thanks, Eric -- Request pm.org Technical Support via support at pm.org pm_groups mailing list pm_groups at pm.org http://mail.pm.org/mailman/listinfo/pm_groups From fred at redhotpenguin.com Mon Mar 23 13:22:24 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Mon, 23 Mar 2009 13:22:24 -0700 Subject: [sf-perl] Evolving Tests and Idioms of March tomorrow at 7pm Message-ID: Hope to see you there! http://www.meetup.com/San-Francisco-Perl-Mongers/calendar/9442341/ http://sf.pm.org/weblog/ Here's the location information - http://www.meetup.com/San-Francisco-Perl-Mongers/venue/842240/?eventId=9442341&popup=true Directions from Oakland: take an SF Bart train to the Embarcadero station, get off and change to the N-Judi train. Get off the N-Judah at 4th street. Walk up 4th street to Six Apart Headquarters. From matt at lanier.org Mon Mar 23 17:36:19 2009 From: matt at lanier.org (Matthew Lanier) Date: Mon, 23 Mar 2009 17:36:19 -0700 (PDT) Subject: [sf-perl] dynamic #! line Message-ID: hey folks- i'm in a situation where I may need to set #! on a perl script at run time via the environment. I know that's technically possible, but am unsure what hidden gotchas may result. Any thoughts on that? m@ -- Matthew D. P. K. Strelchun-Lanier From david at fetter.org Mon Mar 23 17:39:58 2009 From: david at fetter.org (David Fetter) Date: Mon, 23 Mar 2009 17:39:58 -0700 Subject: [sf-perl] dynamic #! line In-Reply-To: References: Message-ID: <20090324003958.GG10660@fetter.org> On Mon, Mar 23, 2009 at 05:36:19PM -0700, Matthew Lanier wrote: > hey folks- > > i'm in a situation where I may need to set #! on a perl script at > run time via the environment. I know that's technically possible, > but am unsure what hidden gotchas may result. Any thoughts on that? Well, you could use the old #!/usr/bin/env perl trick. The gotcha is just the usual one about anything that radically changes behavior based on hard-to-reproduce-later stuff like environment variables. Cheers, David. -- David Fetter http://fetter.org/ Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter Skype: davidfetter XMPP: david.fetter at gmail.com Remember to vote! Consider donating to Postgres: http://www.postgresql.org/about/donate From andy at petdance.com Mon Mar 23 17:44:14 2009 From: andy at petdance.com (Andy Lester) Date: Mon, 23 Mar 2009 19:44:14 -0500 Subject: [sf-perl] dynamic #! line In-Reply-To: <20090324003958.GG10660@fetter.org> References: <20090324003958.GG10660@fetter.org> Message-ID: <4217DF4D-2D60-4290-8F83-FD88AF19613D@petdance.com> On Mar 23, 2009, at 7:39 PM, David Fetter wrote: >> i'm in a situation where I may need to set #! on a perl script at >> run time via the environment. I know that's technically possible, >> but am unsure what hidden gotchas may result. Any thoughts on that? What are you trying to achieve by setting the #! line? Unless you're setting -t/-T, you should be able to do the rest at startup without touching the shebang. xoxo, Andy -- Andy Lester => andy at petdance.com => www.petdance.com => AIM:petdance From matt at lanier.org Mon Mar 23 17:48:23 2009 From: matt at lanier.org (Matthew Lanier) Date: Mon, 23 Mar 2009 17:48:23 -0700 (PDT) Subject: [sf-perl] dynamic #! line In-Reply-To: <4217DF4D-2D60-4290-8F83-FD88AF19613D@petdance.com> References: <20090324003958.GG10660@fetter.org> <4217DF4D-2D60-4290-8F83-FD88AF19613D@petdance.com> Message-ID: long story, i'm trying to not modify the startup context if i don't need to. as dfetter suggested, '/usr/bin/env perl' works, though it appears to work via perl being in the path. m@ On Mon, 23 Mar 2009, Andy Lester wrote: > > On Mar 23, 2009, at 7:39 PM, David Fetter wrote: > >> > i'm in a situation where I may need to set #! on a perl script at >> > run time via the environment. I know that's technically possible, >> > but am unsure what hidden gotchas may result. Any thoughts on that? > > > What are you trying to achieve by setting the #! line? Unless you're setting > -t/-T, you should be able to do the rest at startup without touching the > shebang. > > xoxo, > Andy > > -- > Andy Lester => andy at petdance.com => www.petdance.com => AIM:petdance > > > > > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > -- Matthew D. P. K. Strelchun-Lanier From extasia at extasia.org Mon Mar 23 18:55:17 2009 From: extasia at extasia.org (David Alban) Date: Mon, 23 Mar 2009 18:55:17 -0700 Subject: [sf-perl] dynamic #! line In-Reply-To: References: Message-ID: <4c714a9c0903231855y675d8c96ifb86886d3116c370@mail.gmail.com> if you're in a unix environment, you'll have at least /bin/sh available (hopefully /bin/bash too). could you call a shell program which will set the shebang line and then call the resulting program with all args? in the shell program you could do useful things, like look for different perl executables, perhaps md5sum them, check whether they're in system directories, check when they were last modified, whether they're group or world writeable, and perhaps take intelligent action if no "suitable" perl's are found. On Mon, Mar 23, 2009 at 5:36 PM, Matthew Lanier wrote: > i'm in a situation where I may need to set #! on a perl script at run time > via the environment. ?I know that's technically possible, but am unsure what > hidden gotchas may result. ?Any thoughts on that? -- Live in a world of your own, but always welcome visitors. From biztos at mac.com Mon Mar 23 19:04:22 2009 From: biztos at mac.com (frosty) Date: Mon, 23 Mar 2009 19:04:22 -0700 Subject: [sf-perl] dynamic #! line In-Reply-To: <4c714a9c0903231855y675d8c96ifb86886d3116c370@mail.gmail.com> References: <4c714a9c0903231855y675d8c96ifb86886d3116c370@mail.gmail.com> Message-ID: <135506817083441121587333275411676976832-Webmail@me.com> I use the /usr/bin/env trick all the time. In my case it's because I want code to happily run under a custom Perl, an OSX Perl, a macports Perl, and a few different Linux Perls, without any fancy futzing around. However, I have never tested it for edge cases or weird/untrusted user environments. It seems a bit risky if you're deploying code onto servers you don't control. Also, you can't just pass in a bunch of switches to perl if you do it this way. That might matter to you; it doesn't to me. -- f. On Monday, March 23, 2009, at 06:55PM, "David Alban" wrote: >if you're in a unix environment, you'll have at least /bin/sh >available (hopefully /bin/bash too). could you call a shell program >which will set the shebang line and then call the resulting program >with all args? > >in the shell program you could do useful things, like look for >different perl executables, perhaps md5sum them, check whether they're >in system directories, check when they were last modified, whether >they're group or world writeable, and perhaps take intelligent action >if no "suitable" perl's are found. > >On Mon, Mar 23, 2009 at 5:36 PM, Matthew Lanier wrote: >> i'm in a situation where I may need to set #! on a perl script at run time >> via the environment. ?I know that's technically possible, but am unsure what >> hidden gotchas may result. ?Any thoughts on that? > >-- >Live in a world of your own, but always welcome visitors. >_______________________________________________ >SanFrancisco-pm mailing list >SanFrancisco-pm at pm.org >http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > > From doom at kzsu.stanford.edu Mon Mar 23 20:36:56 2009 From: doom at kzsu.stanford.edu (Joe Brenner) Date: Mon, 23 Mar 2009 20:36:56 -0700 Subject: [sf-perl] dynamic #! line In-Reply-To: References: Message-ID: <200903240337.n2O3au1C077877@kzsu.stanford.edu> Matthew Lanier wrote: > i'm in a situation where I may need to set #! on a perl script at run time > via the environment. I know that's technically possible, but am unsure > what hidden gotchas may result. Any thoughts on that? Have you checked the "perlrun" manpage? When this subject came up back in 2003, there were essentially four ideas discussed: (1) wrapper programs that change the hashbang line (e.g. a C program) (2) add symlinks to the system so that perl is found in multiple places (3) using a "sh" hashbang that then runs perl (4) the env trick I'm appending some messages from the 2003 thread: === Date: Fri, 10 Jan 2003 16:09:31 -0800 From: John Tannahill To: sfpug at sf.pm.org Subject: [sf-perl] [Fwd: [Fwd:perl scripting]] It's my understanding that your group does a lot of Perl script writing. Over the years, I have written some perl scripts to serve as utilities for the code that I work on. The problem that I ran into is with the typical first line of a perl script: #!/usr/bin/perl We run on many different machines and unfortunately it turned out that perl wasn't always in /usr/bin. Sometimes it is in /usr/local/bin or it could in theory be anywhere the system people want to put it. The solution we implemented was to put a C-Shell wrapper around each perl script which checks to see where perl is and then rewrites the perl script to a seperate file with the correct first line and executes it. This works, but it is pretty unwieldy and ugly. Perhaps you or someone in your group knows a simple remedy for this issue? Or maybe you can point to someone who might? The C-Shell wrapper looks like this: # #-------------------------------------------------------------------------- # The statements above, immediately below, and at the very end of this file # were added to make this script more portable, as perl does not always # reside in the same place on different machines. #-------------------------------------------------------------------------- set DIRS = (/usr/bin /usr/local/bin) set PLFILE = /tmp/tmpplfile.$$ foreach dir ($DIRS) if (-e $dir/perl) then echo "#\!$dir/perl -w" > $PLFILE break else if ($dir == $DIRS[$#DIRS]) then echo "PERL NOT FOUND; SEE BEGINNING OF SCRIPT." exit endif end cat >> $PLFILE << "TO_THE_END_OF_THE_PERL_SCRIPT" . . . . . . "TO_THE_END_OF_THE_PERL_SCRIPT" === Date: Fri, 10 Jan 2003 16:59:08 -0800 From: Belden Lyman To: sfpug at sf.pm.org Subject: Re: [sf-perl] [Fwd: [Fwd:perl scripting]] M.Lewis wrote: > What I've found is most perl scripts that you might download from one place or > another will look for perl in only a couple of places. For instance > /usr/bin/perl or /usr/local/bin/perl. > > I solved the problem with a symlink in /usr/local/bin (my perl lives in > /usr/bin). > > Maybe too simple ? Hey, it works. It's also described in 'perlrun' under ``Location of Perl''. The ``Description'' section of perlrun also presents such gems as: #!/bin/sh -- # -*- perl -*- -p eval 'exec perl -wS $0 ${1+"$@"}' if $running_under_some_shell; and #!/usr/bin/env perl which might be useful if symlinking isn't an option. Belden === Date: Sat, 11 Jan 2003 00:11:13 -0800 To: sfpug at sf.pm.org From: Rich Morin Subject: Re: [sf-perl] [Fwd: [Fwd:perl scripting]] I use this: #!/usr/bin/env perl ... It has the advantage of using whichever version of perl comes first on the PATH, just as if you had typed: % perl ... -r === From doom at kzsu.stanford.edu Mon Mar 23 20:36:56 2009 From: doom at kzsu.stanford.edu (Joe Brenner) Date: Mon, 23 Mar 2009 20:36:56 -0700 Subject: [sf-perl] dynamic #! line In-Reply-To: References: Message-ID: <200903240337.n2O3au1C077877@kzsu.stanford.edu> Matthew Lanier wrote: > i'm in a situation where I may need to set #! on a perl script at run time > via the environment. I know that's technically possible, but am unsure > what hidden gotchas may result. Any thoughts on that? Have you checked the "perlrun" manpage? When this subject came up back in 2003, there were essentially four ideas discussed: (1) wrapper programs that change the hashbang line (e.g. a C program) (2) add symlinks to the system so that perl is found in multiple places (3) using a "sh" hashbang that then runs perl (4) the env trick I'm appending some messages from the 2003 thread: === Date: Fri, 10 Jan 2003 16:09:31 -0800 From: John Tannahill To: sfpug at sf.pm.org Subject: [sf-perl] [Fwd: [Fwd:perl scripting]] It's my understanding that your group does a lot of Perl script writing. Over the years, I have written some perl scripts to serve as utilities for the code that I work on. The problem that I ran into is with the typical first line of a perl script: #!/usr/bin/perl We run on many different machines and unfortunately it turned out that perl wasn't always in /usr/bin. Sometimes it is in /usr/local/bin or it could in theory be anywhere the system people want to put it. The solution we implemented was to put a C-Shell wrapper around each perl script which checks to see where perl is and then rewrites the perl script to a seperate file with the correct first line and executes it. This works, but it is pretty unwieldy and ugly. Perhaps you or someone in your group knows a simple remedy for this issue? Or maybe you can point to someone who might? The C-Shell wrapper looks like this: # #-------------------------------------------------------------------------- # The statements above, immediately below, and at the very end of this file # were added to make this script more portable, as perl does not always # reside in the same place on different machines. #-------------------------------------------------------------------------- set DIRS = (/usr/bin /usr/local/bin) set PLFILE = /tmp/tmpplfile.$$ foreach dir ($DIRS) if (-e $dir/perl) then echo "#\!$dir/perl -w" > $PLFILE break else if ($dir == $DIRS[$#DIRS]) then echo "PERL NOT FOUND; SEE BEGINNING OF SCRIPT." exit endif end cat >> $PLFILE << "TO_THE_END_OF_THE_PERL_SCRIPT" . . . . . . "TO_THE_END_OF_THE_PERL_SCRIPT" === Date: Fri, 10 Jan 2003 16:59:08 -0800 From: Belden Lyman To: sfpug at sf.pm.org Subject: Re: [sf-perl] [Fwd: [Fwd:perl scripting]] M.Lewis wrote: > What I've found is most perl scripts that you might download from one place or > another will look for perl in only a couple of places. For instance > /usr/bin/perl or /usr/local/bin/perl. > > I solved the problem with a symlink in /usr/local/bin (my perl lives in > /usr/bin). > > Maybe too simple ? Hey, it works. It's also described in 'perlrun' under ``Location of Perl''. The ``Description'' section of perlrun also presents such gems as: #!/bin/sh -- # -*- perl -*- -p eval 'exec perl -wS $0 ${1+"$@"}' if $running_under_some_shell; and #!/usr/bin/env perl which might be useful if symlinking isn't an option. Belden === Date: Sat, 11 Jan 2003 00:11:13 -0800 To: sfpug at sf.pm.org From: Rich Morin Subject: Re: [sf-perl] [Fwd: [Fwd:perl scripting]] I use this: #!/usr/bin/env perl ... It has the advantage of using whichever version of perl comes first on the PATH, just as if you had typed: % perl ... -r === From not.com at gmail.com Mon Mar 23 21:10:58 2009 From: not.com at gmail.com (yary) Date: Mon, 23 Mar 2009 21:10:58 -0700 Subject: [sf-perl] dynamic #! line In-Reply-To: <200903240337.n2O3au1C077877@kzsu.stanford.edu> References: <200903240337.n2O3au1C077877@kzsu.stanford.edu> Message-ID: <75cbfa570903232110p62e9c8d1s192dea8f2672142c@mail.gmail.com> Depending on the situation, you might be able to eliminate the need for the shebang by calling perl explicitly, that is, use /path/to/perl /usr/local/bin/myscript -arg foo ... instead of /usr/local/bin/myscript -arg foo ... when you need to run "myscript". Works if you get to write the install instructions for "myscript", and can depend on people following them. From david_v_wright at yahoo.com Mon Mar 23 21:14:30 2009 From: david_v_wright at yahoo.com (david wright- [白熊]) Date: Mon, 23 Mar 2009 21:14:30 -0700 (PDT) Subject: [sf-perl] dynamic #! line Message-ID: <362440.57683.qm@web31809.mail.mud.yahoo.com> Howdy, I'm not sure I follow fully, it seems you want to use a system specific possibly unknown ahead of time perl path? e.g. maybe not /usr/bin/perl would borrowing the python trick of #!/usr/bin/env perl work? let your env decide which perl to use? or am I missing the point? +dave --- On Mon, 3/23/09, Matthew Lanier wrote: > From: Matthew Lanier > Subject: [sf-perl] dynamic #! line > To: sfpug at sf.pm.org > Date: Monday, March 23, 2009, 8:36 PM > hey folks- > > i'm in a situation where I may need to set #! on a perl > script at run time via the environment.? I know that's > technically possible, but am unsure what hidden gotchas may > result.? Any thoughts on that? > > m@ > > > -- > Matthew D. P. K. Strelchun-Lanier > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > From david_v_wright at yahoo.com Mon Mar 23 21:16:30 2009 From: david_v_wright at yahoo.com (david wright- [白熊]) Date: Mon, 23 Mar 2009 21:16:30 -0700 (PDT) Subject: [sf-perl] dynamic #! line Message-ID: <777919.29539.qm@web31811.mail.mud.yahoo.com> geez, my bad, this went into another dir, so I didn't see all the other responses, sorry for the duplicate suggestion,... --- On Tue, 3/24/09, david wright- [白熊] wrote: > From: david wright- [??] > Subject: Re: [sf-perl] dynamic #! line > To: matt at lanier.org, "San Francisco Perl Mongers User Group" > Date: Tuesday, March 24, 2009, 12:14 AM > > Howdy, > > I'm not sure I follow fully, it seems you want to use a > system specific possibly unknown ahead of time perl path? > > e.g. maybe not /usr/bin/perl > > would borrowing the python trick of #!/usr/bin/env perl > work? > > let your env decide which perl to use? or am I missing the > point? > > +dave > > > --- On Mon, 3/23/09, Matthew Lanier > wrote: > > > From: Matthew Lanier > > Subject: [sf-perl] dynamic #! line > > To: sfpug at sf.pm.org > > Date: Monday, March 23, 2009, 8:36 PM > > hey folks- > > > > i'm in a situation where I may need to set #! on a > perl > > script at run time via the environment.? I know > that's > > technically possible, but am unsure what hidden > gotchas may > > result.? Any thoughts on that? > > > > m@ > > > > > > -- > > Matthew D. P. K. Strelchun-Lanier > > _______________________________________________ > > SanFrancisco-pm mailing list > > SanFrancisco-pm at pm.org > > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > > > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > From cweyl at alumni.drew.edu Tue Mar 24 12:28:14 2009 From: cweyl at alumni.drew.edu (Chris Weyl) Date: Tue, 24 Mar 2009 12:28:14 -0700 Subject: [sf-perl] dynamic #! line In-Reply-To: References: <20090324003958.GG10660@fetter.org> <4217DF4D-2D60-4290-8F83-FD88AF19613D@petdance.com> Message-ID: <7dd7ab490903241228g5fbb38desa3005ae46c65fede@mail.gmail.com> On Mon, Mar 23, 2009 at 5:48 PM, Matthew Lanier wrote: > > long story, i'm trying to not modify the startup context if i don't need > to. > > as dfetter suggested, '/usr/bin/env perl' works, though it appears to work > via perl being in the path. > On some boxes at $work, we have very old or otherwise wonky Perl installations as the system Perl. I've built and installed a newer Perl on these boxes; to use the new Perl transparently I created a small module that checks $^X to see what's currently executing the script. If it's the old system Perl and the new Perl is available, we exec ourself under the new Perl; if we're running under the new Perl (or it's unavailable), it's a no-op. This works nicely as it's use'd, and so gets run nice and early. I'd imagine if you had to, you could rig it to reexec with more command-line parameters... -Chris -- Chris Weyl Ex astris, scientia -------------- next part -------------- An HTML attachment was scrubbed... URL: From fred at redhotpenguin.com Tue Mar 24 12:36:40 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Tue, 24 Mar 2009 12:36:40 -0700 Subject: [sf-perl] Fwd: UG News: $199 O'Reilly classes and a chance for some free passes In-Reply-To: References: Message-ID: This looks like a pretty good deal here. ---------- Forwarded message ---------- From: Marsee Henon Date: Mon, Mar 23, 2009 at 5:02 PM Subject: UG News: $199 O'Reilly classes and a chance for some free passes To: fred at redhotpenguin.com Hi there I'm happy to announce a special discount and some free passes for Bay Area user group members to our upcoming Master Classes in San Francisco March 30. Please share with your group if you think they might be interested. The details are below. Marsee New O'Reilly Training and Master Classes in San Francisco-- $199 per class. And we're offering 10 free passes to classes taught by Scott Berkun and Steve Souders on a first come, first serve basis. Just use code -- ugfree -- when you register online. Sign up today. In this increasingly competitive job market, having top-of-the-line technical and management skills is critical. The good news is that you can improve your skills and learn some new techniques that will make you irreplaceable--without breaking the bank. The first three one-day Master Classes on JavaScript, Creating High Performance Websites, and Project Management are scheduled for March 30 in San Francisco. Right now user group members pay only $199 per O'Reilly Master class-- Scott Berkun on project management, Douglas Crockford on JavaScript coding, and Steve Souders on improving website performance. Go to and use special offer code -- baug -- to register at the special price of $199.00 per class. Everyone in the class receives $100 worth of O'Reilly books. Here are the details: O'Reilly Master Class: Douglas Crockford, March 30, 2009, San Francisco, CA JavaScript: The Good Parts Like most languages, JavaScript contains both good and bad parts. The bad parts keep it from becoming an elegant, lightweight, and highly expressive language. In this class, you'll discover good JavaScript you can use to create truly extensible code. The author of "JavaScript: The Good Parts," (O'Reilly Media), Crockford is a regular speaker at conferences on advanced JavaScript topics. He serves on the JavaScript 2.0 committee at ECMA. Everyone in the class receives $100 worth of O'Reilly books. 1-day workshop, 9am-5pm, Mar. 30 Mission Bay Conference Center University of California, San Francisco (UCSF) 1675 Owens St. San?Francisco, CA 94143 For more information and to register: Call: (707) 827-7000 / (800)?998-9938 http://training.oreilly.com/javascript ******************************************* O'Reilly Master Class: Scott Berkun, March 30, 2009, San Francisco, CA Leading and Managing Breakthrough Projects Scott Berkun, author of the bestselling "The Myths of Innovation" (O'Reilly Media) uses valuable insights from the past as well as challenging in-class exercises to help you develop the leadership skills and knowledge you need to manage innovative people and projects. Everyone in the class receives $100 worth of O'Reilly books. 1-day workshop, 10am-5pm, Mar. 30 Mission Bay Conference Center University of California, San Francisco (UCSF) 1675 Owens St. San?Francisco, CA 94143 For more information and to register: Call: (707) 827-7000 / (800) 998-9938 http://training.oreilly.com/projectmanagement ******************************************* O'Reilly Master Class: Steve Souders, March 30, 2009, San Francisco, CA Creating High Performance Web Sites While working at Google and Yahoo!, Steve Souders developed rules that cut up to 25% off response time for page requests. In this class, Souders, the author of the bestselling O'Reilly book, "High Performance Web Sites" (O'Reilly Media), explains those rules and shows you how you can greatly improve the performance of your existing web pages. Everyone in the class receives $100 worth of O'Reilly books. 1-day workshop, 9am-5pm, Mar. 30 Mission Bay Conference Center University of California, San Francisco (UCSF) 1675 Owens St. San Francisco, CA 94143 For more information and to register: Call: (707) 827-7000 / (800) 998-9938 http://training.oreilly.com/highperformancesites ================================================================ O'Reilly 1005 Gravenstein Highway North Sebastopol, CA ? 95472 800-998-9938 http://ug.oreilly.com/ Follow us on Twitter at http://twitter.com/OReillyMedia You are receiving this email because you are a User Group contact with O'Reilly Media. If you would like to stop receiving these newsletters or announcements from O'Reilly, send an email to marsee at oreilly.com ================================================================ From fred at redhotpenguin.com Tue Mar 24 12:39:25 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Tue, 24 Mar 2009 12:39:25 -0700 Subject: [sf-perl] Fwd: [perl-112] Idiom contest! E-mail your favorite idiom now. Win scrumptious books. In-Reply-To: <603049018.1237878840879.JavaMail.nobody@james3> References: <603049018.1237878840879.JavaMail.nobody@james3> Message-ID: Meeting tonight, don't forget your idioms. ---------- Forwarded message ---------- From: julian Date: Tue, Mar 24, 2009 at 12:14 AM Subject: [perl-112] Idiom contest! E-mail your favorite idiom now. Win scrumptious books. To: perl-112 at meetup.com What you can win: - iPhone SDK Application Development - 97 Things Every Software Architect Should Know - A thrilling copy of make magazine - A flash dive - A virtual indulgence What you can lose: - Your pride Now is your chance. Email your favorite Perl Idiom to both Fred and I: julian_meet at supersnail.com fred at redhotpenguin.com Entries must sent within 23 minutes of the deadline. Don't wait. Send your favorite now, before it's too late. We will all vote and determine who will win and who will lose. This could be your chance for glory and everlasting fame. If this seems confusing, just google for "idiom perl". Find your favorite, or if you're especially daring, come up with one. You can win salvation, -julian geek -- Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list (perl-112 at meetup.com) This message was sent by julian (julian_meet at supersnail.com) from San Francisco Perl Mongers. To learn more about julian, visit his/her member profile To unsubscribe or to update your mailing list settings, click here Meetup Support: support at meetup.com 632 Broadway, New York, NY 10012 USA From fred at redhotpenguin.com Tue Mar 24 13:51:23 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Tue, 24 Mar 2009 13:51:23 -0700 Subject: [sf-perl] Fwd: Last day for 10th Anniversary Special In-Reply-To: <20090324203349.GA24490@mawode.com> References: <20090324203349.GA24490@mawode.com> Message-ID: ---------- Forwarded message ---------- From: Walt Mankowski Date: Tue, Mar 24, 2009 at 1:33 PM Subject: Fwd: Last day for 10th Anniversary Special To: phl at lists.pm.org The rate goes up to $125 tomorrow. ----- Forwarded message from Robert Blackwell ----- Date: Tue, 24 Mar 2009 16:21:56 -0400 From: Robert Blackwell To: yapc at pm.org Subject: [yapc] Last day for 10th Anniversary Special Last day for 10th Anniversary Special for $99.00. http://yapc10.org. _______________________________________________ yapc mailing list yapc at pm.org http://mail.pm.org/mailman/listinfo/yapc ----- End forwarded message ----- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iD8DBQFJyUOsXfGeK2entYQRAvKYAKCq/MyrBn4F4ZbGf2SYtLLklpBhZACdEfQT eS9+k1/3cDM24U4x9Wqf89Y= =4pXQ -----END PGP SIGNATURE----- -------------- next part -------------- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iD8DBQFJyUOsXfGeK2entYQRAvKYAKCq/MyrBn4F4ZbGf2SYtLLklpBhZACdEfQT eS9+k1/3cDM24U4x9Wqf89Y= =4pXQ -----END PGP SIGNATURE----- From parallax99 at hotmail.com Wed Mar 25 10:13:21 2009 From: parallax99 at hotmail.com (Stefan Amshey) Date: Wed, 25 Mar 2009 10:13:21 -0700 Subject: [sf-perl] Catalyst question - sharing data between sessions Message-ID: Hi all- I realize that this may not be the best list to ask this question on since it involves a specific Perl technology, but does anyone out there have some experience writing web-apps in Catalyst that could give me a basic point in the right direction regarding the following: I'm writing a web-app that needs to hold some large data structures, and instead of incurring the cost of loading those structures for each user session we'd like to store them in some context that is shared between sessions and possibly locked/unlocked/synchronized to avoid collisions. The stash is cleared after every request, and the session object is user-specific. Is there some concept of a "global session", or can we tie variables to the top-level Catalyst object, or something like that? Anyone solved this problem before without resorting to writing files? Thanks! /S - Stefan Amshey parallax99 at hotmail.com _________________________________________________________________ Express your personality in color! Preview and select themes for Hotmail?. http://www.windowslive-hotmail.com/LearnMore/personalize.aspx?ocid=TXT_MSGTX_WL_HM_express_032009#colortheme -------------- next part -------------- An HTML attachment was scrubbed... URL: From garth.webb at gmail.com Wed Mar 25 10:27:12 2009 From: garth.webb at gmail.com (Garth Webb) Date: Wed, 25 Mar 2009 10:27:12 -0700 Subject: [sf-perl] Catalyst question - sharing data between sessions In-Reply-To: References: Message-ID: So I'm not clear about a few things. You say that you want to share some context between sessions. Is this between two different user sessions, or reload the same session for one user with all its data more than once? You also say that you clear the stash after every request. Does this mean you want to clear all the data? This wouldn't make sense for reloading the same session for a single user, and if its multiple users they would only be able to share data if the requests were happening simultaneously. I *think* what you're asking for is the concept of persistent session data that is available for a single user on every request they make. This is pretty easy to setup on Catalyst: http://search.cpan.org/dist/Catalyst-Plugin-Session/lib/Catalyst/Plugin/Session/Tutorial.pod If you want to share data between processes and don't want to incur hits to your DB, maybe you want Memcached. Garth 2009/3/25 Stefan Amshey : > Hi all- > > I realize that this may not be the best list to ask this question on since > it involves a specific Perl technology, but does anyone out there have some > experience writing web-apps in Catalyst that could give me a basic point in > the right direction regarding the following: > > I'm writing a web-app that needs to hold some large data structures, and > instead of incurring the cost of loading those structures for each user > session we'd like to store them in some context that is shared between > sessions and possibly locked/unlocked/synchronized to avoid collisions.? The > stash is cleared after every request, and the session object is > user-specific.? Is there some concept of a "global session", or can we tie > variables to the top-level Catalyst object, or something like that?? Anyone > solved this problem before without resorting to writing files? > > Thanks! > ??? /S > > - Stefan Amshey parallax99 at hotmail.com > > > ________________________________ > Express your personality in color! Preview and select themes for Hotmail?. > See how. > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > > From parallax99 at hotmail.com Wed Mar 25 10:34:25 2009 From: parallax99 at hotmail.com (Stefan Amshey) Date: Wed, 25 Mar 2009 10:34:25 -0700 Subject: [sf-perl] Catalyst question - sharing data between sessions In-Reply-To: References: Message-ID: Actually, I was merely stating fact that the stash is cleared after every request. I also understand the concept of a user session, but what I'm looking for is a way of sharing data between users, each of whom is involved in a separate session, but concurrently. I'm not worried about clearing the data out, only sharing it so that we don't have to re-load it for each session. /S - Stefan Amshey parallax99 at hotmail.com > Date: Wed, 25 Mar 2009 10:27:12 -0700 > From: garth.webb at gmail.com > To: sanfrancisco-pm at pm.org > Subject: Re: [sf-perl] Catalyst question - sharing data between sessions > > So I'm not clear about a few things. You say that you want to share > some context between sessions. Is this between two different user > sessions, or reload the same session for one user with all its data > more than once? You also say that you clear the stash after every > request. Does this mean you want to clear all the data? This > wouldn't make sense for reloading the same session for a single user, > and if its multiple users they would only be able to share data if the > requests were happening simultaneously. > > I *think* what you're asking for is the concept of persistent session > data that is available for a single user on every request they make. > This is pretty easy to setup on Catalyst: > > http://search.cpan.org/dist/Catalyst-Plugin-Session/lib/Catalyst/Plugin/Session/Tutorial.pod > > If you want to share data between processes and don't want to incur > hits to your DB, maybe you want Memcached. > > Garth > > 2009/3/25 Stefan Amshey : > > Hi all- > > > > I realize that this may not be the best list to ask this question on since > > it involves a specific Perl technology, but does anyone out there have some > > experience writing web-apps in Catalyst that could give me a basic point in > > the right direction regarding the following: > > > > I'm writing a web-app that needs to hold some large data structures, and > > instead of incurring the cost of loading those structures for each user > > session we'd like to store them in some context that is shared between > > sessions and possibly locked/unlocked/synchronized to avoid collisions. The > > stash is cleared after every request, and the session object is > > user-specific. Is there some concept of a "global session", or can we tie > > variables to the top-level Catalyst object, or something like that? Anyone > > solved this problem before without resorting to writing files? > > > > Thanks! > > /S > > > > - Stefan Amshey parallax99 at hotmail.com > > > > > > ________________________________ > > Express your personality in color! Preview and select themes for Hotmail?. > > See how. > > _______________________________________________ > > SanFrancisco-pm mailing list > > SanFrancisco-pm at pm.org > > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > > > > > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm _________________________________________________________________ Express your personality in color! Preview and select themes for Hotmail?. http://www.windowslive-hotmail.com/LearnMore/personalize.aspx?ocid=TXT_MSGTX_WL_HM_express_032009#colortheme -------------- next part -------------- An HTML attachment was scrubbed... URL: From moseley at hank.org Wed Mar 25 17:00:23 2009 From: moseley at hank.org (Bill Moseley) Date: Wed, 25 Mar 2009 17:00:23 -0700 Subject: [sf-perl] Catalyst question - sharing data between sessions In-Reply-To: References: Message-ID: <20090326000022.GA2664@hank.org> On Wed, Mar 25, 2009 at 10:34:25AM -0700, Stefan Amshey wrote: > > Actually, I was merely stating fact that the stash is cleared after > every request. I also understand the concept of a user session, but > what I'm looking for is a way of sharing data between users, each of > whom is involved in a separate session, but concurrently. I'm not > worried about clearing the data out, only sharing it so that we > don't have to re-load it for each session. Sounds like caching. You can use one of the cache plugins and then: $c->cache->set( $key, $value, $expires ); -- Bill Moseley. moseley at hank.org Sent from my iMutt From parallax99 at hotmail.com Thu Mar 26 12:21:59 2009 From: parallax99 at hotmail.com (Stefan Amshey) Date: Thu, 26 Mar 2009 12:21:59 -0700 Subject: [sf-perl] Catalyst question - sharing data between sessions In-Reply-To: <20090326000022.GA2664@hank.org> References: <20090326000022.GA2664@hank.org> Message-ID: That's what I was looking for - thanks! /S - Stefan Amshey parallax99 at hotmail.com > Date: Wed, 25 Mar 2009 17:00:23 -0700 > From: moseley at hank.org > To: sanfrancisco-pm at pm.org > Subject: Re: [sf-perl] Catalyst question - sharing data between sessions > > On Wed, Mar 25, 2009 at 10:34:25AM -0700, Stefan Amshey wrote: > > > > Actually, I was merely stating fact that the stash is cleared after > > every request. I also understand the concept of a user session, but > > what I'm looking for is a way of sharing data between users, each of > > whom is involved in a separate session, but concurrently. I'm not > > worried about clearing the data out, only sharing it so that we > > don't have to re-load it for each session. > > Sounds like caching. > > You can use one of the cache plugins and then: > > $c->cache->set( $key, $value, $expires ); > > > > > -- > Bill Moseley. > moseley at hank.org > Sent from my iMutt > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm _________________________________________________________________ Quick access to Windows Live and your favorite MSN content with Internet Explorer 8. http://ie8.msn.com/microsoft/internet-explorer-8/en-us/ie8.aspx?ocid=B037MSN55C0701A -------------- next part -------------- An HTML attachment was scrubbed... URL: From fred at redhotpenguin.com Thu Mar 26 12:33:01 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Thu, 26 Mar 2009 12:33:01 -0700 Subject: [sf-perl] Slides for "Evolving Tests" Message-ID: Big thanks to Jeff Thalhammer for the great talk on Wednesday evening. I've posted the slides: http://bit.ly/11TJxs Great to see a lot of enthusiasm at the meeting. I think we are a ways away from being able to take on a YAPC, but if we can keep the momentum going, I think a workshop of some sort would be possible to pull off. Most of the Perl workshops are back east or in Europe, so we could likely attract some attention with an SF Bay Area Perl Workshop. What would we need to make that happen? Volunteers. Regular meeting attendees. Running this group has taken more work than I anticipated. I never appreciated how much effort Quinn put into it until I took the reins :) Email me off list if you are interested in helping contribute to part of the group operations. Next meeting is April 28 (yeah I need to fix the meetup site, it shows May right now). Speaker will be David Lowe, an early SF.pm member. Talk is "Half a dozen horrible uses for pack and unpack". Hope to see you there! - Fred From doom at kzsu.stanford.edu Thu Mar 26 13:02:58 2009 From: doom at kzsu.stanford.edu (Joe Brenner) Date: Thu, 26 Mar 2009 13:02:58 -0700 Subject: [sf-perl] Slides for "Evolving Tests" In-Reply-To: References: Message-ID: <200903262003.n2QK2w0p044721@kzsu.stanford.edu> Fred Moyer wrote: > Big thanks to Jeff Thalhammer for the great talk on Wednesday evening. > I've posted the slides: > > http://bit.ly/11TJxs How about his winning entry in the idiom contest? From fred at redhotpenguin.com Thu Mar 26 13:07:16 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Thu, 26 Mar 2009 13:07:16 -0700 Subject: [sf-perl] [job] Fwd: Perl/Mysql developer position at Like.com In-Reply-To: <49CBDA56.3050104@gmail.com> References: <49CBDA56.3050104@gmail.com> Message-ID: ---------- Forwarded message ---------- From: Baris Sumengen Date: Thu, Mar 26, 2009 at 12:41 PM Subject: Perl/Mysql developer position at Like.com To: Fred Moyer Like.com (San Mateo) is looking for a versatile Perl/Mysql programmer for the Search Engine Marketing (SEM) team at Like.com to join our world-class team of Software Engineers, Research Engineers, and PhDs. The qualifications we are looking for are as follows: Qualifications ? Advanced knowledge of Perl. Ability to code complex tasks in a short time and in a readable way and adapt to requirement changes quickly. ? Good knowledge of databases, schema design and SQL (especially MySQL). ? Experience with the design of web based interfaces for potential internal demos and tools. ? Excellent analytical thinking abilities. ? BS or MS in Computer Science or similar major from a top tier school. ? Java, Javascript, Ajax knowledge and experience is a plus Please see the following pdf for more details of the job description and responsibilities: http://www.barissumengen.com/LikecomPerlPosition.pdf or visit our job listing at jobs.perl.org: http://jobs.perl.org/job/10384 If you think someone you know is more suitable for this position, please feel free to forward this email to them. Thanks, Baris Sumengen From jeff at imaginative-software.com Thu Mar 26 13:49:24 2009 From: jeff at imaginative-software.com (Jeffrey Thalhammer) Date: Thu, 26 Mar 2009 13:49:24 -0700 Subject: [sf-perl] Slides for "Evolving Tests" In-Reply-To: <200903262003.n2QK2w0p044721@kzsu.stanford.edu> References: <200903262003.n2QK2w0p044721@kzsu.stanford.edu> Message-ID: <665485C8-96A7-42C3-BA83-38914062C4A3@imaginative-software.com> On Mar 26, 2009, at 1:02 PM, Joe Brenner wrote: > How about his winning entry in the idiom contest? I think they were something like this: # Merge two hashes, allowing the latter hash to override values in the first. # I sometimes use this to combine a hash of subroutine arguments with default values: my %args = (%defaults, @_); # Map one list of values to another, but only include "true" values. # The trick is using the empty list () as opposed to undef: my @output = map { frobulate($_) || () } @input; Thanks for a great meeting everyone! -Jeff From swartz at pobox.com Fri Mar 27 09:46:11 2009 From: swartz at pobox.com (Jonathan Swartz) Date: Fri, 27 Mar 2009 09:46:11 -0700 Subject: [sf-perl] Fwd: UG News: $199 O'Reilly classes and a chance for some free passes In-Reply-To: References: Message-ID: I tried to use the 'baug' code and it gave me $199 OFF of the regular price of $600, which is still $401. Is it really supposed to be $199 per class, and whoever programmed the discount got it wrong? Or did you mean $199 off regular price? Thanks Jon On Mar 24, 2009, at 12:36 PM, Fred Moyer wrote: > This looks like a pretty good deal here. > > > ---------- Forwarded message ---------- > From: Marsee Henon > Date: Mon, Mar 23, 2009 at 5:02 PM > Subject: UG News: $199 O'Reilly classes and a chance for some free > passes > To: fred at redhotpenguin.com > > > Hi there > > I'm happy to announce a special discount and some free passes for > Bay Area user group members to our upcoming Master Classes in San > Francisco March 30. Please share with your group if you think they > might be interested. The details are below. > > Marsee > > > > New O'Reilly Training and Master Classes in San Francisco-- > $199 per class. And we're offering 10 free passes to classes taught > by Scott Berkun and Steve Souders on a first come, first serve basis. > Just use code -- ugfree -- when you register online. Sign up today. > > In this increasingly competitive job market, having top-of-the-line > technical and management skills is critical. The good news is that you > can improve your skills and learn some new techniques that will make > you > irreplaceable--without breaking the bank. > > The first three one-day Master Classes on JavaScript, Creating High > Performance Websites, and Project Management are scheduled for March > 30 > in San Francisco. > > Right now user group members pay only $199 per O'Reilly Master class-- > Scott Berkun on project management, Douglas Crockford on JavaScript > coding, and Steve Souders on improving website performance. > > Go to and use special offer code -- baug > -- to register at the special price of $199.00 per class. Everyone > in the > class receives $100 worth of O'Reilly books. > > > Here are the details: > > > O'Reilly Master Class: Douglas Crockford, March 30, 2009, San > Francisco, > CA JavaScript: The Good Parts Like most languages, JavaScript contains > both good and bad parts. The bad parts keep it from becoming an > elegant, > lightweight, and highly expressive language. In this class, you'll > discover good JavaScript you can use to create truly extensible code. > The author of "JavaScript: The Good Parts," (O'Reilly Media), > Crockford > is a regular speaker at conferences on advanced JavaScript topics. He > serves on the JavaScript 2.0 committee at ECMA. Everyone in the class > receives $100 worth of O'Reilly books. > > 1-day workshop, 9am-5pm, Mar. 30 > Mission Bay Conference Center > University of California, San Francisco (UCSF) > 1675 Owens St. San Francisco, CA 94143 > > For more information and to register: > Call: (707) 827-7000 / (800) 998-9938 > http://training.oreilly.com/javascript > > ******************************************* > > O'Reilly Master Class: Scott Berkun, March 30, 2009, San Francisco, CA > Leading and Managing Breakthrough Projects Scott Berkun, author of the > bestselling "The Myths of Innovation" (O'Reilly Media) uses valuable > insights from the past as well as challenging in-class exercises to > help > you develop the leadership skills and knowledge you need to manage > innovative people and projects. Everyone in the class receives $100 > worth of O'Reilly books. > > > 1-day workshop, 10am-5pm, Mar. 30 > Mission Bay Conference Center > University of California, San Francisco (UCSF) > 1675 Owens St. San Francisco, CA 94143 > > For more information and to register: > Call: (707) 827-7000 / (800) 998-9938 > http://training.oreilly.com/projectmanagement > > ******************************************* > > O'Reilly Master Class: Steve Souders, March 30, 2009, San Francisco, > CA > Creating High Performance Web Sites While working at Google and > Yahoo!, > Steve Souders developed rules that cut up to 25% off response time for > page requests. In this class, Souders, the author of the bestselling > O'Reilly book, "High Performance Web Sites" (O'Reilly Media), explains > those rules and shows you how you can greatly improve the > performance of > your existing web pages. Everyone in the class receives $100 worth of > O'Reilly books. > > 1-day workshop, 9am-5pm, Mar. 30 > Mission Bay Conference Center > University of California, San Francisco (UCSF) > 1675 Owens St. San Francisco, CA 94143 > > For more information and to register: > Call: (707) 827-7000 / (800) 998-9938 > http://training.oreilly.com/highperformancesites > > > ================================================================ > O'Reilly > 1005 Gravenstein Highway North > Sebastopol, CA 95472 > 800-998-9938 > http://ug.oreilly.com/ > Follow us on Twitter at http://twitter.com/OReillyMedia > > You are receiving this email because you are a User Group > contact with O'Reilly Media. If you would like to stop > receiving these newsletters or announcements from O'Reilly, > send an email to marsee at oreilly.com > ================================================================ > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm From fred at redhotpenguin.com Sun Mar 29 10:22:11 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Sun, 29 Mar 2009 10:22:11 -0700 Subject: [sf-perl] Fwd: UG News: $199 O'Reilly classes and a chance for some free passes In-Reply-To: References: Message-ID: I got word from Marsee that the code is working now, $199 for a full day class. The performance talk is by Steve Souders, creator of YSlow. http://training.oreilly.com/highperformancesites/ On Fri, Mar 27, 2009 at 9:46 AM, Jonathan Swartz wrote: > I tried to use the 'baug' code and it gave me $199 OFF of the regular price > of $600, which is still $401. > > Is it really supposed to be $199 per class, and whoever programmed the > discount got it wrong? Or did you mean $199 off regular price? > > Thanks > Jon > > On Mar 24, 2009, at 12:36 PM, Fred Moyer wrote: > >> This looks like a pretty good deal here. >> >> >> ---------- Forwarded message ---------- >> From: Marsee Henon >> Date: Mon, Mar 23, 2009 at 5:02 PM >> Subject: UG News: $199 O'Reilly classes and a chance for some free passes >> To: fred at redhotpenguin.com >> >> >> Hi there >> >> I'm happy to announce a special discount and some free passes for >> Bay Area user group members to our upcoming Master Classes in San >> Francisco March 30. Please share with your group if you think they >> might be interested. The details are below. >> >> Marsee >> >> >> >> New O'Reilly Training and Master Classes in San Francisco-- >> $199 per class. And we're offering 10 free passes to classes taught >> by Scott Berkun and Steve Souders on a first come, first serve basis. >> Just use code -- ugfree -- when you register online. Sign up today. >> >> In this increasingly competitive job market, having top-of-the-line >> technical and management skills is critical. The good news is that you >> can improve your skills and learn some new techniques that will make you >> irreplaceable--without breaking the bank. >> >> The first three one-day Master Classes on JavaScript, Creating High >> Performance Websites, and Project Management are scheduled for March 30 >> in San Francisco. >> >> Right now user group members pay only $199 per O'Reilly Master class-- >> Scott Berkun on project management, Douglas Crockford on JavaScript >> coding, and Steve Souders on improving website performance. >> >> Go to and use special offer code -- baug >> -- to register at the special price of $199.00 per class. Everyone in the >> class receives $100 worth of O'Reilly books. >> >> >> Here are the details: >> >> >> O'Reilly Master Class: Douglas Crockford, March 30, 2009, San Francisco, >> CA JavaScript: The Good Parts Like most languages, JavaScript contains >> both good and bad parts. The bad parts keep it from becoming an elegant, >> lightweight, and highly expressive language. In this class, you'll >> discover good JavaScript you can use to create truly extensible code. >> The author of "JavaScript: The Good Parts," (O'Reilly Media), Crockford >> is a regular speaker at conferences on advanced JavaScript topics. He >> serves on the JavaScript 2.0 committee at ECMA. Everyone in the class >> receives $100 worth of O'Reilly books. >> >> 1-day workshop, 9am-5pm, Mar. 30 >> Mission Bay Conference Center >> University of California, San Francisco (UCSF) >> 1675 Owens St. San Francisco, CA 94143 >> >> For more information and to register: >> Call: (707) 827-7000 / (800) 998-9938 >> http://training.oreilly.com/javascript >> >> ******************************************* >> >> O'Reilly Master Class: Scott Berkun, March 30, 2009, San Francisco, CA >> Leading and Managing Breakthrough Projects Scott Berkun, author of the >> bestselling "The Myths of Innovation" (O'Reilly Media) uses valuable >> insights from the past as well as challenging in-class exercises to help >> you develop the leadership skills and knowledge you need to manage >> innovative people and projects. Everyone in the class receives $100 >> worth of O'Reilly books. >> >> >> 1-day workshop, 10am-5pm, Mar. 30 >> Mission Bay Conference Center >> University of California, San Francisco (UCSF) >> 1675 Owens St. San Francisco, CA 94143 >> >> For more information and to register: >> Call: (707) 827-7000 / (800) 998-9938 >> http://training.oreilly.com/projectmanagement >> >> ******************************************* >> >> O'Reilly Master Class: Steve Souders, March 30, 2009, San Francisco, CA >> Creating High Performance Web Sites While working at Google and Yahoo!, >> Steve Souders developed rules that cut up to 25% off response time for >> page requests. In this class, Souders, the author of the bestselling >> O'Reilly book, "High Performance Web Sites" (O'Reilly Media), explains >> those rules and shows you how you can greatly improve the performance of >> your existing web pages. Everyone in the class receives $100 worth of >> O'Reilly books. >> >> 1-day workshop, 9am-5pm, Mar. 30 >> Mission Bay Conference Center >> University of California, San Francisco (UCSF) >> 1675 Owens St. San Francisco, CA 94143 >> >> For more information and to register: >> Call: (707) 827-7000 / (800) 998-9938 >> http://training.oreilly.com/highperformancesites >> >> >> ================================================================ >> O'Reilly >> 1005 Gravenstein Highway North >> Sebastopol, CA ? 95472 >> 800-998-9938 >> http://ug.oreilly.com/ >> Follow us on Twitter at http://twitter.com/OReillyMedia >> >> You are receiving this email because you are a User Group >> contact with O'Reilly Media. If you would like to stop >> receiving these newsletters or announcements from O'Reilly, >> send an email to marsee at oreilly.com >> ================================================================ >> _______________________________________________ >> SanFrancisco-pm mailing list >> SanFrancisco-pm at pm.org >> http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > From josh at agliodbs.com Sun Mar 29 14:23:29 2009 From: josh at agliodbs.com (Josh Berkus) Date: Sun, 29 Mar 2009 14:23:29 -0700 Subject: [sf-perl] Thinking about psuedo-randomness Message-ID: <49CFE6D1.70105@agliodbs.com> Fred, I've been thinking a little about the pseudo-randomness issue some, and I think there *is* a generalizable case. However, can you send me your slides/code so that I can build on what you have rather than starting from scratch? --Josh Berkus From fred at redhotpenguin.com Sun Mar 29 14:44:02 2009 From: fred at redhotpenguin.com (Fred Moyer) Date: Sun, 29 Mar 2009 14:44:02 -0700 Subject: [sf-perl] Thinking about psuedo-randomness In-Reply-To: <49CFE6D1.70105@agliodbs.com> References: <49CFE6D1.70105@agliodbs.com> Message-ID: Joe Brenner gave the randomness lightning talk, Joe? On Sun, Mar 29, 2009 at 2:23 PM, Josh Berkus wrote: > Fred, > > I've been thinking a little about the pseudo-randomness issue some, and I > think there *is* a generalizable case. ?However, can you send me your > slides/code so that I can build on what you have rather than starting from > scratch? > > --Josh Berkus > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > From doom at kzsu.stanford.edu Sun Mar 29 15:46:41 2009 From: doom at kzsu.stanford.edu (Joe Brenner) Date: Sun, 29 Mar 2009 15:46:41 -0700 Subject: [sf-perl] Thinking about psuedo-randomness In-Reply-To: <49CFE6D1.70105@agliodbs.com> References: <49CFE6D1.70105@agliodbs.com> Message-ID: <200903292246.n2TMkfLR009518@kzsu.stanford.edu> Josh Berkus wrote: > I've been thinking a little about the pseudo-randomness issue some, and > I think there *is* a generalizable case. However, can you send me your > slides/code so that I can build on what you have rather than starting > from scratch? Here's the slides: http://obsidianrook.com/devnotes/talks/esthetic_randomness/ From merlyn at stonehenge.com Sun Mar 29 19:03:26 2009 From: merlyn at stonehenge.com (Randal L. Schwartz) Date: Sun, 29 Mar 2009 19:03:26 -0700 Subject: [sf-perl] Thinking about psuedo-randomness In-Reply-To: <200903292246.n2TMkfLR009518@kzsu.stanford.edu> (Joe Brenner's message of "Sun, 29 Mar 2009 15:46:41 -0700") References: <49CFE6D1.70105@agliodbs.com> <200903292246.n2TMkfLR009518@kzsu.stanford.edu> Message-ID: <86iqlrzs0h.fsf@blue.stonehenge.com> >>>>> "Joe" == Joe Brenner writes: Joe> Josh Berkus wrote: >> I've been thinking a little about the pseudo-randomness issue some, and >> I think there *is* a generalizable case. However, can you send me your >> slides/code so that I can build on what you have rather than starting >> from scratch? Joe> Here's the slides: Joe> http://obsidianrook.com/devnotes/talks/esthetic_randomness/ the code in $tweak = $downers/$uppers; $uppity = int( rand(1 + $tweak) ); has a biased bias. I think what you wanted is: $uppity = rand($uppers + $downers) > $uppers; -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc. See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion From doom at kzsu.stanford.edu Mon Mar 30 01:56:55 2009 From: doom at kzsu.stanford.edu (Joe Brenner) Date: Mon, 30 Mar 2009 01:56:55 -0700 Subject: [sf-perl] Thinking about psuedo-randomness In-Reply-To: <86iqlrzs0h.fsf@blue.stonehenge.com> References: <49CFE6D1.70105@agliodbs.com> <200903292246.n2TMkfLR009518@kzsu.stanford.edu> <86iqlrzs0h.fsf@blue.stonehenge.com> Message-ID: <200903300857.n2U8utax021056@kzsu.stanford.edu> Randal L. Schwartz wrote: > >>>>> "Joe" == Joe Brenner writes: > > Joe> Josh Berkus wrote: > > >> I've been thinking a little about the pseudo-randomness issue some, and > >> I think there *is* a generalizable case. However, can you send me your > >> slides/code so that I can build on what you have rather than starting > >> from scratch? > > Joe> Here's the slides: > Joe> http://obsidianrook.com/devnotes/talks/esthetic_randomness/ > > the code in > $tweak = $downers/$uppers; > $uppity = int( rand(1 + $tweak) ); > > has a biased bias. I think what you wanted is: > > $uppity = rand($uppers + $downers) > $uppers; That's a good one (no need to worry about division by zero), but in practice there's little difference in the two approaches. Both have a slight bias toward lower case (largely because of the way I initialize the first character): scramble_case: up: 257970 down: 267406 % bias: -1.796 scramble_case_exp: up: 258261 down: 267115 % bias: -1.685 That's measured like so: #!/usr/bin/perl # running_scramble_case doom at kzsu.stanford.edu # 29 Mar 2009 use warnings; use strict; $|=1; use Data::Dumper; our $VERSION = 0.01; use Getopt::Std; my %opt = (); getopts('d', \%opt); my $DEBUG = $opt{d} || 0; use Text::Capitalize qw( scramble_case scramble_case_exp ); my $file = shift || '/home/doom/End/Dust/Texts/RafaelSabatini/1915-the_sea_hawk-seahk10.txt'; print_stats_for( 'scramble_case', $file ); print_stats_for( 'scramble_case_exp', $file ); sub print_stats_for { my $routine = shift; my $file = shift; open my $fh, '<', $file or die "$!"; print "$routine:\n"; my ($total_up, $total_down, $bias); while( my $line = <$fh> ) { my $transformed; { no strict 'refs'; $transformed = $routine->( $line ); } print "$transformed\n" if $DEBUG; my $copy_1 = $transformed; my $copy_2 = $transformed; my $uppers = ( $copy_1 =~ s{ [[:upper:]] }{}xmsg ); my $lowers = ( $copy_2 =~ s{ [[:lower:]] }{}xmsg ); $total_up += $uppers; $total_down += $lowers; } $bias = ( ($total_up - $total_down) / ($total_up + $total_down) ) * 100; printf "up: %4d down: %4d %% bias: %2.3f\n", $total_up, $total_down, $bias; } From not.com at gmail.com Mon Mar 30 20:27:16 2009 From: not.com at gmail.com (yary) Date: Mon, 30 Mar 2009 20:27:16 -0700 Subject: [sf-perl] Thinking about psuedo-randomness In-Reply-To: <200903292246.n2TMkfLR009518@kzsu.stanford.edu> References: <49CFE6D1.70105@agliodbs.com> <200903292246.n2TMkfLR009518@kzsu.stanford.edu> Message-ID: <75cbfa570903302027j30373a01q1d676f2632f67e86@mail.gmail.com> Thanks for putting the slides on-line, lots of interesting thoughts in there. Since Randall chimed in with his bias of bias observation, I'll chime in with what I thought when reading the scramble_case code- @chars = split /(?=.)/, $string; . doesn't match newlines (unless you tell it to), and it doesn't matter, since nothing is lost anyways. "I thought the canonical way of splitting a string into its component chars was 'split //'" was my next thought. Then I thought, "Only alphas have case, non-alphas don't have to be separated out"- so @chars = split /(?<=[[:alpha:]])/, $string; could conceivably save a few cycles. maybe. It also preserves the first-letter-case bias when the string begins with non-alpha chars. and as you mentioned, it's how you wrote perl a decade ago. From doom at kzsu.stanford.edu Tue Mar 31 13:38:38 2009 From: doom at kzsu.stanford.edu (Joe Brenner) Date: Tue, 31 Mar 2009 13:38:38 -0700 Subject: [sf-perl] Thinking about psuedo-randomness In-Reply-To: <75cbfa570903302027j30373a01q1d676f2632f67e86@mail.gmail.com> References: <49CFE6D1.70105@agliodbs.com> <200903292246.n2TMkfLR009518@kzsu.stanford.edu> <75cbfa570903302027j30373a01q1d676f2632f67e86@mail.gmail.com> Message-ID: <200903312038.n2VKccON061672@kzsu.stanford.edu> yary wrote: > Thanks for putting the slides on-line, lots of interesting thoughts in there. > > Since Randall chimed in with his bias of bias observation, I'll chime > in with what I thought when reading the scramble_case code- > > @chars = split /(?=.)/, $string; > > . doesn't match newlines (unless you tell it to), and it doesn't > matter, since nothing is lost anyways. > > "I thought the canonical way of splitting a string into its component > chars was 'split //'" was my next thought. Yes, precisely. I have no idea why I used that pattern in there ten years ago. I verified that it's functionally identical to "split //" (on single-line strings, anyway) but I left it that way anyway -- if I wasn't doing it as a lightning talk I would've invited comments on that sort of thing. > Then I thought, "Only alphas have case, non-alphas don't have to be > separated out"- so > > @chars = split /(?<=[[:alpha:]])/, $string; > > could conceivably save a few cycles. maybe. It also preserves the > first-letter-case bias when the string begins with non-alpha chars. Interesting... it's a slightly odd split, that works like this: 't', 'h', 'e', ' l', 'a', 'w', 's', ' f', 'o', 'r', ' y', 'o', My first thought that there would be a problem with leaving the whitespace at the start of the string, but of course "uc" and "lc" act on the entire string, so there's no problem there. Of course, the efficiency of this routine doesn't really matter that much (it only takes about three seconds for me to process an entire Rafael Sabatini novel), but what the hell, let's see if the more unusual pattern match gains us something with fewer cycles of uc/lc operations... Not bad, looks like almost a 15% speedup: Benchmark: timing 10 iterations of alpha_split, silly_split, standard_split... alpha_split: 13 wallclock secs (12.84 usr + 0.01 sys = 12.85 CPU) @ 0.78/s (n=10) silly_split: 16 wallclock secs (15.44 usr + 0.01 sys = 15.45 CPU) @ 0.65/s (n=10) standard_split: 15 wallclock secs (15.04 usr + 0.00 sys = 15.04 CPU) @ 0.66/s (n=10) sub silly { open my $fh, '<', $file or die "$!"; while( my $line = <$fh> ) { my $ret = scramble_case_silly( $line ); # @chars = split /(?=.)/, $string; } } sub standard { # as usual open my $fh, '<', $file or die "$!"; while( my $line = <$fh> ) { my $ret = scramble_case( $line ); # @chars = split //, $string; } } sub alpha { open my $fh, '<', $file or die "$!"; while( my $line = <$fh> ) { my $ret = scramble_case_alpha( $line ); # @chars = split /(?<=[[:alpha:]])/, $string; } } From josh at agliodbs.com Tue Mar 31 15:37:36 2009 From: josh at agliodbs.com (Josh Berkus) Date: Tue, 31 Mar 2009 15:37:36 -0700 Subject: [sf-perl] Thinking about psuedo-randomness In-Reply-To: <200903292246.n2TMkfLR009518@kzsu.stanford.edu> References: <49CFE6D1.70105@agliodbs.com> <200903292246.n2TMkfLR009518@kzsu.stanford.edu> Message-ID: <49D29B30.7060504@agliodbs.com> On 3/29/09 3:46 PM, Joe Brenner wrote: > Josh Berkus wrote: > >> I've been thinking a little about the pseudo-randomness issue some, and >> I think there *is* a generalizable case. However, can you send me your >> slides/code so that I can build on what you have rather than starting >> from scratch? Ok, so I'm thinking about the more complex case than capitalization. That is, the case which would cover: song tracks, albums & artists pictures & tags people & departments etc. All of these can be broken down into: 1) entity 2) group memberships 3) serial placement in the first group (i.e. order) 4) outliers (thanks Joe for this concept) (4) is a difficult concept, because while 1-3 are permanent data, 4 only applies to the specific randomizer run (that is, this particular playlist, picture page or committee). So since it's actually a property of the run, we'll ignore it for now. For the rest of the data, all of the above cases can be represented as: Songs: ("Darkness") ("Up","Peter Gabriel","Rock") (1) ("Growing Up") ("Up","Peter Gabriel","Rock") (2) ("Sky Blue") ("Up","Peter Gabriel","Rock") (3) ("Have a Cigar")("Wish You Were Here","Pink Floyd","Rock") (3) Pictures: ("GG Bridge Below") ("GG Bridge","Bridges","Architecture","SF") (1) ("GG Bridge East Side") ("GG Bridge","Bridges","Architecture","SF") (2) People: ("Sam Joe") ("HR","Management","Atlanta","10-20yrs") (N/A) ("Mike Mike") ("HR","Staff","Atlanta","1-3yrs") (N/A) ("Kelly Susan") ("IT","Staff","Livermore","3-5yrs") (N/A) So, there's a couple interesting things with this reduction. One is that in some cases group membership is heirarchical, but I don't think that matters for picking "prandom" entries. Second is that there are some data sets for which serial order doesn't matter or doesn't exist. I think Joe's try/pick method is sound. I like the idea of regarding the entities as a stream, and testing each new entity against the prior entities. get # of tries items randomly foreach: if outlier if first item drop from list else if reached max # outliers drop from list else score is (max # of groups / 2) else compare against previous # selections each "group" in common = +1 if 1st group in common +2 for being adjacent serially add item with lowest score to the list next item I think that algorithm works for the stream concept. The other possibility is the "whole list" concept, where you have a static small list (like 6 or 10 items) and want them to be prandomly selected. That would go like this: determine max number of groups possible (maxgroups) decide mingroups required and max_outliers sort items in random order if the first item is an outlier, shift it off if more than max_outliers in first list_size, shift outliers off if two items are serially in sequence, shift the second one sum number of groups represented by first list_size items while numgroups < mingroups calculate the item with the most groups in common with other items shift it off shift off serially ordered items and extra outliers recalculate numgroups The problem with this second method is that it's possible for it to never complete; presumably you'd lower mingroups and start over. Just my thoughts so far. --Josh Berkus