Anti-pattern: Fucking Lazy-Ass Software


  • Trolleybus Mechanic

    I fucking hate this anti-patterns:

    http://i.imgur.com/6YXP0O5.png

    If you have the ability to detect that the software is already running, instead of popping up an error message, here's an idea-- why not fucking focus/bring to the front the fucking software I'm trying to run?!?

    Yes, the VPN GUI is showing. Except it isn't. It's minimized to the taskbar, and hidden behind a 4px by 4px chevron that I can barely see because Metro UI.

    Granted, you don't want to start randomly bringing shit to the foreground by accident. But if I've gone to the trouble of going to the Start menu to click on the launcher for this program-- then it's pretty certain that I actually want this program running and in the foreground. Restore the fucking UI and show it to me, you lazy-ass fucker.


  • Discourse touched me in a no-no place

    @Lorne_Kates said:

    If you have the ability to detect that the software is already running, instead of popping up an error message, here's an idea-- why not fucking focus/bring to the front the fucking software I'm trying to run?!?

    Because that would be a non-asshole thing to do.

    It's not as if Raymond Chen didn't write an article about this like ten[1] years ago.

    [1] maybe.



  • I think it's a bloody design guideline for OS X programs: if you only can have one instance, launching another will bring the window in question to the front.





  • @Lorne_Kates said:

    If you have the ability to detect that the software is already running, instead of popping up an error message, here's an idea-- why not fucking focus/bring to the front the fucking software I'm trying to run?!?

    What do you do about software that was started by another user, but only one instance is allowed to execute on the machine?

    Maybe the answer is that is a stupid concept, but I just wanted to know people's opinions.


  • area_deu

    @xaade said:

    What do you do about software that was started by another user, but only one instance is allowed to execute on the machine?

    That must be really shitty Windows-98 era software. Do you have an example?

    Maybe the answer is that is a stupid concept, but I just wanted to know people's opinions.
    It's a stupid concept.

  • Discourse touched me in a no-no place

    That's the one. And of course, if you're writing the application, as he says, you can arrange it to give the first instance the foreground.



  • @ChrisH said:

    That must be really shitty Windows-98 era software. Do you have an example?

    It probably is.

    A lot of the codebase is in C++ but clearly copy-pasted from C code.



  • @ChrisH said:

    @xaade said:
    What do you do about software that was started by another user, but only one instance is allowed to execute on the machine?

    That must be really shitty Windows-98 era software. Do you have an example?

    Steam?



  • @wft said:

    I think it's a bloody design guideline for OS X programs: if you only can have one instance, launching another will bring the window in question to the front.

    In Mac Classic, the OS itself would do that as there was no facility for running multiple instances of the same program. Short of duplicating the application file. That always kind of threw me when I started interacting with Windows and other OSes-- you can run the same application twice?

    This has been another Mac Classic Moment!


  • area_can

    If we're going to point out how shitty Steam is, we're going to need another thread...



  • BTW, good WTF, lazy-ass developers and their useless error messages ("this is easily-solved, but I'm not going to bother and make you, the user, worry about it instead") have always been on my shit-list.

    As an added note, VPN software for some reason is always really really shitty at usability considering the extremely simple UI required. Probably because they assume the same guy who wrote the TCP/IP stack to write the UI, I guess? But they always come out shit.



  • @xaade said:

    What do you do about software that was started by another user, but only one instance is allowed to execute on the machine?

    if(existingProcess.SessionId != CurrentUser.SessionId) 
    {
        MessageBox.Show("Lolz, softwarez R teh runningz");
    }
    else
    {
        FocusOn(existingProcess);
    }
    


  • @bb36e said:

    If we're going to point out how shitty Steam is, we're going to need another thread...

    I think we already have like 20 of those.



  • @blakeyrat said:

    BTW, good WTF, lazy-ass developers and their useless error messages ("this is easily-solved, but I'm not going to bother and make you, the user, worry about it instead") have always been on my shit-list.

    I worked on software where the validation behavior was to not let the user leave a field until they had a valid input.

    Yes, situations where field were dependent on each other needed special code to behave as a single validation unit.

    Yes, I wanted to invent a time machine just to remove the owner of this design from history.



  • @bb36e said:

    If we're going to point out how shitty Steam is, we're going to need another thread...

    Sorry, I thought we were looking for examples of shitty Windows-98 era software.



  • @blakeyrat said:

    As an added note, VPN software for some reason is always really really shitty at usability considering the extremely simple UI required. Probably because they assume the same guy who wrote the TCP/IP stack to write the UI, I guess? But they always come out shit.

    +1 to this one. The only good VPN software I have ever seen is the one built into Windows, and even that one is mediocre at best. DirectAccess beats VPN hands-down.

    I sometimes have to use VPN software that was created by AT&T. Just starting the software takes a minute, for it to draw a simple form with a big "Connect now" button. Then it processes a bit, asks me for my username+password, and sets up the connection. And then the network connection goes down (due to flaky 4G coverage out in the middle of friggin' nowhere) and it simply doesn't work anymore - I have to reconnect. And sometimes it flat-out crashes.


  • area_deu

    @DCRoss said:

    Steam?

    Smoke?


  • Discourse touched me in a no-no place

    The current version of Cisco AnyConnect seems pretty inoffensive, although I only use it on OSX. It might be worse on Windows.

    I've had to use AT&T Connect before and fuck that.

    edit: Not AT&T Connect. Fuck that too, but I meant their VPN client.



  • @loopback0 said:

    The current version of Cisco AnyConnect seems pretty inoffensive, although I only use it on OSX. It might be worse on Windows.
    The desktop client throws an Action Center notification to let you know about the balloon tip it's popping up to tell you about the dialog it's about to show that steals keyboard focus but isn't active.

    But other than that it's okay, and the Metro one isn't absolutely terrible. Wish they'd hook into WinPhone land though.


  • Java Dev

    Sounds like a step up from the linux version, which has a tendency to shit all over your network configuration files and then leave you stranded. Or so I've heard; I've never used it myself since openconnect (with network manager integration) just works.


  • Discourse touched me in a no-no place

    Apparently if it's in range of the corporate WiFi then our Windows implementation prevents you from connecting to any other WiFi network, but luckily the OSX implementation doesn't.
    Being able to connect to not-corporate-but-still-provided-by-the-company open-Internet WiFi is useful sometimes.


  • Java Dev

    I don't generally use the VPN while in the office - prefer to plug in a cable. We've got two corporate wifi networks, once for guests with a daily rotating password (never even attempted to connect to that) and one for employees which only connects to the VPN headend which I may never have used either. The wires just give internal network without VPN shenanigans - I only really use the VPN at home.

    Well, there's the separate VPN for access to production. I avoid that, mostly because of the hassle with a hardware token and the fact it likes dropping SSH connections it thinks are idle. Beats a human proxy when you do need prod access though.


  • Discourse touched me in a no-no place

    I don't use the VPN in the office either - connecting to our (non-guest) corporate WiFi requires using AnyConnect for authentication.
    I use the wired connection to corporate wherever it's available.


  • Java Dev

    Exact same situation between us then.

    eyes suspiciously we don't share an employer do we?


  • Discourse touched me in a no-no place

    If you don't work for a Telco/ISP, the answer is almost definitely no. If you do, the answer is maybe.


  • Java Dev

    Nope. A certain large software vendor you all know and hate.



  • Insert <runaway> meme here.


  • Java Dev

    It's not so bad on the inside.



  • Anyone else hear the unmistakable tones of Stockholm Syndrome?


  • FoxDev

    Apple? Oracle? IBM? Microsoft? Someone else?


  • Discourse touched me in a no-no place

    @RaceProUK said:

    Someone else?

    Linux 🚎



  • @loopback0 said:

    Linux

    Could still be oracle. Redhat, canonical please don't tell me it's the remains of sco.


  • Discourse touched me in a no-no place

    :whoosh:


  • Trolleybus Mechanic

    @PleegWat said:

    Nope. A certain large software vendor you all know and hate.

    Discourse?



  • Oh god, Discourse is a vendor now!?



  • @TwelveBaud said:

    The desktop client throws an Action Center notification to let you know about the balloon tip it's popping up to tell you about the dialog it's about to show that steals keyboard focus but isn't active.

    But other than that it's okay, and the Metro one isn't absolutely terrible. Wish they'd hook into WinPhone land though.


    It would also be nice if it had the facility to remember my password



  • SAP?



  • @DCRoss said:

    Sorry, I thought we were looking for examples of shitty Windows-98 era software.

    Am torn between bashing all software or realizing that I probably couldn't make it better and remain profitable enough to continue to make software.

    That isn't a joke.

    Which means it really reflects on the users that don't value software enough to reflect that in their checkbooks.

    I find it ironic that oil pipelines can lose realize they overpaid a supplier a million dollars by a clerical error in their accounting, and yet go batshit insane if you say making their software better costs a few more thousand dollars.



  • @loopback0 said:

    I don't use the VPN in the office either - connecting to our (non-guest) corporate WiFi requires using AnyConnect for authentication.
    I use the wired connection to corporate wherever it's available.

    We have guest wifi. And corporate. And wires. Still have to VPN.



  • @blakeyrat said:

    VPN software for some reason is always really really shitty at usability

    Not just usability. I remember using some VPN software once that, after using it almost daily (job-related) for an extended period of time (a couple of months or so), eventually completely failed to make connections, running into a time-out every time. After several hours of raging, hair-pulling and experimenting, I finally realized it had nothing to do with the network connection - it was the f-ing logging routine, which must have been doing something retarded like reading the entire logfile, append the next line to be written, and write it back to the disk. As the file grew over time (to a whopping 2 MB!!! (yes, that was sarcasm)), this asinine method took longer and longer to complete until the delays it introduced eventually broke the network code. Simply deleting the logfile returned the application to working order (and it was lightning fast, quelle surprise!). What kind of moron does it take to write logging code like that? And who on earth allowed anyone like that anwhere near what's supposed to be professional-quality security software?


  • Discourse touched me in a no-no place

    @dcon said:

    @loopback0 said:
    I don't use the VPN in the office either - connecting to our (non-guest) corporate WiFi requires using AnyConnect for authentication.
    I use the wired connection to corporate wherever it's available.

    We have guest wifi. And corporate. And wires. Still have to VPN.

    That seems silly.


  • Discourse touched me in a no-no place

    @PleegWat said:

    and the fact it likes dropping SSH connections it thinks are idle

    Host *
      ServerAliveInterval 60
    

    ?



  • @FrostCat said:

    of course, if you're writing the application, as he says, you can arrange it to give the first instance the foreground

    But but but... that would require process-to-process communication beyond a simple fucking file semaphore. That'd be work! (Microsoft Word and all its ~$ files can go to hell.)

    What's really annoying though is how Windows Server likes to create totally fucking new RDP sessions despite the fact that the other RDP session is disconnected. And then you can have two simultaneous console sessions that are both running under the same user profile. So of course if you try to open Firefox it'll say it's already running because it's running on the same user profile in the other RDP session. Oh and nobody's even connected to that RDP session because they closed it without logging off. And now it's a zombie RDP session. And then you close your session without logging off and there's two zombie RDP sessions. And then ... well there's a hard limit of 3 sessions, so eventually it just refuses to let you connect until someone goes and physically sits in front of that machine and starts killing old RDP sessions that should've died.

    @AlexMedia said:

    The only good VPN software I have ever seen is the one built into Windows, and even that one is mediocre at best.

    I use Shrew Soft VPN Client and it works pretty well. Even ignores the stupid fucking "disallow all access to devices on your local network while the VPN is connected" security "feature" that my I.T. Nazis have enabled.

    @loopback0 said:

    Cisco

    Cisco's VPN client wouldn't let me disable that setting. Once the VPN connected, I couldn't connect to anything on my local network anymore and there was no way to fix it other than stop using the Cisco VPN client. I assume the current version of AnyConnect is probably the same.


  • Discourse touched me in a no-no place

    @anotherusername said:

    And then ... well there's a hard limit of 3 sessions, so eventually it just refuses to let you connect until someone goes and physically sits in front of that machine and starts killing old RDP sessions that should've died.

    You solve that by telling your users to stop doing that or you're going to take away their access.



  • @anotherusername said:

    Shrew Soft VPN Client

    Ah, now that you mention that one... I've used that in the past. It worked pretty well actually, it was much better than the AT&T crap which I have to use nowadays.


  • Discourse touched me in a no-no place

    @anotherusername said:

    Once the VPN connected, I couldn't connect to anything on my local network anymore and there was no way to fix it other than stop using the Cisco VPN client.

    When we used the pre-AnyConnect version, there was an option in the settings which worked most of the time.

    I've not had a Windows work laptop for ages - I only use AnyConnect on OSX, and local network traffic is always routed correctly. Either OSX ignores the VPN irregardless of client for local traffic, or it Just Works™.


  • ♿ (Parody)

    @loopback0 said:

    The current version of Cisco AnyConnect seems pretty inoffensive, although I only use it on OSX. It might be worse on Windows.

    I use it on Windows. I haven't gotten angry at it. Certainly not nearly so much as the Juniper vpn I use.



  • @loopback0 said:

    When we used the pre-AnyConnect version, there was an option in the settings which worked most of the time.

    Yeah, the setting's there, but your VPN's administrator can push out a config that asks your VPN client to disable the setting and not let you change it.



  • You do what Microsoft did for years with Office. You complain that, "This version of Office is not supported in a Terminal Services environment," and then close. The fact that Office didn't even have a version that supported TS was entirely irrelevant. You simply state that the software can't do what you're asking of it.

    And anyways, it's not a huge leap of logic to make your code say:

    if ($ImAlreadyRunning) {
        if ($ImAlreadyRunningAsAnotherUser) {
            Print "Another user is already doing that.  Only one user can do that at a time.";
            Do $this.Close();
        )
        else {
            Do $OtherProcess.BringToFront();
        }
    }
    else {
        Do $StartMainGui();
    }

Log in to reply