cgrau's Journal cgrau's use Perl Journal en-us use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners. 2012-01-25T02:41:07+00:00 pudge Technology hourly 1 1970-01-01T00:00+00:00 cgrau's Journal San Diego Perl Mongers August Meeting and Presentation <p>The <a href="">San Diego Perl Mongers</a> is having their normal meeting of the month this week on Thursday, August 20, from 7:00 pm until 9:00 pm, but it's in a not-so-normal location. <a href=""></a> will be hosting us in <b>meeting room B</b> of the <b>Courtyard by Marriott</b> in Sorrento Valley this month, so we will get to hear about some technology and projects they are working on. Come on by to learn something new, chat about something old, and have some fun with fellow Mongers. All the info is on the website, and don't be afraid to ask on our mailing list if there are any questions.</p><p>Also, you don't need to RSVP, but it would be helpful to get an idea of how many people plan to be there. Drop us a line in the comments or on our mailing list if you think you might make it.</p><p>We look forward to seeing you all there!</p><p> <a href=""></a> </p> cgrau 2009-08-18T21:51:49+00:00 groups Export::Lexical <p>I'm currently on a brief leave from <tt>$work</tt> after the birth of my daughter last Tuesday. Since she hasn't required that much attention, I wanted to take advantage of the time off and be productive. I'm always talking about how I want to write more code to release, so I've finally put my money where my mouth is. I released <a href="">Export::Lexical</a> last night.</p><p>It came from an aside made during a Perl 5.10 class taught by Damian Conway last week. He was demonstrating the lexically scoped module feature (see <a href="">perlpragma</a>) with a simple debugging module with lexical scope. When asked if it was available on the CPAN, he said it wasn't, because he would rather see a module available that generalized the technique. When he suggested that someone in the audience might be the one to write it, I jumped.</p><p>It's a fairly simple and straight-forward module, providing a single subroutine attribute:<nobr> <wbr></nobr><tt>:ExportLexical</tt>. When marked with this attribute, the subroutine is then exported only to the lexical scope in which the module is used. The <tt>no</tt> keyword also works, in the same way as <tt>no strict</tt> and <tt>no warnings</tt>. Additionally, individual subroutines can be specified in the same way as <tt>use strict 'refs'</tt> or <tt>no warnings 'redefine'</tt> are used.</p><p>The module makes all of this easy, without the need to fully understand <tt>perlpragma</tt> or the need to code up all the boilerplate infrastructure. We like easy, right?</p><blockquote><div><p> <tt>package Foo;<br> <br>use strict;<br>use warnings;<br>use Export::Lexical;<br> <br>sub foo<nobr> <wbr></nobr>:ExportLexical {<br>&nbsp; &nbsp; # do something<br>}<br> <br>sub bar<nobr> <wbr></nobr>:ExportLexical {<br>&nbsp; &nbsp; # do something else<br>}<br> <br>1;</tt></p></div> </blockquote><p>No, really. That's it. It's rather simple to use the resulting module as well.</p><blockquote><div><p> <tt>#!perl<br> <br>use strict;<br>use warnings;<br> <br>{<br>&nbsp; &nbsp; use Foo;<br> <br>&nbsp; &nbsp; foo();&nbsp; &nbsp; # calls foo()<br>&nbsp; &nbsp; bar();&nbsp; &nbsp; # calls bar()<br> <br>&nbsp; &nbsp; {<br>&nbsp; &nbsp; &nbsp; &nbsp; no Foo 'bar';<br> <br>&nbsp; &nbsp; &nbsp; &nbsp; foo();&nbsp; &nbsp; # calls foo()<br>&nbsp; &nbsp; &nbsp; &nbsp; bar();&nbsp; &nbsp; # bar() is a no-op<br>&nbsp; &nbsp; }<br>}</tt></p></div> </blockquote><p>I'm pretty excited that I've finally taken the time to contribute. Hopefully this will get me on a roll and will be the first of many. I actually have several I've developed at <tt>$work</tt> to simplify programs written to work with <a href="">LSF</a>, but I'm still waiting for legal to allow me to publish them under an Open Source license.</p> cgrau 2008-10-09T18:01:29+00:00 journal Damian Conway is coming... <p>On Tue, Sep 23, 2008 at 11:36:53PM -0700, Bob Kleemann wrote:</p><blockquote><div><p>Ladies and Gentlemen, Techies and Programmers,</p><p>The San Diego Perl Mongers are happy to announce, for one night only, the one and only Damian Conway! He will be appearing Monday night, September 29 at the Qualcomm Building Q Auditorium. Please arrive by 7 PM to hear him muse on a myriad of topics, including, but not limited to (in his own words):</p><blockquote><div><p> modern archaeological techniques, bidirectional cross- dressing, Ancient Greeks hackers, improbable romances, the real Club Med, why programmers shouldn't frequent casinos, the language of moisture vaporators, C++ mysticism, conversational Latin, state machines on steroids, feeding the dog the old-fashioned way, the shocking truth about anime, programming without variables or subroutines, the Four Voids of the Apocalypse, Microsoft's new advertising campaign, what the Romans used instead of braces, drunken stonemasons, the ancient probabilistic wisdom of bodkins, how to kill a language with a single byte, and the price of fish.</p></div> </blockquote><p>Note: Topics are subject to change without notice, reason, or warning, so please pay attention!</p><p>So please come on by and learn something new. Bring some friends if you like, and have fun in the process.</p><p>Please let me know if there are any questions.</p></div> </blockquote><p>Directions can be found on the San Diego Perl Mongers <a href="">web site</a>.</p> cgrau 2008-09-24T20:54:49+00:00 journal San Diego Perl Mongers August Meeting <p>The San Diego fork of the Perl Mongers have a meeting scheduled for Thursday, 21 August 2008 at 7:00pm. This is the first meeting since I attended OSCON, so I expect to entertain plenty of questions on that topic. Including, for those not lucky (insane?) enough to attend as many Damian Conway talks as I, the meaning of <code>readline!open!((*{$!},$/)=\$file)</code> and why it should (shouldn't?) be used it that next big project.</p><p>As with most of our meetings, this will be an informal gathering at a trendy fast casual restaurant. We're a friendly group (really) and all are welcome, regardless of Perl experience.</p><p>Time and location, as always, is available at our web site, <a href=""></a>.</p><p> <b>Update:</b> Of course, the meeting is on the 21st, not the 12th as I had originally written.</p> cgrau 2008-08-15T15:47:50+00:00 journal I'm Hiring Perl Developers <p>Back when I was looking for a new job, it drove me nuts how difficult it was to find a company hiring pure Perl developers. I ended up in hybrid system administration position where I spend as much time as possible writing Perl to do my job for me. Now that there is more work than I can handle on my own, I'm driven nuts by the dearth of Perl programmers in the marketplace, at least in San Diego.</p><p>Ideally, I'd like to hire two experienced Perl developers with system administration experience in a Linux or Solaris environment. Actually, I'd really like to see one of those developers be at a junior-levelmy contribution to the mentoring and development of an up and coming Perl hacker.</p><p>Anyone interested can <a href=";reqid=1797892&amp;divId=G&amp;title=SoftwareDeveloper&amp;sort=0&amp;selDivision=0&amp;selJobAreas=0&amp;selUSLocations=-1&amp;selNUSLocations=-1&amp;txtFullTextSearch=&amp;selDatePosted=all&amp;txtReqID=G1797892&amp;chkIntern=&amp;chkNewGrad=&amp;chkExpProf=">apply directly</a> on my company's web site.</p> cgrau 2008-08-06T16:57:26+00:00 journal San Diego Perl Mongers November Meeting <p>The <a href="">San Diego Perl Mongers</a> group will be having their regularly scheduled meeting at 7:00pm on Monday, November 12, 2007. Not so regular, however, is what we'll be doing. We have a presentation this month! David Moore will be joining us to talk about the different Perl/C interfaces, SWIG and XS. It should be interesting, so come on out and join us.</p><p>We'll be meeting at in Qualcomm's building Q auditorium.</p><p>6455 Lusk Blvd.<br> San Diego, CA 92121</p><p> <a href=";hl=en&amp;geocode=&amp;q=6455+Lusk+Blvd,+San+Diego,+CA+92121+(QUALCOMM,+Building+Q)&amp;sll=33.107626,-117.217931&amp;sspn=0.011306,0.013626&amp;ie=UTF8&amp;t=h&amp;z=16&amp;om=1">Google Map</a> (This is not quite right. The building is on the west side of Pacific Center Blvd. It's the building with the colorful roof.)</p> cgrau 2007-11-08T02:05:32+00:00 journal Hosting a Night with Damian Conway <p>Thursday, 4 October 2007, 7:00pm</p><p>Damian Conway is coming to town, and the San Diego Perl Mongers are pleased to be hosting him for an evening seminar. Damian will be presenting something we're all sure to fine extremely interesting.</p><blockquote><div><p> <a href="">Sex <i>and</i> Violence: Social and Technical Lessons from the Perl 6 Project</a></p></div> </blockquote><p>For details and directions, see the <a href=""> web site</a>.</p> cgrau 2007-10-02T18:50:36+00:00 journal Peeing on My Blog, Technorati Style <p>As mentioned by <a href="">Schwern</a>, Technorati requires you to claim your blog with a special post. I've already done so at my <a href="">personal, not-always-Perl-y blog</a>.</p><p> <a href="">Now I'm doing it here.</a> Don&#8217;t mind the smell, I&#8217;m sure it&#8217;ll clear up soon.</p> cgrau 2007-08-01T17:55:25+00:00 journal That's new()s to Me <p>I was recently tasked to work with a development team in another department at work. During a code review to get me up to speed on their project, I asked why all of their classes had an identical <code>new()</code> subroutine, even though many of them inherited from the same parent class.</p><p>The lead developer told me, "You can't inherit new in Perl."</p><p>It hasn't been a very fun project to work on.</p> cgrau 2007-07-31T03:06:30+00:00 journal OSCON 2007 <p>I'm in Portland, Oregon, for OSCON 2007. I'm going to try to write about it as much as possible and post as many pictures as possible for all of my fellow Perl Mongers who couldn't make it. For any of my fellow Perl Mongers who are here in Portland, drop me a line. I'd love to have a Perl BOF or even grab a pint.</p> cgrau 2007-07-23T06:48:58+00:00 journal July Meeting <p>Come join the myriad members of the San Diego Perl Mongers as they meet once again to discuss, debate, deconstruct, and sometimes even deviate from all things Perl.</p><p>Monday, 09 July 2007, 19:00 - 21:00<br> Panera Bread, Mira Mesa, Calif. (with free wi-fi!)</p><p>We never have an agenda, but we always have a good time.</p><p> <a href=""></a> </p> cgrau 2007-07-03T18:37:30+00:00 journal June Meeting <p>It's that time of the month again. Time for the regular gathering of the slightly irregular Perl Mongers in San Diego.</p><p>People will begin descending on Panera Bread in Mira Mesa on Monday, 11 June 2007 at 7:00pm (and generally stay until they've had enough, or 9:00pm, whichever comes first). We've had a great turnout all year, so feel free to join us. You're guaranteed to have a great time. And, if you don't, you'll receive a full refund of your membership dues[0]. Directions and such can be found on our web site, <a href=""></a>.</p><p>Sadly, I won't be able to attend this month's meeting. My day job is sending me to Toronto for training. I'll be in our channel on Freenode, attending the meeting remotely. Hopefully a few of my camel compatriots will keep me up to date on all the happenings.</p><p>[0] Membership dues for the San Diego chapter of the Perl Mongers is $0.00 per annum.</p> cgrau 2007-06-07T00:05:44+00:00 journal May Meeting <p>I've been remiss in announcing meetings for the San Diego chapter of the Perl Mongers. The last meeting I announced was February. Now I'm finally announcing the meeting for May <em>on the same day as the meeting</em>. Between this and not putting together a new web site in the four months I've had it under my control, I am a terrible example of a Perl Monger cheerleader.</p><p>That said, is having its general meeting tonight, Monday, May 14, 2007 at 7:00pm. As always, we meet at Panera Bread (free wi-fi!) in Mira Mesa. Directions and such can be found on our web site, <a href=""></a>.</p><p>Tonight, one of our members is celebrating their birthday. What a fantastic way to celebrate the anniversary of one's birth. And I should know. I spent my last birthday at our January gathering.</p> cgrau 2007-05-14T18:14:07+00:00 journal February Meeting <p>On Monday, 12 February 2007, the San Diego Perl Mongers will be having our monthly meeting at Panera Bread in Mira Mesa. Feel welcome to drop by to chat about all things Perl, or anything else that sounds interesting.</p><p>Last month we were fortunate enough to have Randal Schwartz drop by for a chat. This month, I've been made to promise to bring my good friend <a href="">Christel</a> of Irssi, Gentoo, ReactOS, Freenode, and FOSSCON fame. It promises to be a good time.</p><p>For more about the San Diego Perl Mongers as well as where and when to find us, check out our web home at <a href=""></a>.</p> cgrau 2007-02-10T15:44:07+00:00 groups Events Calendar <p>At our last meeting on 8 Jan, the <a href=""></a> webmaster torch was passed to me. I have big plans for the web site, focusing on community involvement.</p><p>My first order of business was to follow the lead of <a href="">brian d foy</a> and <i>The Perl Review</i>. There now exists a Google <a href="">calendar</a> for Why Google? Well, I think brian points out the reasons quite well in his journal entry.</p><p>We only have one event posted so far, our monthly meeting. Hopefully it won't be long until we have special events and socials, too.</p> cgrau 2007-01-16T16:13:44+00:00 journal Damian Conway in San Diego <p>The company I work for just had Damian Conway come in to present three days of training. In addition, he made a special appearance at our local <a href="">San Diego Perl Mongers</a>.</p><p>So, with a complete and utter disregard for my mental health, I attended Monday night's Perl Mongers presentation of <i>Sufficiently Advanced Technology</i>. That was fun. Shame my wife couldn't make it; she wanted to meet this crazy Aussie I kept talking about after OSCON. Anyway, after a day to recover, I made it to Wednesday's lecture on <i>Perl Best Practices</i>, Thursday's on <i>More Perl Best Practices</i> and <i>Advanced Regular Expressions</i>, and finally Friday's on <i>Advanced Interface Design</i> (otherwise known, to anyone who attended OSCON 2006, as the <i>7 Principles of Better API Design</i>). I thought I was losing sanity before, but now I'm quite positive. I'd like to share an important safety tip: thinking in Perl is unhealthy. Sometimes I feel like that boy from <i>The Sixth Sense</i>: "I see Perl code."</p><p>I didn't get a chance to meet Dr. Conway at OSCON, so this was a nice opportunity for me; both to meet him and to see longer versions of his courses. He's very personable and extremely knowledgable. Even being quite a good programmer myself (he said modestly... hey, even Damian said I was, though he may have just been saying that... either way, I can die happy), I still learned quite a bit. In fact, I think these courses are great even for people who do know the material inside and out. It's much easier to pick up on the <i>really</i> scary stuff that Damian throws into his ad-hoc demonstrations. I hope we can get him back next year. I'd love to see his course on Vim.</p><p>Oh, and Damian even picked up on the fact that I tend to be a workaholic, asking me if I ever went home (my wife often wonders the same thing). Hey, so what if I was the first person there, sitting right in front? I'm a geek, I can admit that. I hear there are <a href="">meetings</a> I can attend. "Hi. My name is Chris. I've been using Perl for 10 years."</p> cgrau 2006-10-07T08:36:56+00:00 journal OSCON 2006, Day 2: More Perl Best Practices My second Damian tutorial. It would have been my third, but I passed on his Vim tutorial. I've grown more disappointed since yesterday afternoon as I continue to talk to people who rave about Damian's Vim tutorial. Maybe next year. Assuming I can convince Qualcomm to send me again. <br> <br> The title of this tutorial is More Perl Best Practices. It seems this is a sequel to Damian's Perl Best Practices tutorial at OSCON 2005. I'm not sure how much I'm missing by not having seen that tutorial. Fortunately, this tutorial merely adds to the last one, rather than building upon it. <br> <br> Tutorials like this are not for those with an overabundance of ego. Damian's best practices are not necessarily my own practices. I use tabs instead of spaces, I cuddle my else statements, and I don't break my lines before operators. <br> <br> Perl best practices are really Damian's Perl practices. However, he has gone to great lengths to create compelling arguments for each of his practices. For this reason, I intend to at least give each of Damian's practices a chance. I may even come around and make some, perhaps all, of them my practices. cgrau 2006-07-26T00:03:01+00:00 journal OSCON 2006, Day 2: Advanced Perl DBI I attended the Advanced Perl DBI tutorial mostly because I chose to follow the Perl track and partly because no other tutorial jumped out at me as a must-see. The fun thing about having a notebook computer with wireless network access during a geek convention is the ability to chat on IRC with other people in the same or other sessions. Incidently, drop by #oscon on Freenode or and say hello; my handle is sirhc. These chatty people can tell me about other sessions and what I'm missing. Apparently, of the only two other tutorials I would have considered attending, the Haskell tutorial is interesting, while the web services tutorial isn't. <br> <br> Tim Bunce, the author of DBI, is a pretty charismatic guy. He presents well and is quite interesting and clear. However, he mostly reads from his copious slides. That's not necessarily bad, as his slides are dense with useful information. It does free me up from taking notes (and allows me to write journal entries instead). <br> <br> In my former life as a Web developer, I did a lot of work with MySQL and spent a lot of time optimizing for speed. In my current life as a sysadmin programmer, I don't use DBI very much. <br> <br> Sometimes, however, it's about quality not quantity. There were a few gems, some DBI best practices, that I will find incredibly useful as I push the use of databases at work. <br> <br> For that reason alone, I found this tutorial useful and worth my time. cgrau 2006-07-25T18:56:37+00:00 journal OSCON 2006, Day 1: Werewolf I opted to have a late dinner with some friends instead of joining some fellow convention-goers in a rousing game of <a href="">Werewolf</a>. That's too bad, too. I arrived at the game too late to play, but it looked like a lot of fun. <br> <br> I don't know how well the game scales to a large group of people, but I find it entertaining to see how quickly a group of otherwise highly intelligent computer programmers can resort to mob rule. The game almost encourages such behavior. The roles of werewolf and villager are assigned at random, so such superfluous qualities as appearance and position in the room are irrelevant to the investigation as it were. Still, that didn't stop peopel from guessing wildly or simply choosing someone because they "looked like a werewolf." cgrau 2006-07-25T09:05:34+00:00 journal OSCON 2006, Day 1: Portland Perl Mongers I have only been to a couple meetings of the <a href="">San Diego Perl Mongers</a>, but I jumped at the chance to attend the meeting for another group. Particularly in the host city of OSCON. The <a href="">Portland Perl Mongers</a> was better attended than my local group's meetings, but I don't know how much of that was due to being paired with OSCON. According to a couple group members, Portland does have a vibrant Perl Mongers community. <br> <br> I found it odd that the Portland Perl Mongers meetings would be at 6:53pm, so I had to ask about it. As it so happens, they used to schedule the meetings for 6:30pm, but people would arrive late or complain that the meeting time was too early. So they changed the regularly scheduled meeting time to be seven minutes 'til seven. <br> <br> <a href="">Robert Spier</a> of fame was present to talk about, well He explained what they do for the Perl community and what they utilize to accomplish what they do. It was an informative presentation and it's mildly surprising that uses a number of non-Perl technologies in their day-to-day operations. However, I shouldn't be that surprised. A service like should be focused on using the right tool for the job, whether or not that tool happens to be written in Perl. Sometimes the Perl solution is either non-existant or not up to parin which case it may as well be non-existant. cgrau 2006-07-25T08:59:32+00:00 journal OSCON 2006, Day 1: Rogue Ales Public House I had a better connection to the wireless network during the Higher-Order Perl tutorial. So I took the opportunity to join the #oscon channel on both Freenode and I always find it slightly weird to chat with a group of people in the same room, but completely unidentifiable to me. <br> <br> In those very channels, a group of us decided to head over to the <a href="">Rogue Ales Public House</a> for some beer and some grub. Somehow I was elected the unofficial guide of the group (perhaps because I was the only one who couldn't point a finger fast enough) and we were off. After a brief MAX ride and a brisk 14 block walk, we sat down to some fine ales. <br> <br> I savored a glass of the <a href="">Imperial IPA</a> before bowing out early to attend the special Portland Perl Mongers meeting back at the convention center. cgrau 2006-07-25T08:48:35+00:00 journal OSCON 2006, Day 1: Higher-Order Perl I have been interested in higher-order Perl ever since the book of that title was released. While I've not read it, and I only intermittently follow the mailing list, what higher-order Perl represents fascinates me. That said, I'm a little disappointed that I opted for Mark Jason Dominus's tutorial on higher-order Perl rather than, say, Damian Conway's tutorial on Vim. Not to say that I found Mark uninteresting or uninformative. Quite the opposite, in fact. Unfortunately, most of the tutorial was below my skill level. <br> <br> Having earned a degree in computer science, topics such as caching, memoization, iterators, and lexers are familiar to me. What I did find interesting, however, was Mark's application of Perl to these concepts. <br> <br> Here is a language I have been using for over ten years. I consider myself an expert at using it. Even so, there is always some new trick or some new way of looking at things that I can learn and then apply to my own programs. <br> <br> Coding in higher-order Perl, as it were, is coding with an entirely new set of ideas about how to program. The underlying theme of this tutorialaside from closures, closures, closures, baked beans, and closureswas the use of open systems as building blocks. By starting small and simple, the subroutines are easy to design. By staying open and flexible, the subroutines can be used like Lego blocks to construct even the most massively complex system. cgrau 2006-07-25T08:40:10+00:00 journal OSCON 2006, Day 1: The 7 Priciples of Better API Design I might have come to OSCON if it had been called DamianConwayCon (DCCON? ConCon?). He is, quite frankly, an amazing speaker. It is possible that I hold a bias for his usual subject matter, but I have met non-Perl-mongers who tout him as one of the best technical speakers. <br> <br> Having received the contents of Damian's slides, I didn't expect I'd take any notes, but I fired up a Vim instance anyway. By the end of the tutorial, I had taken nearly 200 lines of notes. This is the second time I have attended one of Damian's presentations. It seems I always leave brimming with ideas for my own projects. <br> <br> I found that I already apply many of the seven principles Damian put forth as being the root of better API design. There were many moments, however, when I would stop and think, "Gee, why haven't I been doing that all this time?" <br> <br> These best practices always seem obvious in retrospect, but it certainly helps (and saves time) having someone point it out with big, neon, flashing lights. cgrau 2006-07-25T08:35:05+00:00 journal The FOSS Barge Exploring the waterfront this evening, I found an <a href="">interesting barge</a> moored near the convention center. Coincidence? I'm not sure. cgrau 2006-07-24T07:10:50+00:00 journal OSCON 2006 My fellow <a href="">Perl Mongers</a> convinced me to attend <a href="">OSCON 2006</a>. So, after convincing Qualcomm to send me, here I am in Portland, Oregon. Tomorrow morning OSCON gets started with the tutorials and, as one might guess, I will be following the Perl track. <br> <br> Should be an exciting week. I'll be updating my journal as time permits. cgrau 2006-07-24T06:39:48+00:00 journal