Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Software handyman and handywoman

by johnnywang (Priest)
on Aug 27, 2004 at 20:11 UTC ( #386480=perlmeditation: print w/replies, xml ) Need Help??

Outside of earning a living as a programmer, one of my interests is to be a handyman/carpenter, and hangout in the likes of HomeDepot. Everyone in the handyman profession always has a toolbox that almost defines who they are. I'm wondering what each of you consider a must in your software toolbox. Please note the word "must", which really means those without which your job will suffer, not impossible. Archimedes used to say: "Give me a place to stand and with a lever I will move the whole world." I'm looking for a list so that I can say: "Give me a place to sit and with this list I will program the whole world."

My list is as follows:

  • An editor: emacs
  • A version control system: CVS
  • A shell: Bash, shell scripts
  • Perl: For anything too much for a shell script. (Here I'm putting perl as a tool, even though the actual job might be in, say, java.)
Since many of us also use perl for web applications, what is a good list for a perl oriented web programmer:
  • (for the simple and the quick)
  • CGI::Applications (for the more complicated)
  • ??? (is there an enterprise level web framework? whatever that means?)
  • mod_perl
  • Template Toolkit
  • WWW::Mechanize (for testing)

Replies are listed 'Best First'.
Re: Software handyman and handywoman
by gaal (Parson) on Aug 27, 2004 at 20:50 UTC
    .=    # Adding to the above:
    • My favorite editor with my favorite settings
    • An Internet connection
    • Search engine
    • Dictionary (well, maybe not for *most* of my programming work...)
    • screen
    • GNU grep (has -r)
    • od -x, wc, and other small text utils
    • tcpdump
    • netcat
    • A c development environment, preferably full gnu toolchain
    • If I need to do merges and I'm on Windows, Beyond Compare (probably the only tool that makes me want Windows! Runs OK with Wine)
    • Quiet or music as appropriate
    • Sufficiently good display (e.g., refresh rate)
    • perl! of course :)
Re: Software handyman and handywoman
by dragonchild (Archbishop) on Aug 27, 2004 at 20:22 UTC
    Personally, I have assembled the following tools, in no particular order of importance:
    • vi
    • cvs
    • bash
    • *nix / Cygwin
    • Apache / mod_perl
    • MySQL (4.1.2+ preferably)
    • CPAN
    • PerlMonks
    • A good manager
    • A good tester
    • A good coworker
    • A good DBA
    • A good sysadmin

    Everything else is gravy. :-)

    We are the carpenters and bricklayers of the Information Age.

    Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose

    I shouldn't have to say this, but any code, unless otherwise stated, is untested

Re: Software handyman and handywoman
by idsfa (Vicar) on Aug 27, 2004 at 20:31 UTC

    A Brain

    Although my cow-orkers have proven it nonessential, I still would hate to do my job without one.

    If anyone needs me I'll be in the Angry Dome.
Re: Software handyman and handywoman
by Anonymous Monk on Aug 27, 2004 at 20:29 UTC
    • A decent *nix OS (decent shell and editors implied)
    • CVS (or subversion)
    • A handful of languages: C, Ruby, Perl, Erlang
    • Multiple communities of great developers whose shoulders I can stand upon, and whose libraries I may leverage.
Re: Software handyman and handywoman
by Anonymous Monk on Aug 27, 2004 at 23:30 UTC
    A 2x4, a cattle prod, a towel, two bars of chocolate, a pint of lager, a goat, a silver dagger, sunglasses, half a packet of cigarets and a full tank.
Re: Software handyman and handywoman
by zentara (Archbishop) on Aug 28, 2004 at 11:40 UTC
    I have Midnight Commander, 10 virtual desktops, and a cd-sized directory of catagorized "best-snippets" collected from here, various maillists, and usenet groups. I find the snippets are indispensible, since I mostly know "what I want to do", but can't remember the best idioms to do it. Like the well-known sig, often seen here, from a well-respected monk says....."99% of all software is already written."

    I think when you start talking CVS and such, you are moving from "handyman" into the realm of "software engineering".

    I'm not really a human, but I play one on earth. flash japh
      Like the well-known sig, often seen here, from a well-respected monk says....."99% of all software is already written."

      As can be seen below, it's 90%, not 99%. And I'm only quoting dragonchild so he should get the credit. Thanks for the complement, though, unless you were commenting about someone else using the same sig.

      90% of every Perl application is already written.
Re: Software handyman and handywoman
by perlfan (Vicar) on Aug 28, 2004 at 15:37 UTC
    I prefer the bare bones approach:
    • *nix OS (preferably FreeBSD minimal install)
    • Bourne Shell (/bin/sh)
    • vi
    • perl base
    • ssh
    • standard utils: tar, gzip (does this even need to be said?)
    When I have the luxury, I also like:
    • A WM like blackbox
    • cvs
    • nedit
    • mozilla/firefox
    • Open Office
    I absolutely *hate* and have the impulse to refuse to work in environments that have
    • crap programming environments like MatLab or Windows or any other product that ties you into *their* framework
    • IE
      woo-hoo. Finally someone else who uses Nedit. I don't feel so... Alone, anymore.
Re: Software handyman and handywoman
by exussum0 (Vicar) on Aug 28, 2004 at 14:50 UTC
    The list for every person is different. That's a fact. Just so long as you get the job done efficiently. It means you should learning the value of everything and how it contributes to your daily programming life. If there is something that is totally useless to you, so be it.

    For instance, I know emacs is a wonderful editor, and operating system, but I find I do things better in vi. Does it mean vi is better? Possibly, but not necessarily. It means I work best with it. But it also means something else. Some tools you have no choice to standardize on within an organization, such as cvs, or perforce, or something like it, because everyone needs to agree. You can't use 4 different control systems... but, when you can, it means you have to let others choose their tools when they can... such as their editor of choice, or CGI vs CGI::Application (if you can).

    Then B.I. said, "Hov' remind yourself nobody built like you, you designed yourself"

Re: Software handyman and handywoman
by JanneVee (Friar) on Aug 28, 2004 at 17:23 UTC

    What I need, computer, turing complete programming language and the documentation for the programming language that I can read, preferably in english but swedish can be enough.

    I prefer a C++ compiler and vi on a Linux box. And some infrastructure around it, like perl, make, screen and documentation from some source like the internet(implies internet-connection), man-pages and/or books.

Re: Software handyman and handywoman
by Eyck (Priest) on Aug 29, 2004 at 19:19 UTC
    • An editor: vim
    • Version control system: svn
    • Shell: zsh
    • Perl: perl obviously...
    • Network: netcat
    • SSL: openssl (nothing simpler then openssl s_client -connect localhost:pop3s, localhost:https etc, )
    • ping, hping3, arping,
    For web apps: Apache::ASP
Re: Software handyman and handywoman
by nothingmuch (Priest) on Feb 16, 2005 at 08:24 UTC

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://386480]
Approved by Arunbear
Front-paged by bassplayer
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2021-06-18 06:08 GMT
Find Nodes?
    Voting Booth?
    What does the "s" stand for in "perls"? (Whence perls)

    Results (88 votes). Check out past polls.