• airdrik (unregistered) in reply to Nagesh
    Nagesh:
    I'm better than you because I registered :P ha ha and I use color too
    Sarah:
    BlueKnot:
    I like the little red arrow at the top:

    YOU ARE HERE.

    That is not where you are, that is where you NOT want to be... Just like where every other arrow in there is pointing, you do not want to be there..

    If you want to post registered, at least stop pretending not to be a troll.

    FTFY

  • drusi (unregistered) in reply to synp
    synp:
    dgvid:
    3rd Ferguson:
    No offense but a global dependency diagram for any complex system is a silly exercise. ...
    Not entirely. That diagram is potentially useful for explaining to management why it takes so long to add a feature, why we have to do so much testing, why there are bugs, etc.
    No, it's potentially useful for convincing management that we need to rewrite this from scratch with our new favorite tools, and the new methodology of the day.
    No, it's potentially useful for convincing management that the computers can program themselves now and it's as easy as playing with a ball of yarn, so you only need six weeks to roll out the new product.
    backForMore:
    "But Captain why would you"; "Because I can Spock"
    I've never Spocked before.
  • Ryusui (unregistered) in reply to boog

    Na na na na na na na na na na katamari enterprise...

  • Power Troll (unregistered) in reply to derp
    derp:
    .:
    It seems like Brian's tool would be a lot more useful if it spelled out the entire class name instead of just the first letter.

    I don't think that would help, actually.

    Who is Brian?

  • null (unregistered) in reply to G
    G:
    pjt33:
    A graph is planar iff it doesn't (transitively) contain an instance of K5 (the complete graph of 5 vertices) or K3,3 (the familiar graph with three houses and three utility companies). I would expect that very few projects, let alone complex ones, have planar dependency graphs.

    LMFTFY:

    A graph is planar iff it does not contain a subgraph that is homoerotic to K_5 or K_{3,3}...

    There, FTFY

  • free-range user (unregistered) in reply to Nagesh
    Nagesh:
    free-range user:
    Nagesh:
    boog:
    Nagesh:
    boog:
    Because if you don't see the errors, they must be gone.
    If it not broke, why fix it?
    I made no such recommendation; I was mocking the whole "if you don't see errors, they aren't there" silliness. Ever hear of this "data integrity" thing?
    Nagesh:
    For record, I inherit maintenence work on application; did not create it.
    Fair enough; then my still-valid statements apply to your predecessor instead.
    Well, now you're just doing it on purpose!

    !(Deadline > Data Integrity)

    FTFY

    Wow real clever use of the apostrophy mark.

  • free-range user (unregistered) in reply to free-range user

    Wow, messed that up, didn't I?

  • rfoxmich (unregistered)

    We don't have a class dependency diagram like that 'cause we don't need no stinking classes ;-)

  • (cs) in reply to rfoxmich
    rfoxmich:
    We don't have a _class_ dependency diagram like that 'cause we don't need no stinking classes ;-)

    I agree with you on no classes. As matter of fact, I missed every single class on OO, AI, DB Design while in college. When so many movies releasing, it is much more relaxing to spend time in talkies, than spend time in class.

  • Nagesh (unregistered) in reply to anon
    anon:
    Nagesh:
    On our database we have purposely (client request) not maintained any foren key relationships. Make it easier to insert data and also all those peskey errors gone.

    Why don't you allow foreign relationships in your database? Are you some kind of xenophobe?

    I am not xenophobe, we Indians are better than anyone and so is our code. We do not allow relationships with foreigners, only within our own social class, same with our code. At my company we write perfect code so we bypass debugging and testing. We have no errors when our codes compile, so we send it to big clients and make lots of money!

    boog:
    Fats Geronimo:
    Wait...Do you guys think Nagesh is a real person?
    Of course not. Everyone knows that the real Nagesh is unregistered.
    That is right, I am real Nagesh. The other Nagesh is spreading lies and telling secret Indian coding methods. The code today may be some of my code, my company always provide diagrams like that to show client how clever our code is and they always hire us to do maintenance on the code.
  • Pointy Haired Boss (unregistered) in reply to dgvid
    dgvid:
    3rd Ferguson:
    No offense but a global dependency diagram for any complex system is a silly exercise. ...
    Not entirely. That diagram is potentially useful for explaining to management why it takes so long to add a feature, why we have to do so much testing, why there are bugs, etc.

    It looks to me like a useful diagram for explaining that my employees are nincompoops who can't build a nice and simple system that just does what it needs to do, and that I need to replace the lot of them.

  • Nagesh (unregistered) in reply to Nagesh
    Nagesh:
    rfoxmich:
    We don't have a _class_ dependency diagram like that 'cause we don't need no stinking classes ;-)

    I agree with you on no classes. As matter of fact, I missed every single class on OO, AI, DB Design while in college. When so many movies releasing, it is much more relaxing to spend time in talkies, than spend time in class.

    Yes, then you cheat from me on test so you graduate India Code University. Always telling me about the new Bollywood movie you see while I was studying. Then you had sex with my goat! You think I don't know but I found out. I hate you fake registered Nagesh!

    Captcha: laoreet - the noise Nagesh will make when I whip him with his mouse cord

  • teekoo (unregistered)

    I'm pretty sure that somewhere within that circle there is a pentagram...

  • Ã (unregistered) in reply to Nagesh
    Nagesh:
    I am not xenophobe, we Indians are better than anyone and so is our code. We do not allow relationships with foreigners, only within our own social class, same with our code. At my company we write perfect code so we bypass debugging and testing. We have no errors when our codes compile, so we send it to big clients and make lots of money!
    What is this I don't even
  • (cs) in reply to Nagesh
    Nagesh:
    rfoxmich:
    We don't have a _class_ dependency diagram like that 'cause we don't need no stinking classes ;-)

    I agree with you on no classes. As matter of fact, I missed every single class on OO, AI, DB Design while in college. When so many movies releasing, it is much more relaxing to spend time in talkies, than spend time in class.

    This post just gave me a migraine.

  • airdrik (unregistered) in reply to teekoo
    teekoo:
    I'm pretty sure that somewhere within that circle there is a pentagram...
    I did some figuring and there should be 9*74 of them scattered around different places.
  • Graphviz (unregistered) in reply to Uncle Al
    Uncle Al:
    So, I've got to put up the yellow card on this diagram. From looking at it, it's clear that there are areas where tightly coupled portions of the diagram have been located on opposite sides of the circle (for example, that highway running from 8:00 to 1:00). If one uses a dependency diagram tool that allows rearrangement of the diagram to move those zones into proximity with each other, does this diagram continue to look like a ball of yarn; or is that an artifact of a bad layout?

    Mind you, I've got no delusions that this thing isn't a dependency quagmire -- but I suspect that it's not as bad as the diagram makes it look.

    This looks like a job for ....Graphviz!

  • nooooooooooooooooo (unregistered)

    Funny, that looks like our Workflow diagram...

  • JV (unregistered) in reply to nooooooooooooooooo

    Huh. And other MS developers get all pissy when I tell them WWF and BizTak are complete crap.

    Captcha: veniam - A venereal disease contracted in Vietnam.

  • (cs) in reply to Nagesh
    Nagesh:
    Nagesh:
    rfoxmich:
    We don't have a _class_ dependency diagram like that 'cause we don't need no stinking classes ;-)

    I agree with you on no classes. As matter of fact, I missed every single class on OO, AI, DB Design while in college. When so many movies releasing, it is much more relaxing to spend time in talkies, than spend time in class.

    Yes, then you cheat from me on test so you graduate India Code University. Always telling me about the new Bollywood movie you see while I was studying. Then you had sex with my goat! You think I don't know but I found out. I hate you fake registered Nagesh!

    Captcha: laoreet - the noise Nagesh will make when I whip him with his mouse cord

    Madarchod, No student in India has goats. You have been found out.

  • (cs)

    Where's the EnterprisePojoBeanAbstractSessionFactoryManager? :) And of course, it HAS to be version 1.701, it IS Enterprisey after all!

  • Sudo (unregistered) in reply to Spike
    Spike:
    Captcha: nimis
    Captcha jokes are generally pretty lame, but seriously... at least make a joke.
  • Anon (unregistered)

    A massive enterprise project has a lot of dependencies?

    Oh the horror, quick captain hindsight, what should we have done?!

  • I Punch Nerds (unregistered) in reply to Nagesh

    "Talkies"? Did this Naresh grow up during the roaring 20's?

  • The Web is the Root of All Info (unregistered) in reply to CaptainSmartass
    CaptainSmartass:
    If you think that's bad, what about an enterprise application where the dependencies are hidden in various cron jobs, procmail recipes, shell scripts, Perl scripts, PHP scripts, and Java programs, none of which reference each other but all of which depend on the others to run at specific times for specific intervals. I doubt there's a code analyzer alive that could represent this mess visually.

    Been there, debugged that.

    You forgot to mention that the OS is past end of life, there's no source control of any kind, the versions of Perl, PHP, Java, and the Apache Webserver on the server are obsolete, there's only the production server, and the total mess is used to run more than one enterprise application.

  • Nagesh/c (unregistered) in reply to Nagesh

    Were approaching this problem all wrong, seeing how there are obviously a large number of people here named Nagesh, we should come up with a standard naming system. One that is, robust, portable, and efficient. (And fair)

    So, for fairness, "First come first serve" Seems like a good way to handle such a thing. The first person to post on an article is Nagesh1 (We all have a number, that way nobody's name is too ugly.) the second Nagesh2 and so on.

    Of course, this is a fair solution, but not a efficient one, we can hypothesise that there are far more then just three people named Nagesh here, and after nine we'll hit double digits, and after double digits we'll be in the hundreds, it'll be impossible to keep track of, so, to make the standard efficient, we'll use the alphabet instead, each time a new Nagesh object (Person) is created, we'll append a letter to the end.

    Thus, the first Nagesh will be Nagesha and the second will be Nageshb, and so on respectively. Of course, this system is efficient and fair, but not robust, after all, how could an outside observer tell that there's a system at all if there's just random letters at the end of our names? They couldn't, plus, it'll be an eye sore once we go past z and start using more then one letter.

    Because of this, we'll have to separate Nagesh from it's letter denomination, so now the first Nagesh to post will be Nagesh/a and the second to post will be Nagesh/b, and so on for the rest of the people who post that happen to be named Nagesh. Of course, this system is fair, robust, and efficient, but it's not portable yet, don't worry, not a problem.....

    PS. I'm pretty sure I can code, Poe's law is in full effect here.

  • (cs)

    I suppose these guys are having kittens the deployment day.

  • Karl Jorgensen (unregistered)

    Being pendantic, but here goes...

    Is the small picture really the box shown on the big picture? The angle looks wrong...

    Perhaps the zoomed-in version comes from slightly further anti-clockwise?

  • Kempeth (unregistered)

    That looks like a petri dish with some kind of developer eating disease...

  • Randy Snicker (unregistered) in reply to boog
    boog:
    It only looks this bad because the classes are arranged in a circle. Now if you arranged them in the shape of an anglerfish...

    That way you'd get an evenly coloured shape. ..with maybe a couple of holes for eyes..

  • Anonymous (unregistered) in reply to Karl Jorgensen

    Finally someone notices. The zoomed area is not from where it is claimed to be from. My guess is that it is from the point a few minutes clockwise.

  • OMGWTFJON (unregistered)

    Well yeah, anything looks bad naively arranged in a circle. Run a genetic arrangement algorithm with the fitness function set to minimize total length of the connections, and it might turn into something a bit more recognisable.

  • Randy Snicker (unregistered) in reply to drusi
    drusi:
    backForMore:
    "But Captain why would you"; "Because I can Spock"
    I've never Spocked before.
    You never Captain if you can Spock.
  • Starkiller (unregistered)

    No real WTFs today then, just like last week. Woo hoo, a dependency diagram. Don't you retards realise that any dependency diagram for any sufficiently complex system will look a lot like this? Stop fucking around with crappy "articles" that aren't even articles (I'm sorry but a single JPG does not an article make) and do some real fucking work you lazy cunts.

  • (cs)

    There's a very good reason the dependency graph looks like that. Hint: It's a bit of a dark art.

    [image]

    CAPTCHA: Deruspicy - reading code like entrails to predict possible execution outcome.

  • Bas (unregistered) in reply to derp

    That anglerfish looks a lot worse because of the link to "system" or to "generics", can't really make it out. Either way it's in the .NET framework, and virtually every class is dependant on those.

  • SCB (unregistered) in reply to Design Pattern
    Design Pattern:
    Anonymous Theorist:
    3rd Ferguson:
    Fair point. Lacking such a diagram, I explain those things by saying "The computer can do anything--and I mean anything--with the information and tools it has. The hardest thing about what I do is making the machine only do what you want."

    which subset of "anything" includes determining whether it will go into an infinite loop?

    To be fair to 3rd Ferguson, he did not say how long the computer will run (and his boss didn't set a limit so far).

    Testing if a computer will go into an infinite loop is fairly trivial is the memory of the computer is limited (like it is for all normal computers) and the input data is of limited length and known in advance.

    However for this to be a practival approach the memory and the input data must be a limited to only a handful of bytes, or the program may run very, very, very long.

    CAPTCHA: erat - A rodent that was created in the marketing department of a Web1.0 company.

    You missed his point. It was a reference to The Halting Problem.

  • Someone who can't be bothered to login from work (unregistered) in reply to C-Octothorpe
    C-Octothorpe:
    Nagesh:
    Is there some tool you can run to produce this? I am not familiar with it. I can try and do the same on some of our apps.

    On our database we have purposely (client request) not maintained any foren key relationships. Make it easier to insert data and also all those peskey errors gone.

    I'm in a similar situation where none of the tables have relationships, have about 6 different naming conventions, and about 1/3 isn't being used anymore, maybe (and I'll let you guess which tables those are). Oh, and I'll make the code so archaic in design (if you can call it that), that it makes you want to beat the original developer with a book on programming. Oh, and the most funnest part, about 60% of the database access is done via string contatenation. Oh, oh oh, AND formatting is done at the DB-access level, meaning that calling the data access classes returns you formatted HTML...

    Don't worry guys, I've already started compiling a list of [s]fecal[s/] code samples for submission soon. I just want a few more, and to anonymize it.

    Here's a taste: a "User" object, traditiionally stored in session, actually exists as a public static variable in some base class. It's used as a session object for the currently logged in user...

    Oh, and if it wasn't obvious, it's a web application (ASP.NET).

    /rant

    If it make you both feel any better, I am in the same situation. Our database has no explicit foreign key constraints; just implicit ones.

    You can delete data with impunity and never have to worry about pesky things like whether the logical parent record exists in another table.

  • Design Pattern (unregistered) in reply to SCB
    SCB:
    Design Pattern:
    Testing if a computer will go into an infinite loop is fairly trivial if the memory of the computer is limited (like it is for all normal computers) and the input data is of limited length and known in advance.
    You missed his point. It was a reference to The Halting Problem.
    You missed my point. From the wikipedia article:
    The difficulty in the halting problem lies in the requirement that the decision procedure must work for all programs and inputs. ... The halting problem is theoretically decidable for linear bounded automata (LBAs) or deterministic machines with finite memory. A machine with finite memory has a finite number of states, and thus any deterministic program on it must eventually either halt or repeat a previous state.

    Stupid Akismet, there's not even a link in my article, so why do you believe it is spam?

  • Eddie (unregistered)

    Looks like the design for Van Halen's guitar

  • Everyone Born in the Last 30 Years (unregistered) in reply to Eddie
    Eddie:
    Looks like the design for Van Halen's guitar
    WTH is a "Van Halin?"
  • C-Octothorpe (unregistered) in reply to Someone who can't be bothered to login from work
    Someone who can't be bothered to login from work:
    C-Octothorpe:
    Nagesh:
    Is there some tool you can run to produce this? I am not familiar with it. I can try and do the same on some of our apps.

    On our database we have purposely (client request) not maintained any foren key relationships. Make it easier to insert data and also all those peskey errors gone.

    I'm in a similar situation where none of the tables have relationships, have about 6 different naming conventions, and about 1/3 isn't being used anymore, maybe (and I'll let you guess which tables those are). Oh, and I'll make the code so archaic in design (if you can call it that), that it makes you want to beat the original developer with a book on programming. Oh, and the most funnest part, about 60% of the database access is done via string contatenation. Oh, oh oh, AND formatting is done at the DB-access level, meaning that calling the data access classes returns you formatted HTML...

    Don't worry guys, I've already started compiling a list of [s]fecal[s/] code samples for submission soon. I just want a few more, and to anonymize it.

    Here's a taste: a "User" object, traditiionally stored in session, actually exists as a public static variable in some base class. It's used as a session object for the currently logged in user...

    Oh, and if it wasn't obvious, it's a web application (ASP.NET).

    /rant

    If it make you both feel any better, I am in the same situation. Our database has no explicit foreign key constraints; just implicit ones.

    You can delete data with impunity and never have to worry about pesky things like whether the logical parent record exists in another table.

    Right, until you try to join on them, which is where I am now experiencing a bug that never showed up in testing... Without constraints, it's not a matter of IF your data will eventually be shit, it's just a matter of WHEN, and when the code that is used to manage these relationships is written like this:

    C-Octothorpe:
    string someStringVal = "whatever"; string otherString = (string)someStringVal.ToString();

    ... then it tends to happen much sooner than later.

  • dadasd (unregistered) in reply to Everyone Born in the Last 30 Years
    Everyone Born in the Last 30 Years:
    Eddie:
    Looks like the design for Van Halen's guitar
    WTH is a "Van Halin?"

    Wait, what?

  • Brazilian Rooker (unregistered) in reply to Everyone Born in the Last 30 Years
    Everyone Born in the Last 30 Years:
    Eddie:
    Looks like the design for Van Halen's guitar
    WTH is a "Van Halin?"
    Music your parents listened to before everyone got fat.
  • DWalker (unregistered) in reply to operagost
    operagost:
    IPV6 is doomed if we start assigning IP addresses to these dependencies.

    Maybe you were being sarcastic, but aren't there enough IPv6 addresses to give every atom in the universe its own IP address? I know there are enough GUIDs to do that, and I think IPv6 addresses are the same length. So, no, that wouldn't use up all of the IPv6 addresses. Still, it's a pretty complicated diagram...

  • DWalker (unregistered) in reply to C-Octothorpe
    C-Octothorpe:
    Without constraints, it's not a matter of IF your data will eventually be shit, it's just a matter of WHEN, ...

    We get some data that includes client transactions, client names, account information, etc. Sometimes the transactions come before the client and account information. Sometimes the transaction information is correct but the client or account info has the account number slightly wrong (it might have been hand-entered at some point in the chain).

    We don't want to reject the transactions just because the client doesn't exist yet -- we usually get the correct client information eventually. And, in cases when it's important, we can figure out who the client was. It's not always important (the aggregate information is still valid even if we don't know what clients a few of the transactions should be linked to).

    So, we can't enforce referential integrity, and our database is not COMPLETELY shit, just partly. :-)

  • Everyone Born in the Last 30 Years (unregistered) in reply to Brazilian Rooker
    One who can't be named:
    Everyone Born in the Last 30 Years:
    Eddie:
    Looks like the design for Van Halen's guitar
    WTH is a "Van Halin?"
    Music your parents listened to before everyone got fat.
  • Everyone Born in the Last 30 Years (unregistered) in reply to Everyone Born in the Last 30 Years
    Someone who wants to appease Askimet:
    What got Askimet all riled up? Maybe you're comment was spam. Maybe it wasn't. Perhaps if I was written by a professional, I wouldn't give out false positives. Askimet...askimet...askimet...trwtf. Oh, what fun it is to try to comment on the forumns, hey! Askimet, askimet, what exactly is your major malfunction. What does it take to get something posted on thedailywtf.com forumns today?
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div></BLOCKQUOTE>
    
  • Everyone Born in the Last 30 Years (unregistered)
    Someone who wants to appease Askimet:
    What got Askimet all riled up? Maybe you're comment was spam. Maybe it wasn't. Perhaps if I was written by a professional, I wouldn't give out false positives. Askimet...askimet...askimet...trwtf. Oh, what fun it is to try to comment on the forumns, hey! Askimet, askimet, what exactly is your major malfunction. What does it take to get something posted on thedailywtf.com forumns today?
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div></BLOCKQUOTE>
    

    Led Zepplin

  • Everyone Born in the Last 30 Years (unregistered)
    Someone who wants to appease Askimet:
    What got Askimet all riled up? Maybe you're comment was spam. Maybe it wasn't. Perhaps if I was written by a professional, I wouldn't give out false positives. Askimet...askimet...askimet...trwtf. Oh, what fun it is to try to comment on the forumns, hey! Askimet, askimet, what exactly is your major malfunction. What does it take to get something posted on thedailywtf.com forumns today?
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div></BLOCKQUOTE>
    

    Van Halen and Led Zeppelin

Leave a comment on “Enterprise Dependency: Big Ball of Yarn”

Log In or post as a guest

Replying to comment #:

« Return to Article