• Ben Adams (cs)

    <FONT size=2>Over-engineering: "In theory, there is no difference between theory and practice. But, in practice, there is." - Jan L.A. Van De Snepscheut</FONT>
    <FONT size=2>-----</FONT>
    <FONT size=2>Time is an excellent teacher; but eventually it kills all the students. </FONT>

  • R.Flowers (cs)
    Alex Papadimoulis:

    Fortunately, David was able to convince his higher-ups to dump the contractor and finish the application internally. Unfortunately, David was the one assigned to finish it.

    Beware of those great ideas in meetings!

    Alex Papadimoulis:


    --------------------------------------------------------------------+
                                 Troubleshooting, Continued             +
    --------------------------------------------------------------------+
    

    Q: I'm receiving the following "Fatal Error" Messages:

     Fatal Error: Cannot redeclare class Zip in 
     [install_path]\php_includes\classes\Zip.php
    

    A. This is a result of the application loading the PHP Zip class. To solve the problem, 1. Navigate to and open the php.ini file. 2. Search for the extension "php_zip.dll" 3. Comment it out with a semi-colon (";extension=php_zip.dll") 4. Restart the Apache service




    Mmm... PHP, Apache on a Windows server? Is that right? (Zip, dll...)
  • snoofle (cs) in reply to R.Flowers

    I get it: renaming Zip (compression) to ZipCode (as in the post office) seems perfectly obvious to me </wink>

  • Mihai (unregistered)

    "Fortunately, David was able to convince his higher-ups to dump the contractor and finish the application internally. Unfortunately, David was the one assigned to finish it."

    I would say this is the right thing.
    If you advocate for something, then you should be prepared to take it :-)
    Eat your own dog food principle.

  • Colin (unregistered)

    Namespaces in PHP would be nice...

  • TankerJoe (cs)


    Contractor A: What do you mean I cannot name my class "Zip"?
    Contractor B: It won't work, that name is already taken by one of the installed extentions.
    Contractor A: ....
    Contractor B: <sarcasm>Well, I guess that you could just remove the extention.</sarcasm>
    Contractor A: Great idea!  Yeah, I'll do that.
    Contractor B: ....
    Contractor A: Oh, don't worry, I will document it.

  • 1334 (unregistered)

    at least there was some documentation!

    captcha: giggity

    giggity giggity, giggity goo

  • Doug (unregistered)

    Hmmmm, I'm actually guilty of doing something similar. There was a 3D library we were using and I needed to make changes inside of it (Rendware SUCKS) and thus recompile it. For some reason (that I can't remember) it wasn't possible to re-compile the entire .lib so I ended up recompiling certain sections of it, then linking both libs, and having certain functions supperceed other almost-identical functions of the same name.

    Not my finest hour T_T

  • Nizzle (unregistered)

    I cannot believe that this person wrote all this documentation in the installation instructions, when the fix (renaming the class) would be so much easier.  This was obviously generated.

    Oh, and I so much want to play foosball with the girl in the ad on the left column of this site.  She looks like she's having so much fun!

  • GoatCheez (cs)

    <sarcasm>
    Oh  wow. What a truely unique WTF. This has got to be THE BEST WTF EVER. I don't think anyone has ever done anything more WTF worthy than this. I can't believe that the contractor didn't notice how the other applications were failing to work because of the ZIP library not being present. It just completely boggles my mind.
    </sarcasm>

  • Mike D (unregistered) in reply to R.Flowers

    There is a Windows port of Apache, it works pretty well AFAIK.

  • Your Name (unregistered)

    And all this time, I've just been trying to avoid clashing with keywords and default packages:  imagine, I could have just not included things like memory managment, pre-defined integers, classes...

    Oh, come to think of it I might get the following to work:

    class int
    {
        constructor()
        {
           //allocate memory for the class
           pInt = new bytearray(4);
        }
        destructor()
        {
           //deallocate memory for the class and call base-destructors
           delete pInt;
        }
    }

    <sarcasm/>

  • boa13 (unregistered)
    Alex Papadimoulis:

    Although plenty there were plenty of "oddities" in the horrible mess of 50,000+ lines of code delivered,


    There are plenty plenties in that sentence.

  • frosty (cs) in reply to Ben Adams
    Ben Adams:

    <font size="2">Over-engineering: "In theory, there is no difference between theory and practice. But, in practice, there is." - Jan L.A. Van De Snepscheut</font>
    <font size="2">-----</font>
    <font size="2">Time is an excellent teacher; but eventually it kills all the students. </font>



    Academics have a hard time figuring this one out.  Strangely, some consultants do too.
  • Ben Adams (cs) in reply to Doug

    -------------------------------
    doug said: "Hmmmm, I'm actually guilty of doing something similar. There was a 3D library we were using and I needed to make changes inside of it (Rendware SUCKS) and thus recompile it. For some reason (that I can't remember) it wasn't possible to re-compile the entire .lib so I ended up recompiling certain sections of it, then linking both libs, and having certain functions supperceed other almost-identical functions of the same name.
    Not my finest hour T_T"
    -------------------------------

    Good judgment comes from experience; experience comes from bad judgment.

  • Shoe (unregistered) in reply to GoatCheez

    GoatCheez:
    <sarcasm>
    I can't believe that the contractor didn't notice how the other applications were failing to work because of the ZIP library not being present. It just completely boggles my mind.
    </sarcasm>

    So you think it's acceptable to make a system-wide change that affects everything when you have the opportunity to make a local change that affects nothing else?  If I write an application and can't figure out how to make its title bar purple, is it OK if I delve into your system settings and make ALL title bars purple?  No.

     

  • Volmarias (unregistered) in reply to Ben Adams
    Ben Adams:

    Good judgment comes from experience; experience comes from bad judgment.

    Actually, on TDWTF tears of joy and pain come from bad judgement.

    CAPTCHA = enterprisey. Just the thing this man needs on his resume.

  • Ryan (unregistered) in reply to Shoe
    Anonymous:

     If I write an application and can't figure out how to make its title bar purple, is it OK if I delve into your system settings and make ALL title bars purple?  No.

    Show me where in the spec it said ANYTHING about the other title bars.

  • Satanicpuppy (cs)

    Stupid way to solve the problem, but the problem itself is pretty damn stupid as well. Php doesn't have anything like a namespace, you can't put functions in another namespace, but you can still have tons of namespace collisions.

    Just one more php wtf, if that isn't redundant.

  • YourName (unregistered)

    It's too bad this was caught so early on.  It would've been much funnier if they were paying for bandwidth and the bill went up sixfold in one month. 

    The contractor would have to relocate himself, but no worries, at least he can use his ZipCode class.





  • TankerJoe (cs) in reply to Shoe
    Anonymous:

    GoatCheez:
    <sarcasm>
    I can't believe that the contractor didn't notice how the other applications were failing to work because of the ZIP library not being present. It just completely boggles my mind.
    </sarcasm>

    So you think it's acceptable to make a system-wide change that affects everything when you have the opportunity to make a local change that affects nothing else?  If I write an application and can't figure out how to make its title bar purple, is it OK if I delve into your system settings and make ALL title bars purple?  No.



    Thank You Captain Obvious.

    Actually, I read his statement (parsed for sarcasm tag) as saying that he CAN believe a contractor missed the blindingly obvious problem of making system wide changes, especially for such a stupid reason.  Ergo, this contractor, like many featured on TDWTF, is an idiot errrr excuse me I mean "used bad judgment".
  • Ambidextrous Joe (unregistered) in reply to Nizzle

    Not sure about your browser, or perhaps you're working upside down, but I believe she is on the right side...

  • rbriem (cs) in reply to boa13
    Anonymous:
    Alex Papadimoulis:

    Although plenty there were plenty of "oddities" in the horrible mess of 50,000+ lines of code delivered,


    There are plenty plenties in that sentence.

    *** Obscure reference warning ***

    Would you say that he has a "plethora" of plenties?

  • Philbert Desanex (unregistered)

    I'm not well-versed in PHP, but it seems to me that 50,000+ LOC is a bit excessive for 14 pages.  WTF?

     

    CAPTCHA = whiskey (well, don't mind if I do!)

  • An apprentice (unregistered)

    I think I would rename Zip class to ZipCompression and then recompile PHP. This is open source, after all. Some people are so lazy, going for half-baked solutions...

  • TankerJoe (cs) in reply to rbriem
    rbriem:
    Anonymous:
    Alex Papadimoulis:

    Although plenty there were plenty of "oddities" in the horrible mess of 50,000+ lines of code delivered,


    There are plenty plenties in that sentence.

    *** Obscure reference warning ***

    Would you say that he has a "plethora" of plenties?



    El Guapo: Jefe, would you say I have a plethora of plenties?

    Jefe: A what?

    El Guapo: A plethora.

    Jefe: Oh yes, El Guapo. You have a plethora.

    El Guapo: Jefe, what is a plethora?

    Jefe: Why, El Guapo?

    El Guapo: Well, you just told me that I had a plethora, and I would just like to know if you know what it means to have a plethora. I would not like to think that someone would tell someone else he has a plethora, and then find out that that person has no idea what it means to have a plethora.

    Jefe: El Guapo, I know that I, Jefe, do not have your superior intellect and education, but could it be that once again, you are angry at something else, and are looking to take it out on me?

  • Satanicpuppy (cs) in reply to Philbert Desanex

    Sounds like the eternal php wtf of not seperating content and code. That'd be easy for machine generated HTML.

  • snoofle (cs) in reply to Ambidextrous Joe

    Anonymous:
    Not sure about your browser, or perhaps you're working upside down, but I believe she is on the right side...

    You might be on to something: he's in Australia, so everything is upside down, so she *does* appear to be on the RHS

  • GoatCheez (cs) in reply to TankerJoe
    TankerJoe:
    Anonymous:

    GoatCheez:
    <sarcasm>
    I can't believe that the contractor didn't notice how the other applications were failing to work because of the ZIP library not being present. It just completely boggles my mind.
    </sarcasm>

    So you think it's acceptable to make a system-wide change that affects everything when you have the opportunity to make a local change that affects nothing else?  If I write an application and can't figure out how to make its title bar purple, is it OK if I delve into your system settings and make ALL title bars purple?  No.



    Thank You Captain Obvious.

    Actually, I read his statement (parsed for sarcasm tag) as saying that he CAN believe a contractor missed the blindingly obvious problem of making system wide changes, especially for such a stupid reason.  Ergo, this contractor, like many featured on TDWTF, is an idiot errrr excuse me I mean "used bad judgment".


    Yay, didn't have to explain myself ;-)
  • Ted (unregistered)

    I think this is more of a PHP wtf than a moron contractor wtf. It's another demonstration of how easy it is to screw up in PHP by not naming your {function,class,variable} correctly. Why does everything have to be a function?

  • snoofle (cs) in reply to Ted

    Anonymous:
    I think this is more of a PHP wtf than a moron contractor wtf. It's another demonstration of how easy it is to screw up in PHP by not naming your {function,class,variable} correctly. Why does everything have to be a function?

    What does everything having to be a function have to do with choosing incredibly bad names? You can make that screw up in *any* language!

  • Sam (unregistered)

    This really gives me more of an "UGH" feeling than a "WTF!?" feeling.

  • Tom (unregistered) in reply to Nizzle
    Anonymous:
    Oh, and I so much want to play foosball with the girl in the ad on the left column of this site.  She looks like she's having so much fun!

    Yeah I'd like her to play with my foosballs too...

  • PaulTomblin (cs)

    The closest I've come to this sort of thing is when I worked at a company that had a product with both VMS and Unix versions, compiled from the same source tree.  It had started out on VMS.

    One of the utility programs in our system was called "xfd".  I can't even remember what it did.  But on the Unix side, that name conflicted with the X font display program "xfd".  So we had to make sure the users put our bin directory ahead of the directory where the X "xfd" lived.  And document it.  And yet, we still got puzzled calls from customs (and from our own salepeople) saying "I went to use xfd, and all I got was a grid of all the letters in the alphabet".

  • Satanicpuppy (cs) in reply to snoofle
    snoofle:

    Anonymous:
    I think this is more of a PHP wtf than a moron contractor wtf. It's another demonstration of how easy it is to screw up in PHP by not naming your {function,class,variable} correctly. Why does everything have to be a function?

    What does everything having to be a function have to do with choosing incredibly bad names? You can make that screw up in *any* language!



    It's only a name problem in PHP. In java, for example, I could make a 'Zip' class anywhere I wanted just by specifing a different namespace. I could make hundreds of them, because in Java, you can say, "The program named zip that is part of this package over here, not any other program that may also be named zip." With a big application that has non-stupid function names, you're going to have repeats, and that language has to be able to deal with that. Most languages can.

    Sure "Zip" is a stupid name, but there are plenty of classes in PHP where the name isn't stupid, but you still have the exact same problem. I've tried to reconcile applications before where I literally had to change a function name in 1000+ places, and this is a problem that is simply not tolerable in a professional quality language.
  • snoofle (cs) in reply to PaulTomblin

    PaulTomblin:
    The closest I've come to this sort of thing is when I worked at a company that had a product with both VMS and Unix versions, compiled from the same source tree.  It had started out on VMS.

    One of the utility programs in our system was called "xfd".  I can't even remember what it did.  But on the Unix side, that name conflicted with the X font display program "xfd".  So we had to make sure the users put our bin directory ahead of the directory where the X "xfd" lived.  And document it.  And yet, we still got puzzled calls from customs (and from our own salepeople) saying "I went to use xfd, and all I got was a grid of all the letters in the alphabet".

    A couple of jobs ago, I worked at a place that liked to re-use class names in Java (with ever-so-slightly-different implementations, so they just put them all in slightly differently named packages...

    com.xxx.gui.pkg1.TextEntry;
    com.xxx.gui.pkg2.TextEntry;
    com.xxx.gui.pkg3.TextEntry;
    

    Made for one hell of a time when more than one of them was used in the same file, or when some poor new guy would subclass the wrong one - or both.

  • Bus Raker (cs) in reply to GoatCheez

    GoatCheez:
    <sarcasm>
    Oh  wow. What a truely unique WTF. This has got to be THE BEST WTF EVER. I don't think anyone has ever done anything more WTF worthy than this. I can't believe that the contractor didn't notice how the other applications were failing to work because of the ZIP library not being present. It just completely boggles my mind.
    </sarcasm>

    Office Space:

    Female Temp: Uh-oh. Sounds like somebody's got a case of the Mondays.

  • Bus Raker (cs) in reply to Tom

    Anonymous:
    Anonymous:
    Oh, and I so much want to play foosball with the girl in the ad on the left column of this site.  She looks like she's having so much fun!

    Yeah I'd like her to play with my foosballs too...

    Pretty crafty add from a software development community.  I mean, what does a hot blonde leaning over a foosball table exposing part of her breasts have to do with software development (i.e. a bunch of single geeks?)

    And I still can't beleive why zip was renamed to zipcode when they simply could have renamed all of the compression references to 'MakeSmaller'

  • biziclop (cs)

    And how about a business entity called Package? Looks nice on paper. Much worse when you try to implement it in Java.

  • Satanicpuppy (cs) in reply to snoofle
    snoofle:

    PaulTomblin:
    The closest I've come to this sort of thing is when I worked at a company that had a product with both VMS and Unix versions, compiled from the same source tree.  It had started out on VMS.

    One of the utility programs in our system was called "xfd".  I can't even remember what it did.  But on the Unix side, that name conflicted with the X font display program "xfd".  So we had to make sure the users put our bin directory ahead of the directory where the X "xfd" lived.  And document it.  And yet, we still got puzzled calls from customs (and from our own salepeople) saying "I went to use xfd, and all I got was a grid of all the letters in the alphabet".

    A couple of jobs ago, I worked at a place that liked to re-use class names in Java (with ever-so-slightly-different implementations, so they just put them all in slightly differently named packages...

    com.xxx.gui.pkg1.TextEntry;
    com.xxx.gui.pkg2.TextEntry;
    com.xxx.gui.pkg3.TextEntry;
    

    Made for one hell of a time when more than one of them was used in the same file, or when some poor new guy would subclass the wrong one - or both.



    Hah. Worst I ever dealt with was an old VB app where the "developer" would upgrade the libraries (huge compiled dlls) whenever he needed to add functionality to the program.

    This is not to say that he'd upgrade the libraries across the whole program, mind. No. That might BREAK something. No, he'd make the change, recompile the library, and then source it on whatever single page needed the change in functionality...with a name that differed only in version number. So these compiled libraries (there were two basic libraries, each more than 2 megs in size) would be sourced over and over in the application using all the same functions, but from different versions of the libraries.

    Total nightmare. To date it is by far the most wtf wtf I ever worked on.
  • I hate contractors... (unregistered)

    Surely the real WTF is 50,000+ lines of code over 4 months for an incomplete 14 page web app?!?

  • Time Waster (unregistered)

    I know!  The real WTF is that he made a class and only used it once!

    captcha: perfection

  • tookie tookie (cs) in reply to biziclop

    biziclop:
    And how about a business entity called Package? Looks nice on paper. Much worse when you try to implement it in Java.

    Java won't complain about your Package, just your package

  • tookie tookie (cs) in reply to Satanicpuppy

    Satanicpuppy:

    Total nightmare. To date it is by far the most wtf wtf I ever worked on.

    wtf wtf? Uh oh.

  • merreborn (cs) in reply to R.Flowers
    R.Flowers:
    Mmm... PHP, Apache on a Windows server? Is that right? (Zip, dll...)


    Absolutely.  I've got PHP, Apache and Mysql running on my windows laptop so I can develop when I'm off the net.  Works great.

    Zip, by the way, is not a windows-only format by any stretch.  A quick "man zip" on a debian box shows copyrights dating back to 1990.

    I wouldn't be suprised if our WTF developer developed on a windows box; that doesn't really mean the production server ran in the same environment -- for every .dll PHP extension, there's a matching .so for the linux environment.  As long as you don't do anything stupid, PHP code should be fully portable across OSes.

  • MCG (unregistered) in reply to Bus Raker
    Bus Raker:

    Anonymous:
    Anonymous:
    Oh, and I so much want to play foosball with the girl in the ad on the left column of this site.  She looks like she's having so much fun!

    Yeah I'd like her to play with my foosballs too...

    Pretty crafty add from a software development community.  I mean, what does a hot blonde leaning over a foosball table exposing part of her breasts have to do with software development (i.e. a bunch of single geeks?)

    And I still can't beleive why zip was renamed to zipcode when they simply could have renamed all of the compression references to 'MakeSmaller'



    In the cold confines of the office, she radiates warmth. In the office, we are not allowed to fulfill our animal desires. We are to work. But, she is there. She comforts me.

    captcha is obviously "genius."
  • PaulTomblin (cs) in reply to snoofle
    snoofle:

    A couple of jobs ago, I worked at a place that liked to re-use class names in Java (with ever-so-slightly-different implementations, so they just put them all in slightly differently named packages...

    com.xxx.gui.pkg1.TextEntry;
    com.xxx.gui.pkg2.TextEntry;
    com.xxx.gui.pkg3.TextEntry;
    

    Made for one hell of a time when more than one of them was used in the same file, or when some poor new guy would subclass the wrong one - or both.



    A couple of jobs ago I worked on a project had been started in Australia but development had moved to the company's US office.  I (a Canadian) was working at the US office.  Since we were dealing with digital film compositing, there were classes called "AdjustColour" and "AdjustColor", and "GreyMatte" and "GrayMatte".

    Of course, I came back to the same office a few years later for another contract, and I made the mistake of making a class called TheatreDay, not realizing there was already another one called TheaterDay.


  • IQpierce (cs) in reply to Mihai

    Anonymous:
    "Fortunately, David was able to convince his higher-ups to dump the contractor and finish the application internally. Unfortunately, David was the one assigned to finish it."

    I would say this is the right thing.
    If you advocate for something, then you should be prepared to take it :-)
    Eat your own dog food principle.


    In this case it's also known as the "punish the guy who came up with good ideas for the company" principle.

    He won't make that mistake again!!!

  • PaulTomblin (cs) in reply to tookie tookie
    tookie tookie:

    Java won't complain about your Package, just your package



    Nobody complains about my package.
  • biziclop (cs) in reply to Satanicpuppy
    Satanicpuppy:
    snoofle:

    Anonymous:
    I think this is more of a PHP wtf than a moron contractor wtf. It's another demonstration of how easy it is to screw up in PHP by not naming your {function,class,variable} correctly. Why does everything have to be a function?

    What does everything having to be a function have to do with choosing incredibly bad names? You can make that screw up in *any* language!



    It's only a name problem in PHP. In java, for example, I could make a 'Zip' class anywhere I wanted just by specifing a different namespace. I could make hundreds of them, because in Java, you can say, "The program named zip that is part of this package over here, not any other program that may also be named zip." With a big application that has non-stupid function names, you're going to have repeats, and that language has to be able to deal with that. Most languages can.

    Sure "Zip" is a stupid name, but there are plenty of classes in PHP where the name isn't stupid, but you still have the exact same problem. I've tried to reconcile applications before where I literally had to change a function name in 1000+ places, and this is a problem that is simply not tolerable in a professional quality language.


    See below. Try to create a class called Package. :)
    Yeah, namespaces do help to avoid shooting yourself in the foot but if you try hard enough, eventually you'll succeed. Blaming PHP is all too easy (and fashionable too) but try to think what might have crossed the author's mind when he first saw the error message and decided that the best solution is removing that library.

Leave a comment on “Zippity-Doo-Da”

Log In or post as a guest

Replying to comment #:

« Return to Article