Loading ...
Sorry, an error occurred while loading the content.

Re: [extremeperl] Re: Better Development Tools for Perl

Expand Messages
  • Rob Nagler
    ... I like better tools to problems we encounter. :-) Everything else is YAGNI. Performance, tree views, checkin notifications, etc. are not problems we have.
    Message 1 of 107 , Jun 19, 2005
    • 0 Attachment
      J Matisse Enzer writes:
      > I gather from your enthusiastic response to blake's list that you do
      > like better tools - maybe the thing is, you really want them in emacs
      > (which is fine with me), and perhaps much of the apparent disagreement
      > between you and I is really about graphical IDE's vs. emacs ?

      I like better tools to problems we encounter. :-) Everything else is
      YAGNI. Performance, tree views, checkin notifications, etc. are not
      problems we have. Note that Blake's list doesn't include these
      either.

      FYI, here's what we would use from Blake's list:

      blakemills writes:
      > - Jump from code to test (and vice versa) in one button
      > - Jump to perl-thing-at-point, whether its a method, module, constant
      > subroutine, or filename
      > - Show the inheritance hierarchy of this module, or the one under
      > point
      > - Deparse a chunk of highlighted perl, adding parens to clarify
      > precidence
      > - show all methods named X
      > - Jump to the SUPER method of the one you're overriding
      > - Toggle between prefix and postfix versions of if,foreach,while
      > - toggle pairs of single quotes to double quotes and vice versa

      We have a longer list than this, too. :-(

      ### Here's stuff we already have:

      > - Run the unit test
      > - Tab complete module names based on the .pm files in the filesystem

      dabbr works fine for this, and handles any (word, language) tuple.

      > - Show the entire CVS checkin that added a particular line
      > - Show CVS annotation or log comment for current line
      > - See the current cvs diff for this file or sandbox
      > - Navigate previous cvs changes for this file
      > - Jump from a CVS diff file directly to the line in the code

      vc mode does more than I have ever needed. But others at bivio may
      disagree.

      > - make sure the current perl file compiles cleanly

      ### Here's stuff we absolutely no need for and why:

      > - Add a use line for the class under point

      We do "minimal" use. In general, we wait to run the unit test to see
      if we need any "use" lines. This makes the code shorter, and since we
      always use qualified imports, we don't need use lines at all.

      > - Fold unnecessarily long copyright chunks into one line

      What I would like is an "add year" when a file is checked in. When we
      release to the public, our packager automatically adds the long
      copyright notification.

      > - Insert various useful debugging lines temporarily, i.e. Carp

      We have a trace facility which allows us to dynamically control trace
      points efficiently. It's an abbrev to add a trace point (t C-x a e
      adds: _trace() if $_TRACE;). All bOP trace points and logging
      include line and file numbers (compactly) along with date and pid, if
      configured. "warn" is nice, but conflicts with Perl internal warnings
      which generate stack traces (if configured), because they usually
      indicate a defect. We never do "print()", because if we checkin the
      code accidently (never happens ;-), we'd have a hard time finding it
      without a line/file on the line.

      > - find all occurances of a string in our code base

      grep -Ir :-)

      > - Toggle formatting of lists or hashes that span more than 80 columns

      We avoid > 80 char lines.

      > - Update the test count

      Bivio::Test automatically counts the number of tests, executes tests
      in "catch" sections, and generally saves the amount of code you have
      to type by at least half.

      > - Apply/Revert a hunk from a cvs diff file

      Never go back! :-) Might see how this would be useful, but I thought
      vc mode already had this.

      > - Insert a random MAC address (for writing unit tests)

      I can't think of case where we would need this.

      > - Insert a source filter around the current block so only a portion
      > of the unit test is run, so you can focus in on a particular
      > test thats failing

      Possibly important. Our tests are declarative, but order does matter
      in many cases. We try to be as stateless as possible. We also try to
      make the tests as fast as possible.

      > - run 'make' with various useful targets

      We don't use make.

      > - pull up a perldoc on whatevers under the point

      I read the perldoc inline. Could see how this would be useful for
      external code.

      Rob
    • Siegfried Heintze
      Since there was a helpful discussion some time ago on USB keyboards and mice for pair programming that was not specific to perl, I wanted to solicit the group
      Message 107 of 107 , Feb 13, 2006
      • 0 Attachment
        Since there was a helpful discussion some time ago on USB keyboards and mice
        for pair programming that was not specific to perl, I wanted to solicit the
        group for information on network software (also not specific to perl).



        I just set up openVPN on my openwrt/WRT54G router for pair programming with
        a headset and skype.



        (1) Can any point me to the documentation on sharing desktops on windows? I
        need to create accounts on Win2003 XP Server. When I created an account
        belonging only to the user group, my partner could not log in. He was
        receiving some error message about not being permitted to log in
        interactively. However, when I added the administrator group (reluctantly)
        to his account, he could log in. Is there a tutorial somewhere on the web
        for creating user accounts in windows for use with remote desktop logins on
        VPNs?



        (2) How do I share my remote desktop setting with a programming pair
        partner?



        (3) What about sharing sessions when I'm booted with linux? I think there is
        a vnc program out there, but I don't know how to use it. I'll need to learn
        how to create accounts and share linux desktops with remote VPN users. Is
        there a tutorial on this?



        (4) Are video cams very helpful for pair programming?



        It seems that this kind of knowledge would be very common for pair
        programmers.



        Thanks,

        Siegfried



        [Non-text portions of this message have been removed]
      Your message has been successfully submitted and would be delivered to recipients shortly.