• adam (unregistered)

    Pure Brillance!

  • (cs) in reply to adam

    second!

  • someone (unregistered)

    Third!

  • (cs)

    Awesome, totally awesome.  This reminds me of the example of overengineering at the beginning of Refactoring to Patterns.

  • (cs)

    What they should have done was create one column called 'ContactInfo', make it 'Memo' (if this is Access), then put a contact's data in there in one big XML blob. That way, you don't have to go to all that trouble with forms and classes and extra tables - you just put in another node in the XML.

    (Yes, it's a joke. But I did resist the temptation to invoke 'Brillant' or talk about how they should have used JavaScript.)

  • toxik (unregistered)

    Erm... Sure a WTF.

    Besides the content of this post,
    The real WTF is the forum-time. WTF was posted on 2:30 PM? Oh yeah.

  • Anon (unregistered)

    fist

  • Kaine (unregistered)

    Seems like they need a generic procedure and form to go along with their generic values. Seriously, though, I can think of one reason to edit the genders: to add 'pre-op male', 'pre-op female', 'post-op male', and 'post-op female' to the list. Some hospitals need to keep track of that.

  • Hans Hammer (unregistered)

    I hope this was a fixed-price contract.  I hate to speculate how much the local suburban city hall paid for this application.

  • Ribbly Screwspigot (unregistered) in reply to Kaine

    Is this the same team that designed Active Directory?

    In NT, I mean. Back before they had standards.

     

    See you in the bar,

    Ribbly

  • Colin (unregistered)

    It's like creating SQL within SQL where there's a table for every column and a table for every column's value.

    I'm curious, though, to see how they map attributes to objects or whatever they're using.  I bet that's another WTF all on its own.

  • (cs)

    Maximal customizability is no substitute for having some kind of idea what the application is actually going to store, I would say.

    The customizable gender has something though. Just in case anyone ever comes up with a few new gender classifications...

  • Andrew Magerman (unregistered)

    It's sex. Not gender. Gender is "a distinction of words roughly answering to sex (gram). So, the gender of "La maison" is feminine. Whether a person is a man or a woman is his or her sex. Not his gender.

  • Sum Fag (unregistered) in reply to R.Flowers
    R.Flowers:

    What they should have done was create one column called 'ContactInfo', make it 'Memo' (if this is Access), then put a contact's data in there in one big XML blob. That way, you don't have to go to all that trouble with forms and classes and extra tables - you just put in another node in the XML.

    (Yes, it's a joke. But I did resist the temptation to invoke 'Brillant' or talk about how they should have used JavaScript.)



    No, it's not. A joke is something that at least marginally touches the concept of "humour", which your unfunny shit lacks.
  • (cs) in reply to Arancaytar

    You know, I hate access. It's a common feeling among DBAs and programmers...The damn thing won't let you do anything you really WANT to do.

    However, it's amazing for people who aren't otherwise technically skilled. Everything is drag and drop and very intuitive, you can build (massively inefficient) SQL queries without knowing SQL, you can link tables with a simple drag and drop, and it'll enforce relationships...

    I think their biggest screwup was not in trying to reinvent access, but in reinventing access, poorly. This whole "infinitely extensible" trend is getting out of control. I can give you an extensible system in a few minutes...Modern programming language + Modern Database = extensible system. Now all you need is a few doen people to run it and you're good to go.

  • zamies (unregistered) in reply to Andrew Magerman

    well surely this will cut down enormously  the implementation cost :)
    Maybe they should have invented a new programming language. A framework perhaps :)

    ooh no wait a minute they just did that...


  • (cs)

    This doesn't sound unreasonable.  What gender is a role account?  What gender is Paaaaaaat?

  • Zulu_man (unregistered) in reply to toxik
    Anonymous:
    Erm... Sure a WTF.

    Besides the content of this post,
    The real WTF is the forum-time. WTF was posted on 2:30 PM? Oh yeah.


    You don't live in the Eastern Standard Time Zone?

    Pity.

  • Zulu_man (unregistered) in reply to Satanicpuppy
    Satanicpuppy:
    You know, I hate access. It's a common feeling among DBAs and programmers...The damn thing won't let you do anything you really WANT to do.

    However, it's amazing for people who aren't otherwise technically skilled. Everything is drag and drop and very intuitive, you can build (massively inefficient) SQL queries without knowing SQL, you can link tables with a simple drag and drop, and it'll enforce relationships...

    I think their biggest screwup was not in trying to reinvent access, but in reinventing access, poorly. This whole "infinitely extensible" trend is getting out of control. I can give you an extensible system in a few minutes...Modern programming language + Modern Database = extensible system. Now all you need is a few doen people to run it and you're good to go.


    The ultimate in exstensibility is the Dictionary (pick your favorite).   Every word you're ever going to need is in there.  You just have to drag-n-drop the right ones.  Aye, there's the rub. . .




  • xcor057 (unregistered)

    I think they should have used an enum to represent a GenderStatus within a bit mask.  To account for the PAT situation a tri bool is in order.

    public enum GenderStatus
    {
      Male= 1,
      Female= 2,
      PreOpMale= 4,
      PreOpFemale= 8,
      PostOpMale= 16,
      PostOpFemale= 32,
      Reject = 64,
      Rejected = 128,
      Deleted = 256,
      Removed = 512,
      UnRejected = 1024
    }
    public enum GENDERBOOL
    {
      TRUE,
      FALSE,
      NOT_TRUE_OR_FALSE
    }
     
  • Fark Beans (unregistered)

    x

  • (cs) in reply to xcor057
    Anonymous:

    I think they should have used an enum to represent a GenderStatus within a bit mask.  To account for the PAT situation a tri bool is in order.

    public enum GenderStatus
    {
      Male= 1,
      Female= 2,
      PreOpMale= 4,
      PreOpFemale= 8,
      PostOpMale= 16,
      PostOpFemale= 32,
      Reject = 64,
      Rejected = 128,
      Deleted = 256,
      Removed = 512,
      UnRejected = 1024
    }
    public enum GENDERBOOL
    {
      TRUE,
      FALSE,
      NOT_TRUE_OR_FALSE
    }
     

     

    Fortunately we beat the crap out of this a couple days ago.  A few hundred more posts on the validity of a system based on this would be entertaining to read again though.

     

     

  • Matt (unregistered)

    Actually, this is the way Remedy works.  They have some pre-defined screens and templates, but all the tables are 't93202' with columns 'c392020'.  What these tables and columns mean is kept in a meta-data repository associated with the application.  Also, if you want to join tables you have to create a view, which has obvious problems.  So Remedy tables tend to have an enormous number of columns.

    -Matt

  • (cs) in reply to Fark Beans

    Anonymous:
    Dude, the tribool would have worked fine...    

     

    ahh, sweet sweet memories!! *sniff*

  • (cs)

    I'm going to blow everyone's minds by givin' you all a little knowledge about why having 2 genders sometimes isn't enough.

    I was talking with a friend of mine who works at a U.S. government facility. Apparently they have 3 types of bathrooms you can use: men, women, and gender non-specific. There is such a thriving population of gender reassignments that they had to create a third type of bathroom because the men didn't want a guy with boobs in their bathroom, and the women didn't feel comfortable with the idea either. Scary.

  • Rusty B (unregistered)

     

    all one had to do was ...

    • Create a class for that attribute that allowed for values of the attribute to retrieved, added, deleted, and edited.
    • Create a form to be used to manipulate the class
    • Add the form name and class name to a global constants file
    • Create a values table for the attribute
    • Create a history table for the attribute
    • Add the name and table names to the attributes table
    • Add the name to the the entity-attrribute linking table
    • Add the form name and properties to the and the forms table

    I'm just surprised they didn't develop a management interface to accomodate an end user making these changes rather than a programmer ....

  • (cs) in reply to mrsticks1982

    Hey Alex is there a way to ban an IP from the forums? Maybe think about blocking retards like Fark Beans? Thanks for playing, dumbass.

  • (cs)

    The real WTF is that someone points out the forum's flaws in every single post...

    "Obviously I am not yelling hard enough, or this would be fixed already."

  • Kaine (unregistered) in reply to osp70

    At least it gets away from a potential dangerous situation with booleans: Would males or females be true? It could lead to discrimination by officially stating in the business's software which gender is "seen" as "superior". Imagine how many people would love to be offended over such a nuance! Anyone else dealt with people who look for the least reason to take offense?



    About the hacks:
    Someone set us up a bomb, Fark Beans? These not too well thought out "hacks" don't work as well as you may think. All you have to do is disable inline styles for the page (via the Web Developer Toolbar in Firefox). Too bad for you. All your hack fixes are belong to us.

  • dasmb (unregistered)

    Das here.

    Alex took a few liberties here (my fault -- I never got around to giving him a code snippet or an engaging narrative).  The actual code wasn't that bad and the database schema and abstraction mechanism were quite nice (copied as they were from Visual Studio Magazine).  The "coders who came before me and left under mysterious circumstances" leveraged visual inheritance quite nicely.  The WTF here is application of abstraction, persistence, inheritance and the various layers of indirection involved in these to track one of the most concrete and immutable aspects of humanity.  Even allowing for "null," "indeterminate" and any jokes about alternative behaviors you want, you're still looking at several thousand lines of code to support a handful (really, 2) of values.

    Alex also misstated I left the company over this.  In fact, I stayed on, fixed the program, and made it a whole hell of a lot better.  I left three years later, to work on more exciting stuff.

    dasmb

    Oh, and for a real WTF: I told my wife -- a Marxist anthropologist, and that's Marxism as a social theory, not an economic one -- about this WTF, and she scoffed "You're talking about sex, not gender.  Gender is a social construct and changes frequently...you really should be tracking that."  I guess those guys deserve credit for helping to model our ever changing society.

  • (cs)

    Neat... didn't know the dot net obfuscator could be used on data structures....

  • HelluvaEngineer (unregistered)

    I'd say this system was designed from the start to milk as much money from the local government as possible.

    "Oh, you want to add another field?  No problem.  Of course, that's going to be the standard 20 hours at $120 / hr."

  • dasmb (unregistered) in reply to Rusty B
    I'm just surprised they didn't develop a management interface to accomodate an end user making these changes rather than a programmer ....

    Oh, I and my co-workers added a great deal of this to the baseline system I found this WTF in.  But you have to understand -- this was a very small shop that made its money by selling generic software to many agencies, most of whom didn't even have networks before they got our system requirements.  And most of our customers had very little knowledge of basic windowing, which went hand-in-hand with their simple needs (data entry, data display, search capability).  Some of them were folks who were more comfortable with file folders in a pile on their desk than a shiny new Celeron, but who were forced to use our software by some political agent who thought they were dangerously inefficient (with or without cause).  Therefore, there was rarely both literacy AND desire to customize the application beyond what we delivered.

    As a result, the app did have a large amount of setup -- hours and hours of work produced by a capable installation, customer support and quality assurance team.  They brought the real value to the generic crap we re-wrote -- the meta-program that did as much, if not more, than the program itself in terms of verifying inputs and maintaining real-world processes and display.

    dasmb
  • (cs)

    Honestly, I see nothing wrong with this idea.   Using a full RDBMS to store the data was probably not the right choice, and they certainly could have made it easier to create new objects (e.g. steps 1 and 2 in the list should already exist in generic form; the rest of the steps are database stuff that should be automated by the software; and if they weren't trying to  stuff their already-general-purpose system into a general-purpose database, then they would be less complex).

    But the idea is sound.

  • Randolpho (unregistered)

    Ahh, the perfect example of what happens when you try to over-abastract a system.

    In the words of the imortal Scotty: "The more they try to over-think the plumbing, the easier it is to stop up the drain."

  • (cs) in reply to Kaine
    Anonymous:
    Seems like they need a generic procedure and form to go along with their generic values. Seriously, though, I can think of one reason to edit the genders: to add 'pre-op male', 'pre-op female', 'post-op male', and 'post-op female' to the list. Some hospitals need to keep track of that.


    I work with hospitals too. They typically have as table like this:

    M - Male
    F - Female
    U- Unknown
  • (cs) in reply to reed

    (Or, if the full RDBMS was related, then they could have named things more reasonably and simplified it a bit; another idea would be for the interface to be built based on discovery (introspection) done on the database itself, and used another interface to set up the database for that other program to use.... lots of ways to improve things, but not a pure WTF.)

  • boxmonkey (unregistered) in reply to ferrengi

    I agree with Das's wife. Gender and sex are not the same thing.  

  • (cs) in reply to dasmb

    dasmb:

    <snip>
    dasmb

    Oh, and for a real WTF: I told my wife -- a Marxist anthropologist, and that's Marxism as a social theory, not an economic one -- about this WTF, and she scoffed "You're talking about sex, not gender.  Gender is a social construct and changes frequently...you really should be tracking that."  I guess those guys deserve credit for helping to model our ever changing society.

    Those Marxists! They're loads of fun at parties ...

    :)

  • cadi (unregistered) in reply to Andrew Magerman

    your are not quite right sir.
    (though you would have been one hundred years ago...)

    Anonymous:
    It's sex. Not gender. Gender is "a distinction of words roughly answering to sex (gram). So, the gender of "La maison" is feminine. Whether a person is a man or a woman is his or her sex. Not his gender.

    <FONT style="BACKGROUND-COLOR: #f5f5dc" color=#000000>c.1300, from O.Fr. gendre, from stem of L. genus (gen. generis) "kind, sort, gender," also "sex" (see </FONT><FONT style="BACKGROUND-COLOR: #f5f5dc" color=#000000>genus</FONT><FONT style="BACKGROUND-COLOR: #f5f5dc" color=#000000>); used to translate from Gk. Aristotle's grammatical term genos. As sex took on erotic qualities in 20c., gender came to be used for "sex of a human being," often in feminist writing with reference to social attributes as much as biological qualities; this sense first attested 1963. Gender-bender is first attested 1980, with reference to pop star David Bowie.</FONT>

     

    http://www.etymonline.com/index.php?search=gender&searchmode=none

  • (cs) in reply to dasmb

    Anonymous:
    Das here.
    Oh, and for a real WTF: I told my wife -- a Marxist anthropologist, and that's Marxism as a social theory, not an economic one -- about this WTF, and she scoffed "You're talking about sex, not gender.  Gender is a social construct and changes frequently...you really should be tracking that."  I guess those guys deserve credit for helping to model our ever changing society.

      Sex changes, too. I work in a hospital, and capturing patient data is fun, fun, fun. There's genetic sex, which is different than physiological sex (and can include hermathrodites), and physiological sex can change. What's really fun is date processing. Besides having to handle partial dates, we also handle values such as N/A, Unknown, and Ongoing.

  • (cs)
    Alex Papadimoulis:

    Form:

    [image]

    Database tables:

    ATTRIBS
    ID NAME TABLE HIST_TABLE
    221 Gender ATTRIB_0221 ATTRIB_0221_HIST

    ATTRIB_02
    ID VALUE ACTIVE
    1 Male
    2 Female 1

    TTRIB_0221_HIST
    ID 0221_ID WHAT WHEN
    1 1 Created 2004-03-01 18:22.33
    2 2 Created 2004-03-01 18:22.33



    Shouldn't the creation date of "Female" be a day later than "Male?"  After all, she came from his rib, right?

  • seebs (unregistered)

    I don't see anything odd about wanting to be able to add new gender values.  Not everyone is unambiguously male or female, people sometimes apparently change, and there are circumstances under which you might face lawsuits if you oversimplify.  Might be better to just drop the datum alltogether; unless you're boffing someone, it's generally none of your business.

  • dasmb (unregistered) in reply to HelluvaEngineer

    This company made their name by NOT being one of these sorts of contractors.  In fact, it's really difficult to be that kind of contractor in this space.  Government gets broker as it gets smaller, and we hit the smallest segments.  Villages with 4 digit populations -- some of these agencies had so little money they operated out of a guy's house or had mostly part-time employees.  It's a space in which many, many companies fail, precisely because their software costs too much to customize.  Remember, the budgets for these projects come from the most transparent part of government funding -- property and school taxes -- and thus are under great scrutiny.  Our software would get voted on at town meetings by people who lived in the town and could see the dollar signs, not approved in some rider on some multi-million dollar appropriations bill.

    With our stuff, simple customizations, stuff that fell within program setup were free as part of the service contract.  It was really full-service stuff, and had to be...the up-front cost was usually slashed, with the real money coming from towns that re-upped on their support every year..  It was working pretty well when I left...they had a banner year.

    dasmb

  • Thomas Ammitzb&#248;ll-Bach (unregistered) in reply to Fark Beans
    Anonymous:
    x

    True, true

    Yours xincerely
    Thomas
  • (cs) in reply to Andrew Magerman

    Anonymous:
    It's sex. Not gender. Gender is "a distinction of words roughly answering to sex (gram). So, the gender of "La maison" is feminine. Whether a person is a man or a woman is his or her sex. Not his gender.

    SEX is a verb,

    GENDER is a noun

     

    I disagree with you.

    In addition, my RACE is the same as everyone else: <FONT size=5>HUMAN</FONT>

  • (cs)

    First time I have noticed... one of the posts is 'Locked' - the 'Reply' and 'Quote' buttons are missing. I've heard of locking a thread, but not an individual post.

  • Monkey Trouble (unregistered) in reply to dasmb

    public enum GenderStatus
    {
    Male= 1,
    Female= 2,
    PreOpMale= 4,
    PreOpFemale= 8,
    PostOpMale= 16,
    PostOpFemale= 32,
    Reject = 64,
    Rejected = 128,
    Deleted = 256,
    Removed = 512,
    UnRejected = 1024
    }

    Tee hee hee... never has an "obligitory previousWTF" post been so perfect...

    I get PostOpFemale (32) is the same as Deleted (256)... unless Deleted wasn't an operation, but
    rather, an accident.
    Removed (512) would be... uhm... a tragic misunderstanding over some lipstick stains...

    UnRejected (1024)... I guess that's if it was Rejected (128), but it grew back?

    Oh how I snorted coffee over this one!.... nice.

    Oh, and yeah, the Captcha works like 1 time in 3 on Firefox. ugh...

  • Sam (unregistered) in reply to ParkinT
    ParkinT:

    SEX is a verb,

    GENDER is a noun

    In addition, my RACE is the same as everyone else: <FONT size=5>HUMAN</FONT>

     

    Huh??  Please conjugate the alleged verb "sex"?

    And human (aka homo sapiens) is a species.  Personally, I'm part of the great rat race.;)

  • (cs) in reply to boxmonkey
    Anonymous:
    I agree with Das's wife. Gender and sex are not the same thing.  


    ^^^^^^
    Hippie bullshit

Leave a comment on “The Ultimate Address Book”

Log In or post as a guest

Replying to comment #:

« Return to Article