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

Zen and the art of Hacking

Expand Messages
  • Nimster
    Hey there. I would first like to congratulate Shlomi on this fine addition to Israely discussion groups. What I would like to speak of came by to me as I read
    Message 1 of 3 , Mar 11, 2002
    • 0 Attachment
      Hey there.
       
      I would first like to congratulate Shlomi on this fine addition to Israely discussion groups.
       
      What I would like to speak of came by to me as I read "Zen and the art of motorcycle maintenance", by Robert M. Pirsig. I highly recommend the book to anyone with the slightest of interest in philosophy, and especially to hackers, as it takes, at least at the beggining, an inquisitive approach that seems to be the trait of many of those.
      The book starts by speaking about the difference between Romantic thought and Classic, scientific, inquisitive thought, but soon delves off somewhere else. He touches a spot which I would like to further approach here: He says one of the differences between the two "modes" is that Romantic-thinking people (you could read this as "Technophobic people" for all that matters to this discussion) see something as a whole, while the Classic thinkers see it as a sum of its parts.
      What I would like to add is that it's not only how they see it- but how they react to it. A classic thinker realizes what the object of interest really is. He "unbeautifies" it, removes all the romantic shell surrounding it. For example, I've seen very little people "alter" the food they recieve on their plate in a restaurant. Very rarely would they add salt or pepper, much less removing some part they like less or asking to remove ice from their glass of drink. The point is, we see the recieved meal as some perfected product we shouldn't modify. However, if you had the pleasure to cook your own meals you'd notice that, if you didn't taste it while it was prepared, you'll almost always make changes to it as it sits on your plate. In fact, it has been my observation that the cooker of the meal is usually the first one to either use or offer salt & pepper: Simply because to him there's less of a difference between what was being made in his frying pan five minutes ago and what sits on the table right now.
      The same thing related to source-code. The classic thinker realizes while it *is* packed in a .tar.gz and comes with a nice makefile for configuration and installation, that doesn't mean it's a "black box" or a "product", in the sense of something completed and sold which you shouldn't tinker with. We would take a look at the makefile to see if it doesn't rely on one variable or another which we need set differently, the more competent of us would look at the source, after installation, to see why such-and-such happens, and would rather edit the options manually than trust it to an in-program options menu which sometimes has problems successfully formatting every option. Finally, we are certainly not afraid of writing our own scripts and code to provide us with the tools we need, realizing it is well worth the 2 minutes it took us to write and debug that script, instead of getting angry every time we have to do an action manually. It's that sort of understanding that things would work as you want them to work and there's nothing to fear of hacking the product.
      I once told my Sifrut teacher that I would write a song differently than the poet did. She looked at me bewildered: "Then you didn't understand the poem", she said, without even caring what my "hack" was. Even poems, and any other form of art, can be perfected. People stray off disagreeing with the books they read or the art they watch. There's nothing wrong with thinking a little spark in Mona Lisa's eye would better the painting, nor does it necessarily mean it was "misunderstood". Art is in the eye of the beholder, and as long as you don't ruin it for everybody else, I can see nothing illegit or blasphemous about disagreeing with the way a certain poet put his words, or for Shlomi's sake: how Knuth does or doesn't do something.
      More than analyzing everything we see, as opposed to simple viewing of the object as complete, the difference between the Classic and the Romantic thinker is in the fear (or lack thereof) of altering the object. That was George's (or John's, or whatever the fellow motorcyclist in ZAoMM is called) real problem - it's not that he didn't see the motorcycle as a sum of its parts, he simply saw it as a finished product, something not be messed around with. That is the problem people have with all sorts of mechanical problems, that is the source of many-a-disatisfaction and frustration with the material aspect of our lives. There's a reason for every problem, and that reason can and should be actively saught, afore raising hands in dispair and giving up.
      I could go on and on rambling about how this affects (or rather, afflicts) beaurocracy, which is so damn limited and and unflexible process because people see it as a process instead of understanding it is made of people with lives and desires and common sense and moods, but I think you got the point of my rant/article.
       
      -Nimster
    • Shlomi Fish
      Hi Nimster! Congratulantion on being the first poster. However, my problem with your post is entirely technical: 1. It s very long. 2. It s only one really
      Message 2 of 3 , Mar 11, 2002
      • 0 Attachment
        Hi Nimster!

        Congratulantion on being the first poster. However, my problem with your
        post is entirely technical:

        1. It's very long.
        2. It's only one really long paragraph.

        If you can reformat it and possible summarize it, it would be great.

        Regards,

        Shlomi Fish



        ----------------------------------------------------------------------
        Shlomi Fish shlomif@...
        Home Page: http://t2.technion.ac.il/~shlomif/
        Home E-mail: shlomif@...

        "Let's suppose you have a table with 2^n cups..."
        "Wait a second - is n a natural number?"
      • Shlomi Fish
        If I understood your post correctly (next time please include a one line spacing so it ll be easier to read), then you differentiate between two different
        Message 3 of 3 , Mar 11, 2002
        • 0 Attachment
          If I understood your post correctly (next time please include a one line
          spacing so it'll be easier to read), then you differentiate between two
          different approaches: the Classical one which considers a complete object
          as the sum of its parts, and the Romantic one which considers a complete
          object to be a complete, inseparable solution.

          I'm not sure whether this is the meaning of Romantic and Classical in the
          technical literature, but I'll skip it.

          My point is that I'm not sure either approach is superior all the time. If
          we want to treat a patient, than sometimes we have to take a holistic
          approach and try to inspect other things beside his symptoms. I'll give
          you an example:

          My father had a co-worker who got a high blood-Glocuse levels. My father
          being a biologist who became interested in complementary medicine advised
          him to stop eating a lot of pastry (Borekas and the such) at work. A few
          days later, his Glocuse level was still rather high, so my father asked
          him what he ate the last night. He told him that he ate grapes. Naturally,
          grapes contain pure glocuse, so my father advised him against eating them
          or anything similar.

          After that, his glocuse level dropped to a more-or-less normal level. My
          father colleague who was a Phisician, thought the other co-worker should
          be given medication (insulin, etc.)

          My point is that such symptoms can be caused by behavioural or cognitive
          patterns. In many times we cannot treat the human body as a group of
          distinct organs.

          Likewise for computer programs. Sometimes, a bug is caused by lack of
          proper integration between two or more subsystems, and we need to think of
          the program as a whole to find out what it is and overcome it. Sometimes
          it is even caused by an improper model, altogether.

          But of course, the other approach makes sense too sometimes. If a program
          does not compile, then tweaking the makefile or playing with the
          "./configure" parameters may solve it. Similarily, many diseases can be
          treated by dealing with the particular organ in which they happened.

          I believe a good professional should think in both ways, because the
          solution may be found in either one.

          Regards,

          Shlomi Fish





          ----------------------------------------------------------------------
          Shlomi Fish shlomif@...
          Home Page: http://t2.technion.ac.il/~shlomif/
          Home E-mail: shlomif@...

          "Let's suppose you have a table with 2^n cups..."
          "Wait a second - is n a natural number?"
        Your message has been successfully submitted and would be delivered to recipients shortly.