Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^2: Directory Syncer

by jbware (Chaplain)
on Aug 18, 2004 at 16:14 UTC ( [id://384026]=note: print w/replies, xml ) Need Help??


in reply to Re: Directory Syncer
in thread Directory Syncer

To throw another solution on the fire, robocopy works wonders on the Windows platform.

Existing solutions aside, kudos on the learning initative. I've reinvented many a wheel myself for the sake of learning :)

-jbWare

Replies are listed 'Best First'.
Re^3: Directory Syncer
by Aristotle (Chancellor) on Aug 18, 2004 at 17:02 UTC

    Of course, as I have said many times and will say again: there's nothing wrong with reinventing wheels for the sake of learning, but a lot with subsequently using them in production unless you actually intend to spend the time and effort to invent a rounder wheel than what's already there. That means knowing how existing wheels solve the problem, understanding what issues they have, getting your code out to as many people as possible for testing, and sticking around fixing bugs as they come up. Only then can you be confident that your code is correct and robust enough to withstand abuse from many different users with lots of different needs and scenarios.

    Of course, it is quite enlightening to invent your own wheel, then read an existing one for comparison. There'll be checks and code for all these strange conditions and edge cases you never even thought of. I learned a number of valuable lessons that way.

    And if you do that three or four times, you'll cease trying to invent your own wheels in the first place and start giving advice such as what I have ended up giving. :-)

    Makeshifts last the longest.

      Valuable reasons for re-inventing wheels:
      • You apreciate what others have done before, and what is polishing the results. (4 x. doing it user friendly, or error proof).
      • You find yourself that 'you are not the only one' :) And you could measure the public success that your idea could have become if you had done it some time before.
      • By comparing the code (thanks to opensource), you can improve your syntax and the way of procesing the data.
      • Finally, you can clasify your chunks of code and re-use them in other projects. You need to improve your self-documenting style, in order to reuse it with just a glimpse at it and not having to inspect it in detail. Also, re-structuring it in clear chunks would help a lot!

      .{\('v')/}
      _`(___)' __________________________

        That all falls under the "inventing a rounder wheel than what's already there" clause in my post. :-) If you know how existing wheels work and understand how they are suboptimal in this way or that, and you have enough dedication to work out all the kinks in your own solution to make it really robust, then by all means go ahead and reinvent that wheel. Just don't do so off-hand, because that leads to hexagonal wheels, and they're not much fun for your passengers or the mechanic who later comes after you.

        Makeshifts last the longest.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://384026]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (6)
As of 2024-03-28 11:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found