Dual-license your content for inclusion in The Perl 5 Wiki using this HOWTO, or join us for a chat on irc.freenode.net#PerlNet.

Melbourne Perl Mongers/Meeting History 2007

From PerlNet

Jump to: navigation, search


Wednesday, 11th July 2007

Leif Eriksen talked about using DBD::SQLite as the backend database for testing apps that use enterprise-class RDBMS'. By careful use of the DBI->connect() string, you can achieve a level of independence from any specific database implementation, making testing very easy, saving hours, and possibly days, against setting up yet another enterprise testing server . Also, porting to a new DB technology in the resulting application should be easier because a lot of your code is already DB-agnostic.

Scott Penrose talked about Google's Web Toolkit demonstrating a few simple concepts of the Java->Javascript model it employs, and summarised some of the advantages and disadvantages of the per-browser generation stategy. Specifically, GWT is an open source Java software development framework for writing cross-browswer AJAX applications. This is done by coding the functionality in Java and then compiling that into a number of javascript files (one for each browser). Scott also attempted to demonstrate Google Gears however wasn't able due to technical issues. Gears is a browser extension which allows Javascript threading, and provides off-line access to on-line content via a SQLite database and built-in webserver.

Jacinta Richardson demonstrated a Lisp (gasp!) graphical application - Regex Coach, to show both its neat abilities and to demonstrate more clearly how equivalent regexen can vary wildly in performance. The Regex Coach has both Linux and Windows versions, although the Windows version is more actively maintained. Features provided include:

  • easy selection identification (show me what the third brackets are matching)
  • regular expression description
  • regular expression parse tree
  • step through execution of the regular expression (great for identifying expression failure or excessive back-tracking)

The current version of Regex Coach is not supported under Linux. However there are instructions on the Wine site to help run it under this compatibility layer.

All then retired to dinner at the Turf Club, where Leif had to be the odd man out and be the only person not to order the parmigiana...

Wednesday, 13th June 2007

Paul Fenwick took minutes at the AGM, which are reproduced below:

Here are the minutes from the Melb.PM AGM.

Meeting opened at 18:44, 13th June 2007

  • President's report given by Scott Penrose.
  • Treasurer's report (Ben Marsh)
$76.30 in bank account.
Made $5 profit on pizza nights.
3 new members for the year. (+$30)
  • Discussion of legal entities
    • Talks by Paul Fenwick, Kirrily Robert, and Scott
    • Proposal by Kirrily to have MPM be covered under a larger association. OSDC was suggested as a primary choice.
    • Paul proposed we take the steps needed to merge MPM Inc into OSDC Inc.
    • Organisation of MPM meetings would remain with volunteers from the MPM group. Scott seconded. Motion passed unopposed.
  • Paul Fenwick nominates Alec Clews as Secretary
    • Scott Penrose seconds
    • No other nominations. Alec elected unopposed.
  • Tony Smith nominates Scott Penrose as president
    • Alec Seconds
    • No other nominations. Scott elected unopposed.
  • Leif Eriksen nominated as Vice-President
    • Scott Penrose seconds
    • No other nominations. Leif Eriksen elected unopposed.
  • Ben Marsh nominated by Scott Penrose for treasurer
    • Alfie John seconds
    • No other nominations. Ben Marsh elected unopposed.
  • Alfie John and Stephen Edmonds nominated by Paul Fenwick for ordinary members
    • Alfie seconds Stephen. Stephen seconds Alfie.
    • No other nominations. Alfie and Stephen elected unopposed.
  • End of meeting declared at 7:14pm.

Wednesday, 9th May 2007

Paul Fenwick gave his (improved) "Doing Stupid Things with Perl" talk, where he demonstrated common problems and simple solutions in writing Perl code. Topics included (not an exhaustive list or in order - its too early to remember)

    • searching for existence of a value in a list versus using a hash for direct access.
    • use Fatal; and its caveats ( and use fatal;)
    • dont use prototypes
    • using perllexwarn to turn all warnings into fatal errors ( or fatal errors into warnings!)
    • using RaiseError and friends to avoid "<op> or die $dbh->errstr;" obfuscating your DB code

Someone asked for strategies on dealing with long lists of system commands, any one of which might fail, and need the rolling-back of previous command actions - e.g. create user, create LDAP entry, setup mail, setup web,... Strategies included (please add those I've forgotten)

    • wrapping all the steps in an eval {...}, calling the steps with IPC::System::Simple with lists of "ok" return codes, then parsing $@ to determine what failed and then recover from there.
    • having add_user call add_ldap which calls add_mail etc, if any fail, they roll themselves back and then pass fail back up the stack to trigger rollbacks all the way out.
    • creating steps using the framework/paradigm from Module::Pluggable, to allow flexibility in adding, removing and recovering from steps.
    • using Test::More is() or Test::Simple ok() to test results and recover as failures are found
    • using Test::Class setup and teardown mechanisms to recover as required
    • a finite state machine that transitions to one state on successful running of a step, or another state if it fails - the fail states can do full or partial rollbacks as required, and end processing, or move to another step as required
    • POE, but no one had used this, so didn't know if it was a really good fit or not

Jacinta Richardson then presented a talk on using greediness correctly with regular expressions (.* and .*?) , covering (please help me!!)

    • how greediness can give the wrong matches
    • how to avoid back tracking
    • giving hints via {m,n} ranges
    • using the right tool because regexes are powerful but expensive - consider split, unpack and friends

Wednesday, 14th March 2007

Wednesday, 14th February 2007

  • Alfie John - "Cool new stuff to know about our tools"
  • Simon Taylor - AI::Genetic - A pure Perl genetic algorithm implementation
  • Rick Measham - Showed us how to create a Valentines Day card using PDF::API2. For more information have a look at his tutorial
  • Paul Fenwick - Ran through "What's new in Perl 5.10"
  • In exchange for a short spiel from Andrew Stuart at the start of the night, Flat Rate Recruitment paid for our dinner around the corner at La Porchetta

Friday, 12th January 2007

  • Alec Clews organised for us to meet at the Mountain Goat brewery in Richmond, by the time I got the usual reprobates had commandeered a corner. I must say, the pub had the shortest bouncer I've ever seen, I had to bend double to hear his answer to a request for more chairs - I reckon if a fight did break out, it'd be like watching Gimli fight.
  • After a number of excellent ales - Leif drank the India Pale Ale, which he said was fantastic, we retired to 'Flow' which most people would recognise as being where the old Cafe Alma was.
  • Scott showed some extremely interesting, but also a little scary flight logs from his gliding - statements like 'I was going so fast I had to use all my strength to push the stick forward' freak me out.
  • No serious Perl talk in the pub, though Leif did regal to everyone his plans for his 2007 home project.