Stuff I couldn't post while at WTF-Inc



  • Whomever created the system in the first place started writing a coding requirements document. I stumbled upon it a while back. Since they were still there when I was there, I couldn't post the details as it would have been easily traceable back to me. Now that I've moved on, I thought I'd share...

    Generally speaking, you can insulate your application from the specifics and/or quirks of a 3rd party library by writing a wrapper layer in order to simplify migrating to a competing library down the road as vendors leap-frog each other in capability. However...

    Requirements: Do NOT use stored procedures as they let you use syntax that is Oracle-specific, and this will complicate migrating to a different database vendor in the future.

    The developers obeyed, and put all their SQL - including all manner of stuff using Oracle-specific extensions - directly into their code. Should a DB migration ever materialize, they won't be able to just have DBAs search all the stored procedures for anything that's non-standard. Now, it will have to be done by developers on countless projects searching through countless source trees.

    Requirements: No database constraints will be used in production systems because they cause performance issues; all data integrity must be enforced in code.

    Naturally, as the system grew in complexity, this became increasingly difficult to maintain, let alone enforce. As such, they created constraints in the DB. And left the ever-diminishing validation scattered throughout the codebases. Of course, nobody ever bothered to figure out how to age off data, so it just grew, and grew, and grew, until tables like this:

      create table XyzXref as (
         idFromTableA number(38,0) not null,
         idFromTableB number(38,0) not null
      );
    

    create index theIndex on (idFromTableA, idFromTableB);

    got so big (> 2TB) that doing an index scan was as bad as a table scan, and took a very long time, thus impacting performance to the point of it being severely noticeable.

     



  • Proving once again the the TRWTF was that you stayed as long as you did.

    @snoofle said:

    Requirements: No database constraints will be used in production systems because they cause performance issues; all data integrity must be enforced in code.
    Yeah lets ignore the capabilities of the 3rd party software we bought, because we can implement them better! lololololol.

     


  • Considered Harmful

    I guess ACID means nothing at WTF Inc.



  • @snoofle said:

    Requirements: No database constraints will be used in production systems because they cause performance issues; all data integrity must be enforced in code
     

    I would never even work on the project if that was a requirement :p

     



  • Requirements: No database views will be used in production systems because they cause performance issues; code must query individual tables.

    Requirements: No database joins will be performed in production systems because they cause performance issues; all data access filtering must be performed in code.

    Requirements: No database will be used in production systems because they all have performance issues; all data persistence must be performed in code.

    Requirements: No binary storage formats will be used for data persistence because they cause interoperability issues; all binary data must be Base64 encoded and stored as XML.



  • @flabdablet said:

    Requirements: No database views will be used in production systems because they cause performance issues; code must query individual tables.

    Requirements: No database joins will be performed in production systems because they cause performance issues; all data access filtering must be performed in code.

    Requirements: No database will be used in production systems because they all have performance issues; all data persistence must be performed in code.

    Requirements: No binary storage formats will be used for data persistence because they cause interoperability issues; all binary data must be Base64 encoded and stored as XML.

    Requirements: No java classes will be compiled using compilers because they have the possibility of bugs; all compilation must be done by hand.



  • @Sidebar WTF standard requirements document said:

    Requirement: No database views will be used in production systems because they cause performance issues; code must query individual tables.

    Requirement: No database joins will be performed in production systems because they cause performance issues; all data access filtering must be performed in code.

    Requirement: No database will be used in production systems because they all have performance issues; all data persistence must be performed in code.

    Requirement: No binary storage formats will be used for data persistence because they cause interoperability issues; all binary data must be Base64 encoded and stored as XML.

    Requirement: No java classes will be compiled using compilers because they have the possibility of bugs; all compilation must be done by hand.

    Requirement: No Java bytecodes will be used because they cause performance issues; the target of all hand compilation must be native code.

    Requirement: No dynamic libraries will be used because they cause versioning issues; all code must be statically linked.

    Requirement: No source code control systems will be used because they are confusing; all source code must be kept in read-only, version numbered folders on a shared drive.



  • @snoofle said:

    got so big (> 2TB) that doing an index scan was as bad as a table scan,
     

    :O



  • @flabdablet said:

    Requirement: No source code control systems will be used because they are confusing; all source code must be kept in read-only, version numbered folders on a shared drive.
     

    codefile_2_new_johnny_20130826.asp.old.bak



  • @snoofle said:

    Requirements: Do NOT use stored procedures as they let you use syntax that is Oracle-specific, and this will complicate migrating to a different database vendor in the future.

    @snoofle said:

    Requirements: No database constraints will be used in production systems because they cause performance issues; all data integrity must be enforced in code.

    That alone suggests that the requirements were drawn up by a coder, and not by an architect - or at least someone who has understanding of how databases work.

    Granted, constraints will cause performance issues. But the overhead is minor compared to the business impact of not using them...



  • @joe.edwards said:

    I guess ACID means nothing at WTF Inc.

    IDK, sounds like acid had a lot to do with WTF Inc ...



  • @Ben L. said:

    Requirements: No java classes will be compiled using compilers because they have the possibility of bugs; all compilation must be done by hand.

    You would need to clarify if this applies to the process of transforming the source code in byte code (build) or to the process of transforming byte code in machine code (JIT). Manual compilation in both situations can be a good way to avoid compiler bugs, but doing manual JIT compilation does require that a compilation team is available at all time when the application is running, which can offset the benefits of the process especially if there is only a small delta between the cost of programmers and manual compilation specialists. In any event it would also be a good idea to queue JIT compilation using a stateful queue client so the compilation team can take bathroom breaks without requiring an additional layer of scheduling.



  • Ronald: Killer of Jokes!



  • @flabdablet said:

    @Sidebar WTF standard requirements document said:
    <snip>

    Guys! Guys! May I remind you that we have a format for Side Bar WTF Directives:

    Directive 595 Part 42 is as follows.

      "Database views cause performance issues, more
       costly evolution, inhibit the use of the database acting as a
       service to applications and make it an inhibitor to evolution."

    As such, please remove from all production databases, code must query individual tables.

     



  • Requirement: Code can cause performance issues and can be costly to maintain. Remove all code from production. All calculations must be done by asian kids using abacuses.


  • Trolleybus Mechanic

    @mott555 said:

    Requirement: Code can cause performance issues and can be costly to maintain. Remove all code from production. All calculations must be done by asian kids using abacuses.
     

    Requirement: Asian kids have started to garner the attention of human rights activists, and can be costly to maintain. All calculations should be done by Indian kids.



  • @Lorne Kates said:

    Requirement: Asian kids have started to garner the attention of human rights activists, and can be costly to maintain. All calculations should be done by Indian kids.
    Eliminating Asian kids also excludes Indian kids.

    Indians are Asians. So are Afghans, Armenians, Azerbaijanis, Iranians, Iraquis, Israelis, Saudis, Syrians, many Russians and Turks, and a lot of other nationalities who don't have epicanthic folds and somewhat yellowish skin pigmentation.

    Unless you were refering to American indiginous peoples, in which case never mind.</pedantic_dickweed_troll>

     


  • Considered Harmful

    @HardwareGeek said:

    Eliminating Asian kids

    You know who else tried to eliminate Asian kids? Barack Obama.


  • Trolleybus Mechanic

    @HardwareGeek said:

    Indians are Asians.

    Are you saying they all look alike to you, you racist?

    Asians are the ones who eat Kung Pao chicken. Indians are the ones who eat curry.

    @HardwareGeek said:

    Unless you were refering to American indiginous peoples

    WTF are you talking about? The original Americans? Pioneers? You're confusing.


  • Considered Harmful

    @Lorne Kates said:

    WTF are you talking about? The original Americans? Pioneers? You're confusing.

    He's obviously talking about Lamanites, Nephites, Jaredites, and Mulekites.



  • @Lorne Kates said:

    Asians are the ones who eat Kung Pao chicken. Indians are the ones who eat curry.
    I eat both. What does that make me?

    @Lorne Kates said:

    @HardwareGeek said:
    Unless you were refering to American indiginous peoples
    WTF are you talking about? The original Americans? Pioneers? You're confusing.
    I'm talking about the people Columbus called Indians because he thought he was in India. He was, of course, about as far from India as it is possible to be without leaving the Earth.

     



  • @Lorne Kates said:

    WTF are you talking about? The original Americans? Pioneers? You're confusing.

     

    Indigenous peoples of the Americas, aka "Indians".


    Did I miss a joke?



  • @anonymous235 said:

    Did I miss a joke?
    Yes. At least I think it was intended to be one. It wasn't as funny as the first part of his post.

     



  • Feathers not dots?


  • Trolleybus Mechanic

    @HardwareGeek said:

    @Lorne Kates said:
    Asians are the ones who eat Kung Pao chicken. Indians are the ones who eat curry.
    I eat both. What does that make me?
     

    Hitler.

     


  • Trolleybus Mechanic

    @HardwareGeek said:

    @anonymous235 said:

    Did I miss a joke?
    Yes. At least I think it was intended to be one. It wasn't as funny as the first part of his post.

     

    Sorry, my mistake. I meant to say "WTF are you talking about? The original Americans? Those are called Pioneers. You're confusing."

    Christopher Columbus may have found America, but it was the fine people of the Mayfield who first landed on the shores proper and populated the barren land.

     



  • @Lorne Kates said:

    @HardwareGeek said:
    What does that make me?
    Hitler.
    I have German ancestry. I look "Aryan." I have a mustache. Oh, dear.

     



  • @Lorne Kates said:

    but it was the fine people of the Mayfield who first landed on the shores proper and populated the barren land.
    I'm going to give you the benefit of the doubt and assume that was just a typo, or a momentary brain fart, or something, but since those were my people (I don't remember off-hand whether is was a direct ancestor, or just a great-great-whatever-uncle, or something), I'll remind you anyway that it was the Mayflower.

     


  • Trolleybus Mechanic

    @HardwareGeek said:

    @Lorne Kates said:

    but it was the fine people of the Mayfield who first landed on the shores proper and populated the barren land.
    I'm going to give you the benefit of the doubt and assume that was just a typo, or a momentary brain fart, or something, but since those were my people (I don't remember off-hand whether is was a direct ancestor, or just a great-great-whatever-uncle, or something), I'll remind you anyway that it was the Mayflower.
     

    Citation?

     


  • Considered Harmful

    @HardwareGeek said:

    @Lorne Kates said:

    but it was the fine people of the Mayfield who first landed on the shores proper and populated the barren land.
    I'm going to give you the benefit of the doubt and assume that was just a typo, or a momentary brain fart, or something, but since those were my people (I don't remember off-hand whether is was a direct ancestor, or just a great-great-whatever-uncle, or something), I'll remind you anyway that it was the Mayflower.

     


    Wait, this means blakey's sig is right.



  • @joe.edwards said:

    Wait, this means blakey's sig is right.

    							    <span id="ctl00_ctl00_bcr_bcr_ctl00_PostList_ctl31_ctl23_ctl01">Filed under: <a href="http://forums.thedailywtf.com/tags/Humor+impaired/default.aspx" rel="tag">Humor impaired</a></span></blockquote>Yeah, ok, I missed that the misnaming was deliberate as part of the somewhat successful humorous intent of the rest of the post.<br></p><p>&nbsp;</p>


  • @HardwareGeek said:

    Indians are Asians. So are Afghans, Armenians, Azerbaijanis, Iranians, Iraquis, Israelis, Saudis, Syrians, many Russians and Turks, and a lot of other nationalities who don't have epicanthic folds and somewhat yellowish skin pigmentation.
    Japanese, however, are not Asian because their country is on a group of islands, not on the continent of Asia itself.  Some Japanese are even rather militant about this point.

    And for the person who brought up Aryan, look it up some time.  In its uncorrupted sense, it referred to people from India.



  • @da Doctah said:

    @HardwareGeek said:
    Indians are Asians. So are Afghans, Armenians, Azerbaijanis, Iranians, Iraquis, Israelis, Saudis, Syrians, many Russians and Turks, and a lot of other nationalities who don't have epicanthic folds and somewhat yellowish skin pigmentation.
    Japanese, however, are not Asian because their country is on a group of islands, not on the continent of Asia itself. Some Japanese are even rather militant about this point.
    Wikipedia would disagree, but I intentionally did not include any island nations in the list.

    @da Doctah said:

    And for the person who brought up Aryan, look it up some time.  In its uncorrupted sense, it referred to people from India.
    Thus the scare quotes.

     



  • @blakeyrat said:

    Ronald: Killer of Jokes!

    nah, I'm more into recycling, taking low value material and making a masterpiece out of it. Like people who make MacQuariums.


  • Discourse touched me in a no-no place

    @HardwareGeek said:

    Indians are Asians. So are Afghans, Armenians, Azerbaijanis, Iranians, Iraquis, Israelis, Saudis, Syrians, many Russians and Turks, and a lot of other nationalities who don't have epicanthic folds and somewhat yellowish skin pigmentation.
    Unless you're a UK newspaper, where "Asian" is a codeword for "Muslim" and used whenever they don't want to mention the M word.


Log in to reply