Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

Some of you might know, i wrote my own webserver in perl, based on HTTP::Server::Simple. In a few days, i'm going to have another lecture on the topic in Vienna. As always, i'm probably going to get accused of "reinventing the wheel".

In this meditation, i'd like to talk a little about why this accusation is - in my opinion - not only not an accusation, "reinventing the wheel" can, from a historical viewpoint, even mean "wow, you changed the world for the better". Not that this is ever going to happen to me, but i'll show you what i mean:

First of all, when somebody talks about "reiventing the wheel", he or she usually bases this on the context of the wheel being the ultimate tool for transport, as in the recently granted patent for the "circular transportation facilitation device". He or she also implies that reinventing the technology is a complete waste of time.

While the wheel itself certainly plays a major part in transport, there are a number of applications it's not usefull - either not alone or not at all.

Examples of this include rough off-road usage, where Continuous tracks around the wheels are a big help. Feet are one of natures solutions that also work quite well off road. Wings are a great alternative when you need to cover vast distances fast. Underwater, you might find Fins and propellers vastly more usefull than the good old wheel. And if you ever have to evacuate an airplane quickly, you will most likely use a slide.

So, after having established that the wheel is not the ultimate in transport technology (meaning that you have to look for alternatives as well), let's take a closer look at wheel technology itself. As clearly evident, early wheels where based on wooden and bronze disks without "real" bearings. That technology failed even before the iron age because it just wouldn't work on the increased loads and distances required for trading at that time. So, the wheel was reinvented using spokes and better bearings. Then, modern transports like bicycles, cars, airplanes, tanks, trains and what not came along. They all needed their specially designed wheels that have not much in common with the wheels in use by the roman empire. Just a few years back, another company did another reinvention of the wheel, called the "Tweel".

So, concluding the semantic part, reinventing the wheel is not only sometimes a good idea, it's often required for new breakthroughs to happen. We also just proved that the wheel is not the ultimate transport technology, just one of a number of solutions. And - here's one more interesting point - by reinventing the wheel, we, the humans race as a whole, learned a little bit more about the universe we lived in.

Before we go to the problem at hand, let's have another paragraph or two looking at another technology. Most people think of it as a recent invention, never realizing that its origins go back to at least 521BC (or more): Email. While Wikipedia lists early origins like morse code (mid 1800s), the idea of Email in its current form looks very much like the electronic version of the Postal system.

One of the first postal systems was in service in Persia. While the dates vary, there is a range from 521BC to even possibly back to 1700BC. From that time on, the system was constantly updated, changed, forgotten, reinvented and changed again and adapted to special needs. This took on some "strange" forms over time, like the short lived "fast mail service" called Pony Express. The Pony Express failed, but modern express mail and parcel services use a similar system of relay stations. They just reinvented the system by using trucks and planes. Email is not that different. It uses relay stations, delivers people's mail faster than its predecessors - and probably delivers more messages per day than Bristish Mail did in their whole history. It just did that by switching technology. By every "upgrade" and "reinvention", we learned a bit more about what works and what doesn't, how to use the technology available.

Now, arriving at the present: What more could i actually say? I wanted to learn about a modern technology, the World Wide Web. I wanted to adapt it to my needs, maybe improve bits of it. So, i "reinvented" some of the technology by writing my own webserver. I notified a browser vendor about a potential security flaw i found. I learned about what works and what doesn't. I made the software open source so others could learn from my triumphs and my failings.

Is that a really bad thing? Was that really a waste of time? And if it was, wasn't it mine to waste anyway?

Don't use '#ff0000':
use Acme::AutoColor; my $redcolor = RED();
All colors subject to change without notice.

In reply to Reinventing the wheel by cavac

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and all is quiet...

    How do I use this? | Other CB clients
    Other Users?
    Others musing on the Monastery: (5)
    As of 2018-04-22 20:26 GMT
    Find Nodes?
      Voting Booth?