• byte_lancer (cs)

    Why does this look so familiar to me ?

    Oh wait, my boss sees this everyday and he calls it FUI (Funny UI) . And we're supposed to be 'rearchitecting' this.

    Good UI, like good security is not an afterthought. 

  • YourMother (unregistered)

    This is (sadly) a really common wtf.  I guarantee that, in the several thousand line case statement, the order in which the individual controls are shown/hidden is critically important.

     

  • mareck (unregistered)

    Best WTF in months. Actually, my heart paused for a moment.

  • halcyon (cs) in reply to YourMother

    That reminds me of some of the early VB programms I wrote when I was 14. So, where do I apply?

  • l1fel1ne (unregistered)

    Try explaining how layers work in photoshop to the clueless... suddenly the origin of this comes to light!

  • Whiskey Tango Foxtrot? Over. (at work) (unregistered)

    Boy, I sure hope Tom did the smart consulting thing and set the project up as open-ended hourly. 

    He could re-factor the whole program for quite a pretty penny...

  • skippy (cs)
    Alex Papadimoulis:

    In order to change the text of a sub-heading (as Tom was required to do) or properties of any control, all of the overlapping controls must be carefully dragged off, put aside, and dragged back in the exact same place.

    At this point, I would be opening the resource files, or whatever file format is used to store the data and manually search for the text in question.  I wouldn't care how complicated the file format is (even binary), I'm sure that would be easier and less prone to mistakes than dragging around dozens of controls.  grep and strings are your friends 

  • s0d (unregistered)

    Before I read the article, I thought I had a Firefox display issue when I saw this image (open www.united.com in FF). LOL - I thought the folks I used to work with were dense when I tried to tell them that the four different strings they populated a label with should be stored in a resource file, and not inline in the code...

  • David (unregistered) in reply to l1fel1ne
    Anonymous:

    Try explaining how layers work in photoshop to the clueless... suddenly the origin of this comes to light!

    You don't need to explain layers! They're called layers! They act like layers! I have no idea how one would even go about explaining them to someone so boneheaded they couldn't figure it out themselves. But I'm guessing that that was exactly the person who created the UI...

  • ammoQ (cs)

    I have problems to understand why anyone would want to use a WYSIWYG design mode on such an application at all. As previously stated, it's obviously a job for a text editor, resource editor, hex editor or whatever is the right tool for a surgeon. Doing anything usefull in design mode is like trying a heart transplantation by massage.

  • GalacticCmdr (cs)

    Ah, growth and change by simply adding on top of the existing crap. Over the years you are left with a festering pyramid of crap so large that will drive programmers to take simple jobs like "would you like fries with that."

     

  • Bradlegar the Hobbit (unregistered) in reply to skippy
    skippy:
    Alex Papadimoulis:

    In order to change the text of a sub-heading (as Tom was required to do) or properties of any control, all of the overlapping controls must be carefully dragged off, put aside, and dragged back in the exact same place.

    At this point, I would be opening the resource files, or whatever file format is used to store the data and manually search for the text in question.  I wouldn't care how complicated the file format is (even binary), I'm sure that would be easier and less prone to mistakes than dragging around dozens of controls.  grep and strings are your friends 

    I agree. One would be insane to try and modify the screen using the GUI. I'd be surprised if the files written by the IDE weren't human-readable. There are times when GUIs just aren't the way to go, and it's at these times that old UNIX hands have an advantage.

    Captcha: clueless (SELECT * FROM users WHERE clue > 0 ... 0 row(s) returned)

  • SP (unregistered) in reply to GalacticCmdr

    How about "would u like internationalization with that"?

  • its me (cs) in reply to s0d

    Anonymous:
    Before I read the article, I thought I had a Firefox display issue when I saw this image (open www.united.com in FF). LOL -

     You might want to update your FF (or perhaps united.com got a clue) www.united.com looks fine in my firefox (v1.5.0.7)

    -Me
     

  • its me (cs)

    Ok, I don't get it, what's this thing written in? Even if the only tool you have/can think of is the visual GUI designer, can't you still select a control by name? Of course now that this guy is a consultant, unless he screwed himself by agreeing to a fixed-price bid, he should analyze the time it will take to at least put this crap into managable containers or sub-controls and include that in his schedule!

    -Me

    BTW, Is it just me or is the forum software now much more FireFox friendly? Firebug isn't reporting any script errors as I write this, and it's usually two errors per character!

     

  • Alien426 (unregistered) in reply to s0d

    Anonymous:
    Before I read the article, I thought I had a Firefox display issue when I saw this image (open www.united.com in FF).

    Oh gosh! When such a small page opens 36 script tags, you know there's something very wrong.

    To the guys who suggest a resource editor: good luck trying to find out what number your desired "Txttextinput##" is...

  • Hubert Farnsworth (cs) in reply to its me
    its me:

    Anonymous:
    Before I read the article, I thought I had a Firefox display issue when I saw this image (open www.united.com in FF). LOL -

     You might want to update your FF (or perhaps united.com got a clue) www.united.com looks fine in my firefox (v1.5.0.7)

    -Me

    At least without Javascript it has a slight resemblance to the image up there. 

    -- outing myself as a noscript user ;-)
  • Mike R (cs)

    Hmm. Why does this look painfully familiar.

    ... I know: This appears to be a well accepted convention by VB developers everywhere. (And, apparently FoxPRO developers, too!)

     I've had the "pleasure" of working on several of these applications. Totally blows my mind that anyone, in the process of creating a mess like this could think, "This seems like the best way to do this"

  • Simply the J (unregistered)

    This is exactly why I am not a GUI person.

  • meow (unregistered) in reply to its me

    www.united.com is still messed up in ff (?!?)

  • snoofle (cs) in reply to Simply the J

    Anonymous:
    This is exactly why I am not a GUI person.

    I too, am not really a GUI person. However, some years back, I had the, ahem, pleasure, of building a foxpro app for a friend. In the report builder, things that were laid out nicely when the app was running would tend to overlay each other (beacuse of all of the extra stuff necessary to use the report builder) - even when the fields didn't were merely near each other. I finally got fed up with the GUI builder, snooped around to figure out the format of the resources under the hood, and wrote a C program to just hack the data structures to give me what I needed.

    BTW: did all of those fields render with the fields closer to the front obscurring the ones in the back, or did the mother-of-all-if-statements just render what was needed? It must have taken forever to manage and render...

  • MyName (unregistered) in reply to Simply the J

    Anonymous:
    This is exactly why I am not a GUI person.

     Actually, the fact that you can tell there's something wrong with this approach is exactly why you should be a GUI person.

  • no name (unregistered) in reply to Alien426
    Anonymous:

    Anonymous:
    Before I read the article, I thought I had a Firefox display issue when I saw this image (open www.united.com in FF).

    Oh gosh! When such a small page opens 36 script tags, you know there's something very wrong.

    To the guys who suggest a resource editor: good luck trying to find out what number your desired "Txttextinput##" is...

     

    That would be why someone mentioned grep. If the backing files are text, you're talking a 5 minute job.  If they're binary it'll depend on the format, but most likely still less than using the gui.

     

  • duh (unregistered)

    Anonymous:
    You're right - my bad. I'm running NoScript and it's causing the display issue. I didn't realize that to correctly view a page served by united.com, I'd have to allow scripts served by akamai.net permission to run (in addition to the scripts served by united.com)... If the akamai scripts are not allowed to run, the links in the pop up menus show up as text links underneath the three-tabbed-widget that includes the fare finder etc.


    Adblock does the same. 

  • growse (cs)

    Of course, the correct way to code a GUI with a visual tool is to just drag components into any old random place and then set their location properly yourself in the code. Much easier, and more precise.

  • snoofle (cs) in reply to no name
    Anonymous:
    Anonymous:

    Anonymous:
    Before I read the article, I thought I had a Firefox display issue when I saw this image (open www.united.com in FF).

    Oh gosh! When such a small page opens 36 script tags, you know there's something very wrong.

    To the guys who suggest a resource editor: good luck trying to find out what number your desired "Txttextinput##" is...

    That would be why someone mentioned grep. If the backing files are text, you're talking a 5 minute job.  If they're binary it'll depend on the format, but most likely still less than using the gui.

    Every system (*nix, PC's, etc.) has a hex editor  with a string-search capability - really not that hard if you understand what you are doing...

  • Bill (unregistered) in reply to its me
    its me:

    Ok, I don't get it, what's this thing written in? Even if the only tool you have/can think of is the visual GUI designer, can't you still select a control by name? 

    You could in Visual Basic.  Changing the properties of stacked controls can be done entirely through the Property window. 

     

  • its me (cs)

    Anonymous:

    You're right - my bad. I'm running NoScript and it's causing the display issue. I didn't realize that to correctly view a page served by united.com, I'd have to allow scripts served by akamai.net permission to run (in addition to the scripts served by united.com)... If the akamai scripts are not allowed to run, the links in the pop up menus show up as text links underneath the three-tabbed-widget that includes the fare finder etc.

    I can see why people want to run with scripting disabled, but for me it just makes it far too hard to use the web. Seems most sites I visit rely on scripting, and with new techniques like AJAX growing in popularity I don't see it as a trend that will subside.... Of course from work I'm not exactly going to too many dangerous sites (unless you count thedailyWTF.com ;) ) 

    -me
     

  • XMLord (unregistered)

    My instinct was to open IE just to make sure this isn't some incompatability with FireFox.

     

    Still, I've seen worse. In fact, I've maintained worse.

  • endergt (cs) in reply to snoofle
    snoofle:

    Every system (*nix, PC's, etc.) has a hex editor  with a string-search capability - really not that hard if you understand what you are doing...

     

    Out of curiosity - what is the hex editor on a default Windows installation? 

  • Mike (unregistered)

    Reminds me of my first job, back in 1995. It was just before Win95 was released, and we were using VB3 and Windows for Workgroups 3.11. We wanted a tabbed interface, but there was a limit to the number of window handles that could exist simultaneously. Our solution: when a user clicked a particular tab, we destroyed all the controls on the current tab, then dynamically created controls on the new tab. The layout of each tab (type of controls and their coordinates, etc.) was stored in a database table. IIRC, VB had a "clone" function, so we actually had one control of each type defined (a single button, a single listbox, etc.) and we "cloned" each of them to build the screen.

    You should have seen the event handlers.

  • Elmer Fudd (unregistered) in reply to Mike R

    Well, it's better than 400 forms named frmAfterLookupByName, frmAfterLookupByAddress, frmAfterLookupByCompany, frmLookupByName, frmLookupByAddress, frmLookupByCompany, frmSelectName, frmSelectAddress, frmSelectCompany....

    all of which are identical, except for the lookup and select forms having 398 "dummy" fields in them, so the LOOK like the AfterLookup forms... That crap makes stacking them all up and activating them conditionally look like a dream.

    "Can you just add one field to this form..." means "Can you search for all the forms that I might be referring to and add the one field (or dummy field) to all of them, by dragging and dropping it on the exact same pixel...

    GUI designers == Suck.

  • Elmer Fudd (unregistered) in reply to endergt

    edit /50 file.exe

  • anonymous (unregistered) in reply to Bill

    I program mostly PHP, but I have a project now with Delphi, so I need to do visual programing. 

    Well.. I like the fact I can "draw" screens fast that look profesional. But some task are visual, so I feel really dumb moving 20 combobox by hand. I feel like something is wrong.

    If I need to do some heavy modification on my designs on PHP is always very easy, because everything is controled by  CSS files, and templates, and is plain text and easy to modified.  The "text view of form" of Delphi is hard to hack, and If you do something wrong, the proyect seems to corrupt. So.. not only I feel dumb with Visual programming, but I have much less control over the result, and I need to do task by hand! thats new to me, task I can't automatize. Thats bad because move some reprograming task from O(1) to O(n)  :(

     

  • Ron (unregistered)

        I won't even mention the fact that you have all of this with a pageframe control (tab control for non-FoxPro people), which the controls may or may not be in, and the fact that you can't reference a control directly from another control without fun commands like thisform.pageframe1.page5.txttextinput26.  And what were they smoking when they decided to name controls things liketxttextinput26 anyway?

  • nobody (cs)

    This is the reason why GUI should be coded by hand.
    If they had tried to write that by hand, they would have either gone insane, or canceled the project 350% over budget.

  • endergt (cs) in reply to Elmer Fudd

    Anonymous:
    edit /50 file.exe

     

    Huh. Learn something new every day. How about that. Thanks! 

  • themagni (cs) in reply to Ron
    Anonymous:

     And what were they smoking when they decided to name controls things liketxttextinput26 anyway?

    That's what happens when you read one book on VB and get to work. It scares me a little that I can follow the logic, but I have worked with this sort of thinking in the past.
     
    Several books suggest hungarian notation, so your textbox field would have the prefix "txt-"

    Then, you have a place where you have a generic text input field. Let's assume it's a textbox. We'll call that generic field "textinput" because the use of the box will change depending on what's visible. Your box is now called "txt-" & "textinput" or "txttextinput"

    Let us now assume that you have several of these boxes. You could either name them descriptively or follow the VB defaultconvention and add a numeric identifier. Your 26th box would be called "txttextinput26".

    I'm still not sure what's wrong with:

    SubHeadingLabel.Text = SomeString 

    and changing the value of the labels dynamically. That would cut down the mountain of crap into a reasonably large hill.

    As for the overlays, you can change the size and position of the boxes during execution. Now you've got a lump of crap.

  • Ozru (cs) in reply to endergt
    endergt:
    snoofle:

    Every system (*nix, PC's, etc.) has a hex editor  with a string-search capability - really not that hard if you understand what you are doing...

     

    Out of curiosity - what is the hex editor on a default Windows installation? 


    debug.exe, as long as your file is under half a meg.
  • Pete (unregistered)

    Maybe I'm missing something obvious here, but, what's so hard about rewriting a cluttered Preferences dialog?
    The only WTF seems to be that nobody in their company knew how to run up a fresh dialog from scratch.

  • KattMan (unregistered) in reply to nobody

    nobody:
    This is the reason why GUI should be coded by hand.
    If they had tried to write that by hand, they would have either gone insane, or canceled the project 350% over budget.

     Which is exactly why you shouldn't code a business GUI by hand.  Many projects would run over budget because of this, even if the GUI is designed well.  There are other types of GUI's (thinking games here) that should always be coded by hand, but then those GUI's are part of the functional process anyway; business GUI's are separated from process, or should be.

    Oh and that'll be two cents for the quote.

  • different perspective (unregistered)

    As an employee WTF's like this will make you cringe but as an hourly contractor they're money in the bank!  Sure, it may stink a bit while doing the dirty work of dealing with someone else's poor design but I'll bet its that kind of thinking that kept "Tom" from jumping out the window.

     

  • Matt Sayler (unregistered) in reply to Elmer Fudd

    Anonymous:
    edit /50 file.exe

     

    I wonder if edlin is binary-clean? 

  • navigator (cs) in reply to endergt
    endergt:
    snoofle:

    Every system (*nix, PC's, etc.) has a hex editor  with a string-search capability - really not that hard if you understand what you are doing...

     

    Out of curiosity - what is the hex editor on a default Windows installation? 

    Think: DOS: debug.exe

  • Tukaro (cs)

    Would I be less of a man if I just started crying right now?

  • VGR (cs)

    The presence of "Core Details 1" and "Core Details 2" tabs alone is grounds for immediate membership in the User Interface Hall of Shame.

  • MrEricSir (cs)

    But think about the efficiency of using a case/switch statement.  That's gotta be one lightning fast program!

  • Rank Amateur (cs) in reply to VGR

    VGR:
    The presence of "Core Details 1" and "Core Details 2" tabs alone is grounds for immediate membership in the User Interface Hall of Shame.

    Along with "General" and "Module Specific." Like the user is going to know what fields are general (across modules?) what's specific, and what's a detail (little alone 1 vs. 2).

    --RA

     

  • KeithSpook (unregistered) in reply to endergt
    endergt:
    snoofle:

    Every system (*nix, PC's, etc.) has a hex editor  with a string-search capability - really not that hard if you understand what you are doing...

     

    Out of curiosity - what is the hex editor on a default Windows installation? 

     

    debug 

  • Rank Amateur (cs)

    Tom could simplify the maintenance a lot by replacing that tab control with a row of buttons that dynamically determine the controls' visibilties. Then all controls for this form can be neatly stacked in one place.

    I'm also not clear why there's a dedicated System Preferences window. I always put all controls for the whole application on one form and use code to "build" each window.

    One-stop shopping, that's what I always say.

    --Rank

Leave a comment on “Surgical Module Changes ”

Log In or post as a guest

Replying to comment #:

« Return to Article