UI Bites
-
This "Keep my signed in" button NEVER FUCKING WORKS!
How hard could it possibly be to save your pendant-fucking browser session?!?!
-
-
@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:
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.
-
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.
-
@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.
-
-
@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.
-
@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.
-
@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.
-
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:
Edit: I needed Chocolatey because the link to download Remote Debugging Tools for VS2015 404s on Microsoft's own site. I hate everything.
-
@Gąska Standard issue in not-reinvented listboxes.
-
-
@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?)
-
@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.
-
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.
-
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.
-
@Tsaukpaetra it could also be something related to proxy/site/http(s) configuration
-
@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?
-
Yes
A missing space.
-
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.
-
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.
-
@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 makesgrep
default to print the filenames.
-
@remi You don't need admin rights. Just download the binary and put it in your home.
-
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.
You can install it manually in home directory. It's just one binary IIRC.
Edit:
-
@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... andripgrep
syntax to filter files doesn't seem intuitive at all if the example ofrg -L -u -tc -n -w '[A-Z]+_SUSPEND
is to be believed, so really, I don't see the point)
-
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 calledfind
/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.
-
@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.
-
-prune -o
I, too, would rather drink prison toilet wine than use
find
/grep
-
-prune -o
I, too, would rather drink prison toilet wine than use
find
/grep
-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.
-
@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.
-
@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.
-
Error not found?
-
@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 usingfind ... -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.
-
@Cursorkeys said in UI Bites:
Error not found?
Since error 2 is the venerable
FILE_NOT_FOUND
, error 3 should be path not found. Great error message, though.
-
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.
-
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.
-
@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...
-
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.
-
@Zecc You can disable this behaviour in the configuration.
-
@PleegWat I see.
So I guess it's my own fault for having set this.
Mental note: just type Enter next time.