UI Bites


  • Notification Spam Recipient

    bdd66974-fa4e-4756-a14f-92ed1c9d114e-image.png

    This "Keep my signed in" button NEVER FUCKING WORKS!

    How hard could it possibly be to save your pendant-fucking browser session?!?!


  • :belt_onion:

    @Tsaukpaetra said in UI Bites:

    pendant-fucking

    That sounds dangerous.


  • Notification Spam Recipient

    @sloosecannon said in UI Bites:

    @Tsaukpaetra said in UI Bites:

    pendant-fucking

    That sounds dangerous.

    When your cookies are set to session-only for a "Keep me signed in" option, I would definitely agree!

    (At least, I assume that's what's happening, I do stay signed in if I never close the tab)



  • @Tsaukpaetra said in UI Bites:

    bdd66974-fa4e-4756-a14f-92ed1c9d114e-image.png

    This "Keep my signed in" button NEVER FUCKING WORKS!

    How hard could it possibly be to save your pendant-fucking browser session?!?!

    The session is probably saved fine, but it takes way more than that to keep you logged in. Normally the bearer token that gets sent with each request has short expiration time, and you get another token, a refresh token, that you use to get new bearer token from the OpenID server when the first expires. When keep me signed in does not work, it is usually because the refresh logic is broken somewhere.

    And for some authentication backends it simply never does, because they don't support it at all. The checkbox always worked for me everywhere where Jenkins was doing authentication itself, so most likely it is that your instance uses some plugin where it either can't work, or it is bugy.


  • Notification Spam Recipient

    @Bulb said in UI Bites:

    the OpenID server

    Jenkins (to my knowledge) isn't set up with any of that nonsense OpenID crap. It's a cookie, anyways.

    Here, have one, it's bound to be invalid by the time anyone tries to make use of it...

    Cookie: jenkins-timestamper-offset=25200000; jenkins-timestamper-local=true; jenkins-timestamper=elapsed; _ga=GA1.2.202309255.1546755116; screenResolution=3840x2160; JSESSIONID.cf472384=node01bgk9kn22alq11ir6d6ajkvx49363.node0; JSESSIONID.21303449=node01g82gmd73i513r5f63wpox77387.node0; ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE=aGFycnk6MTU1MjYzMjM1MzM3MDozMjUzNWI5NjMxM2Q4Y2JhMmE4ZmU2ODIyNzIyMDdmYmEwMmY3ZDAzMmI5NTRmNzFmYTJlMDQ0ZjNhZmVhYjIy; JSESSIONID.814891f3=node0s1a5ncpla2fti8kwtwvn6p67172.node0
    


  • @Tsaukpaetra True, that is Jenkin's own dialog, while the point of OpenID is to delegate that. However, the session duration is still subject to the authentication backend's rules. And bugs in its implementation.


  • Java Dev

    @Tsaukpaetra That's the request cookie header. Expiration information is only in the response Set-Cookie header when the cookie is set or updated, or in your browser's cookie bin. If it's created by javascript, then there never is a Set-Cookie header, but since this is JSESSIONID it's probably set from the server.


  • Discourse touched me in a no-no place


  • BINNED

    @Tsaukpaetra said in UI Bites:

    @sloosecannon said in UI Bites:

    @Tsaukpaetra said in UI Bites:

    pendant-fucking

    That sounds dangerous.

    When your cookies are set to session-only for a "Keep me signed in" option, I would definitely agree!

    (At least, I assume that's what's happening, I do stay signed in if I never close the tab)

    Are you sure they're not?

    I don't remember the details, but I remember I did have to mess with Jenkins cookies once because it kept accumulating until the cookies were so large the requests erred out.


  • Notification Spam Recipient

    @topspin said in UI Bites:

    @Tsaukpaetra said in UI Bites:

    @sloosecannon said in UI Bites:

    @Tsaukpaetra said in UI Bites:

    pendant-fucking

    That sounds dangerous.

    When your cookies are set to session-only for a "Keep me signed in" option, I would definitely agree!

    (At least, I assume that's what's happening, I do stay signed in if I never close the tab)

    Are you sure they're not?

    I don't remember the details, but I remember I did have to mess with Jenkins cookies once because it kept accumulating until the cookies were so large the requests erred out.

    I experienced this myself, and I concluded it had created so many sessions from not remembering my session that they just accumulated. Reopening Chrome instantly fixed it (and turned Chrome's three-bars menu into three-dots menu, but that's tangential).



  • @topspin I hate how Windows ruined the "open file in application" dialog. Previously you could type the first few characters of an application you want + Enter, or press Alt+B to select a new application. Now you need to scroll around helplessly to do either.


  • Banned

    @jimbo1qaz-0 said in UI Bites:

    Previously you could type the first few characters of an application you want + Enter, or press Alt+B to select a new application.

    TIL.


  • 🚽 Regular

    I couldn't download Chocolatey because a stupid modal popup was bigger than the screen (no, scrolling didn't reach the bottom of the box). God forbid anyone have a laptop with a small screen on today's web:

    Untitled.png

    Edit: I needed Chocolatey because the link to download Remote Debugging Tools for VS2015 404s on Microsoft's own site. I hate everything.


  • 🚽 Regular

    @Gąska Standard issue in not-reinvented listboxes.



  • @Cursorkeys said in UI Bites:

    I hate everything.

    You're in the right place.



  • @Cursorkeys said in UI Bites:

    Edit: I needed Chocolatey because the link to download Remote Debugging Tools for VS2015 404s on Microsoft's own site. I hate everything.

    If you haven't tried, try zooming the page out.

    (Also, what god did you anger to be stuck on a machine with a 1366x768 screen?)


  • 🚽 Regular

    @Douglasac said in UI Bites:

    If you haven't tried, try zooming the page out.

    I didn't think of that. Good idea, it would have likely worked. I opened the dev tools menu in the end and deleted the modal popup from the page.

    @Douglasac said in UI Bites:

    Also, what god did you anger to be stuck on a machine with a 1366x768 screen?

    I have a literal stack of them I use for development. Useful for datalogging/prototyping things out on the manufacturing floor. No-one else wants them....



  • @Cursorkeys said in UI Bites:

    I opened the dev tools menu in the end and deleted the modal popup from the page.

    As they say, there's more than one way to skin a cat.

    @Cursorkeys said in UI Bites:

    I have a literal stack of them I use for development. Useful for datalogging/prototyping things out on the manufacturing floor. No-one else wants them....

    Beats the stack of random HPs we have, most of which have dead batteries and half of which are models with the stupid forcepads. I'm very glad that HP did something sensible for once and ditched them.


  • I survived the hour long Uno hand

    @Bulb said in UI Bites:

    The session is probably saved fine, but it takes way more than that to keep you logged in. Normally the bearer token that gets sent with each request has short expiration time, and you get another token, a refresh token, that you use to get new bearer token from the OpenID server when the first expires. When keep me signed in does not work, it is usually because the refresh logic is broken somewhere.
    And for some authentication backends it simply never does, because they don't support it at all. The checkbox always worked for me everywhere where Jenkins was doing authentication itself, so most likely it is that your instance uses some plugin where it either can't work, or it is bugy.

    Don't forget the most likely possibility - @Tsaukpaetra has some browser extension set up to clean his cookies or otherwise block cookies from evil tracking websites, and it's being too aggressive and whacking the login cookie for the site after he leaves.


  • Notification Spam Recipient

    @izzion said in UI Bites:

    @Bulb said in UI Bites:

    The session is probably saved fine, but it takes way more than that to keep you logged in. Normally the bearer token that gets sent with each request has short expiration time, and you get another token, a refresh token, that you use to get new bearer token from the OpenID server when the first expires. When keep me signed in does not work, it is usually because the refresh logic is broken somewhere.
    And for some authentication backends it simply never does, because they don't support it at all. The checkbox always worked for me everywhere where Jenkins was doing authentication itself, so most likely it is that your instance uses some plugin where it either can't work, or it is bugy.

    Don't forget the most likely possibility - @Tsaukpaetra has some browser extension set up to clean his cookies or otherwise block cookies from evil tracking websites, and it's being too aggressive and whacking the login cookie for the site after he leaves.

    News to me. Happens on all browsers, including the ones that literally can't into add-on.


  • :belt_onion:

    @Tsaukpaetra it could also be something related to proxy/site/http(s) configuration


  • Notification Spam Recipient

    @sloosecannon said in UI Bites:

    @Tsaukpaetra it could also be something related to proxy/site/http(s) configuration

    Then shame on Jenkins, because there's nothing special there either. No https here!



  • Today in "CLI sucks", I tried to find where in my project is a specific CMake variable used. Simple one-time search, I'm not going to spend time thinking about it, so a quick and ugly find/grep, like this:

    find . -name CMakeLists.txt -print -exec grep FOO {}\;

    I've been bitten often enough by find ... -exec to know the stupid syntax of {} and to remember to escape the ; (very intuitive, all that). But still my command didn't output anything (apart from the first file name match), no error, no nothing, and it took me far too long to find out. Can you spot the mistake?

    :angry:


  • Java Dev

    @remi

    YesA missing space.


  • @remi said in UI Bites:

    Can you spot the mistake?

    At first sight, yes.

    I'd like to introduce you to the wonders of ripgrep. At this day and age, it is of course packaged too, though you need sufficiently new base system.



  • @PleegWat Congratulations, it took you less time (judging from timestamps) than me.



  • @Bulb said in UI Bites:

    I'd like to introduce you to the wonders of ripgrep. At this day and age, it is of course packaged too, though you need sufficiently new base system.

    I'd like to introduce you to the wonders of working on a Debian 7 system with no admin rights. :sadface:



  • @remi By the way, if you wanted to stick with find, you should be using + rather than {}. {} calls the command for each file separately, + calls it once for a batch of as many fits in the exec argument, which is faster and also makes grep default to print the filenames.



  • @remi You don't need admin rights. Just download the binary and put it in your home.


  • Banned

    @remi said in UI Bites:

    @Bulb said in UI Bites:

    I'd like to introduce you to the wonders of ripgrep. At this day and age, it is of course packaged too, though you need sufficiently new base system.

    I'd like to introduce you to the wonders of working on a Debian 7 system with no admin rights. :sadface:

    You can install it manually in home directory. It's just one binary IIRC.

    Edit: :hanzo:



  • @Bulb "Debian 7" != "sufficiently new base system".

    (also, if I wanted to just search everything I'd just do grep -r FOO * and be done with it, but that's going to scan all bazillions of files instead of just the ones I want... and ripgrep syntax to filter files doesn't seem intuitive at all if the example of rg -L -u -tc -n -w '[A-Z]+_SUSPEND is to be believed, so really, I don't see the point)


  • Java Dev

    I would rather suggest writing your own find/grep wrapper which fits your environment. The downside I've found to that is that you end up having some arguments that always go to find (or you wouldn't be using find) but you may also have some arguments that also go to grep, and then on random invocations you'll be wanting to pass a grep pattern but frequently also specific filenames or start paths to find. So I end up typing (cd ../../some/dir; mygrep patern) a lot. I might think of something better some day.



  • @PleegWat I do already have my own find/grep, it's called find/grep.

    Don't put on your complicator's gloves. I just need now and then a quick and dirty tool to do stuff, and despite me losing a few minutes today, it still beats finding/installing/learning/customizing/remembering/tweaking/... a custom half-broken tool.


  • Java Dev

    @remi Oh, I hear you on the tool. In my case though, I need that find ... -name .censored -prune -o -exec too frequently to type it out every single time.



  • @PleegWat said in UI Bites:

    -prune -o

    I, too, would rather drink prison toilet wine than use find/grep


  • BINNED

    @hungrier said in UI Bites:

    @PleegWat said in UI Bites:

    -prune -o

    I, too, would rather drink prison toilet wine than use find/grep

    topspin man find /-prune

    -prune  This primary always evaluates to true.  It causes find to not
            descend into the current file.  Note, the -prune primary has no
            effect if the -d option was specified.
    

    /-o

     find /usr/src -name CVS -prune -o -depth +6 -print
             Find files and directories that are at least seven levels deep in
             the working directory /usr/src.
    
     find /usr/src -name CVS -prune -o -mindepth 7 -print
             Is not equivalent to the previous example, since -prune is not
             evaluated below level seven.
    

    No mention of -o under options, primaries, or operators. It's explained under STANDARDS that it's apparently the same as -or.
    Still don't get the examples, either.


  • Banned

    @remi how about find ... | xargs grep -n?



  • @Gąska Why not, indeed. But also... why?

    I mean, I know the difference and why xargs might be better, but for what I'm doing both work equally well. Of course using | xargs means I don't have to remember the weird {} \; (or + \;) syntax of -exec but then I have to remember | xargs -- both of which are arcane if you don't understand them, and logical when you do, so there is not much difference here. It's all down to what sticks better into my memory.

    Or, said otherwise: I wasn't asking for help or suggestions, I was just ranting.


  • Java Dev

    @topspin I've always used -o rather than -or. I don't get those depth exceptions either, but the point of -name CVS -prune -o is to not descend into directories named CVS.


  • 🚽 Regular

    c692237b-fdbf-4837-acd9-a02a9f4d22ee-image.png

    Error not found?


  • Java Dev

    @remi And of course whenever find ... -print | xargs is in use there is that nasty highly theoretical problem with filenames containing special characters (or even just spaces) and you should be using find ... -print0 | xargs -0.

    I've also got a couple of scriptlets that use -exec as a test rather than an action, but I don't recall the details from the back of my head.


  • BINNED

    @Cursorkeys said in UI Bites:

    c692237b-fdbf-4837-acd9-a02a9f4d22ee-image.png

    Error not found?

    Since error 2 is the venerable FILE_NOT_FOUND, error 3 should be path not found. Great error message, though.


  • 🚽 Regular

    @topspin said in UI Bites:

    Since error 2 is the venerable FILE_NOT_FOUND, error 3 should be path not found. Great error message, though.

    Seems right, it stopped erroring out when I used a path that would expand identically from the machine requesting the backup and the database server.



  • @remi said in UI Bites:

    I wasn't asking for help or suggestions, I was just ranting.

    Nice Blakeyrant, but neglected to state that this isn't a help topic. Also, needs more whargarble. 7/10.


  • Considered Harmful

    @remi I would use ls -recurse CMakeLists.txt | sls FOO. Assuming you have PS of course.



  • @pie_flavor Somehow it seems unlikely that my non-admin-rights Debian 7 machine will ever get PowerShell...


  • 🚽 Regular

    Every. Single. Time.

    Type something on Slack. Realize I want to write a message followed by something is inside a preformatted block.

    • Type message.
    • Type Shift+Enter. A new line is created in the input box, the message is not submitted. As expected.
    • Type three backticks.
    • Type Shift+Enter. The message is submitted, include a last line showing three backticks.
    • Curse. Press Up to edit last message.
    • This time press Ctrl+Enter instead.


  • @Zecc: Ah, I see Slack hired the former Community Server development team.


  • Java Dev

    @Zecc You can disable this behaviour in the configuration.


  • 🚽 Regular

    @PleegWat I see.

    ecfec3d0-74c5-4858-8ef0-4471c32507b8-image.png

    So I guess it's my own fault for having set this. 😳

    Mental note: just type Enter next time.


Log in to reply