Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Antigravitas
Dec 8, 2019

Die Rettung fuer die Landwirte:
Problem: Kerberos-authenticated printing ceased to work in Ubuntu 23.10 (currently being in testing in prep for 24.04)

After a day and a half of progressively detailed tracing through the entire stack: Hey wait a minute, something is swallowing the auth-info-required option entirely and the printer is then used as anonymous, which produces a nice NT_STATUS_NOT_SUPPORTED

Solution: A few weeks ago, some knucklehad (don't look at the git blame, don't look at the git blame, don't look…) did a thing. Here's the fix:

Diff code:
diff --git a/group_vars/all.yml b/group_vars/all.yml
index c7cbf8e..f0b60fc 100644
--- a/group_vars/all.yml
+++ b/group_vars/all.yml
@@ -105,7 +105,7 @@ desktop_common_printers:
         value: A4
       - name: DefaultPageSize
         value: A4
-      - name: auto-info-required
+      - name: auth-info-required
         value: negotiate

 common_timezone: "Europe/Berlin"
--
Config management is great, you can gently caress up in a massively parallel way. Turns out lpadmin silently ignores options it doesn't recognise and the typo was introduced when host configuration was consolidated. :shepface:

Adbot
ADBOT LOVES YOU

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



Antigravitas posted:

Revert, increase the counter in the comment you ignored, move on. :v:

ynohtna posted:

The quickest, safest possible refactor: prepend a "// REFACTORME" comment

lmao if ur code has comments

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



Antigravitas posted:

Config management is great, you can gently caress up in a massively parallel way. Turns out lpadmin silently ignores options it doesn't recognise and the typo was introduced when host configuration was consolidated. :shepface:

lol nice, i had a hell of a time getting a file to parse today. turned out i was reading the wrong file cause i typoed the filename :shepface:

Chalks
Sep 30, 2009

anyone got any advice on diagnosing a memory leak where it's types being leaked instead of objects? we're on the verge of using windbg programmatically to manually dump every type, but surely we're not the only people to have had this?

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
why the heck is your application creating new types at runtime in the first place. like, that's probably the cause of your problem, something's creating new types for no goddamn reason

anyway, the usual method i use for diagnosing memory leaps is to take memory dumps while the leak is happening and seeing what's different between them. if you have three snapshots, stuff that it's in the second snapshot but not the first are potential leak candidates, and the ones that are still there in the third snapshot are almost certainly leaked (instead of being transient allocations that do get cleaned up properly).

Chalks
Sep 30, 2009

Jabor posted:

why the heck is your application creating new types at runtime in the first place. like, that's probably the cause of your problem, something's creating new types for no goddamn reason

anyway, the usual method i use for diagnosing memory leaps is to take memory dumps while the leak is happening and seeing what's different between them. if you have three snapshots, stuff that it's in the second snapshot but not the first are potential leak candidates, and the ones that are still there in the third snapshot are almost certainly leaked (instead of being transient allocations that do get cleaned up properly).

sadly it's not our code but a microsoft odata implementation that's causing the leaks. we found one with a fun little comment saying not to worry about creating a fresh type every time, the garbage collector will sort it out. not true when your caching stuff by type all over the place, it turns out!

anyway, although we've fixed it for that type, we've clearly got another somewhere.

most snapshot analysis is focused on objects so we can see a bunch of semaphores and events getting leaked which happens when you leak types. i'm surprised this is such a novel issue that there aren't any preexisting tools for this specifically.

redleader
Aug 18, 2005

Engage according to operational parameters

Chalks posted:

not to worry about creating a fresh type every time, the garbage collector will sort it out.

i'm surprised this is such a novel issue that there aren't any preexisting tools for this specifically.

i'm not

redleader
Aug 18, 2005

Engage according to operational parameters
what lang/runtime/whatever?

Chalks
Sep 30, 2009

redleader posted:

what lang/runtime/whatever?

oh sorry, that would be helpful to mention!

it's c# in .net framework 4.6, built on Microsoft.Web.OData v6 which is a sadly abandoned version that we're stuck with. fortunately open source so we're just trying to fix these issues ourselves.

I can see why they decided to abandon an entity framework based OData API, it is not very appropriate tech, but we're very invested in it so we've just gotta suck it up

Chalks fucked around with this message at 12:49 on Mar 20, 2024

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

it sounds like you are leaking objects that represent types? do they not show up in a heap dump or similar?

Chalks
Sep 30, 2009

Subjunctive posted:

it sounds like you are leaking objects that represent types? do they not show up in a heap dump or similar?

it's handles being leaked that's the main issue and tools like dotMemory just aren't seeing it, or at least not clearly enough to distinguish it from the noise.

we've managed to use the clrmd api to find out what type it is now so hopefully tracking down what's holding on to it won't be too hard. 56k DynamicResolver

Private Speech
Mar 30, 2011

I HAVE EVEN MORE WORTHLESS BEANIE BABIES IN MY COLLECTION THAN I HAVE WORTHLESS POSTS IN THE BEANIE BABY THREAD YET I STILL HAVE THE TEMERITY TO CRITICIZE OTHERS' COLLECTIONS

IF YOU SEE ME TALKING ABOUT BEANIE BABIES, PLEASE TELL ME TO

EAT. SHIT.


I was reading about planning poker since it came up itt recently and I really enjoyed this cop out bit

quote:

The people who should vote are the ones who could do the job. Too often, agile teams require everyone to vote, even if they do not know the story's work. Managers are not allowed to vote. Managers are usually motivated to make the work take less time. Hence, the vote frequently gets skewed to the negative. Managers, on the other hand, have more expertise than the typical team member. Thus, it may be prudent to give them veto power over team consensus in some situations.

which basically boils down to "bollocks bollocks management get veto"

Private Speech
Mar 30, 2011

I HAVE EVEN MORE WORTHLESS BEANIE BABIES IN MY COLLECTION THAN I HAVE WORTHLESS POSTS IN THE BEANIE BABY THREAD YET I STILL HAVE THE TEMERITY TO CRITICIZE OTHERS' COLLECTIONS

IF YOU SEE ME TALKING ABOUT BEANIE BABIES, PLEASE TELL ME TO

EAT. SHIT.


or maybe I'm wrong, but it sure seems like it

vanity slug
Jul 20, 2010

"managers have unrealistic expectations"

"managers have more expertise"

hmm

Share Bear
Apr 27, 2004

its whatever bullshit you want based on what your team has observed to be effective

if management is correct more often then you do it that way

people dont do it that way usually

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
i think it's more of an acknowledgement that managers frequently have more political power within the organization - if your process doesn't give them an official point to weigh in, they will instead do it in ad hoc ways that are more disruptive to the process

of course it's phrased in an ego-stroking way that said manager is more likely to accept

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
though there's also the issue that someone ultimately needs to decide "is this even a thing worth doing", and often whether a thing is worth doing or not is going to depend on how long it takes. so it makes sense to do that after you've figure out your estimates. and if you're doing that then it does make quite a bit of sense for managers to weigh in at that point

Private Speech
Mar 30, 2011

I HAVE EVEN MORE WORTHLESS BEANIE BABIES IN MY COLLECTION THAN I HAVE WORTHLESS POSTS IN THE BEANIE BABY THREAD YET I STILL HAVE THE TEMERITY TO CRITICIZE OTHERS' COLLECTIONS

IF YOU SEE ME TALKING ABOUT BEANIE BABIES, PLEASE TELL ME TO

EAT. SHIT.


but the problem is that if a work takes X days it will probably still take X days even if you say it takes X-2 days, unless you add overtime or more workers

so even if management goes "not this is not a 5 days work, it's a 3 days work", it will still probably take 5 days to do, or more

ideally if it absolutely must meet some deadline you'd rescope the work or add more workers

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
even the most reflection happy sickos don't usually make so many new types that anyone would notice, what on earth

Jabor posted:

though there's also the issue that someone ultimately needs to decide "is this even a thing worth doing", and often whether a thing is worth doing or not is going to depend on how long it takes. so it makes sense to do that after you've figure out your estimates. and if you're doing that then it does make quite a bit of sense for managers to weigh in at that point

yeah this. planning poker is how you come up with the estimate, so the managers can decide what direction to point you. managers can go find some other meeting to attend recreationally

I worked somewhere that made everyone do planning poker and it was dumb. designers having nothing else to go on were guessing how much work it was to stand up a database based on how many minutes we spent discussing it. total waste of time

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
managers: we're thinking of maybe doing these ten things someday
devs: alright here's how long we think they'll take (e.g. using planning poker)
managers: let's find some stakeholders to bicker with over what we're gonna do and in what order
devs: holler when you've decided

note that there exists no meeting where devs and managers both attend. this is a feature

CPColin
Sep 9, 2003

Big ol' smile.
I think I would make a good PM simply by striving never to call a meeting

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

when I was a line manager (before Agile was everything) I used to spend a lot of time and energy keeping developers from low-balling estimates because of unvalidated assumptions. would have been a lot easier to do if I’d been in the meetings where they were dreaming up the estimates, but it was mostly done through ad hoc email and conversations anyway

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Private Speech posted:

I was reading about planning poker since it came up itt recently and I really enjoyed this cop out bit

which basically boils down to "bollocks bollocks management get veto"

is that specific quote about planning poker? because "veto power" only makes sense in a yes/no vote

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

veto doesn’t need to have anything to do with a vote, it’s just the ability to prevent an action, like “making 5 days the recorded estimate”

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Subjunctive posted:

veto doesn’t need to have anything to do with a vote, it’s just the ability to prevent an action, like “making 5 days the recorded estimate”

ok then what happens after they use the veto?

if the estimate goes back to the devs, it's a useless veto (the devs have no reason to back down to break the stalemate, it's the managers who need to deliver)

if it goes to managers, it's not a veto and it contradicts the previous sentence (that managers don't vote)

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

NihilCredo posted:

ok then what happens after they use the veto?

it sits unestimated, until whatever process handles overdue estimates kicks in

Chalks
Sep 30, 2009

someone with experience vetoing a low-ball estimate is fine, nobody should be sad about increasing the points on something due to some unknown additional complexity.

complete nonsense to veto an estimate that's too high though unless you're literally doing all the work yourself, which management will never be doing

Private Speech
Mar 30, 2011

I HAVE EVEN MORE WORTHLESS BEANIE BABIES IN MY COLLECTION THAN I HAVE WORTHLESS POSTS IN THE BEANIE BABY THREAD YET I STILL HAVE THE TEMERITY TO CRITICIZE OTHERS' COLLECTIONS

IF YOU SEE ME TALKING ABOUT BEANIE BABIES, PLEASE TELL ME TO

EAT. SHIT.


NihilCredo posted:

is that specific quote about planning poker? because "veto power" only makes sense in a yes/no vote

yeah it's from a planning poker training thingy

DELETE CASCADE
Oct 25, 2017

i haven't washed my penis since i jerked it to a phtotograph of george w. bush in 2003

Jabor posted:

though there's also the issue that someone ultimately needs to decide "is this even a thing worth doing", and often whether a thing is worth doing or not is going to depend on how long it takes. so it makes sense to do that after you've figure out your estimates. and if you're doing that then it does make quite a bit of sense for managers to weigh in at that point

pretty much my entire job at this point consists of convincing both management and developers that we can determine the worth of the thing by doing less of it than they want

estimates don't really figure into this, except to the extent that less thing should take less time. and when it doesn't, whoops

DELETE CASCADE
Oct 25, 2017

i haven't washed my penis since i jerked it to a phtotograph of george w. bush in 2003
also types are a compile-time feature and reflection is an abomination. a program leaking types makes about as much sense as a program leaking syntax

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

DELETE CASCADE posted:

pretty much my entire job at this point consists of convincing both management and developers that we can determine the worth of the thing by doing less of it than they want

yeah this is related to “making estimates is work” which people often forget and which planning poker tends to forcibly ignore. virtually all interesting items have ambiguity that needs work (prototyping, research, measurement of existing systems, clarification with stakeholders or dependency groups like infra) to reduce to usable levels

we have a whole “prototype” phase, for which I hate the name, but which is used to put together the estimate and plan for the “build” phase. our projects tend to be 2-3 weeks with 2-3 people, so not the sprint-level decomposition that people seem to like, but I’ve never been able to confidently decompose anything without doing at least some design work, and it’s better to do and capture that work explicitly than assume that everyone is on the same page

(some places do try to pre-chew the work down to atomic, no-judgment-required elements, but outside of some outsourcing scenarios where that’s required, I’ve seen it fail more often than not when it’s time to put those pieces together in the end)

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

DELETE CASCADE posted:

also types are a compile-time feature and reflection is an abomination. a program leaking types makes about as much sense as a program leaking syntax

types very often have runtime remains, such as when debugging or printing stack traces, but I agree that “leaking types” is sloppy shorthand for…something that probably has “Type” in its name, to be fair

reflection is a very powerful tool for dynamically combining things, which is a very powerful tool for losing the ability to confidently reason about your systems; this creates opportunities for promotion-justifying rewrites

and yet, I want the types of data coming out of my database to be reified because I might want to be “agile” across different variants during a migration, or otherwise adapt to a mismatch and recover (noisily!)

Soricidus
Oct 21, 2010
freedom-hating statist shill

DELETE CASCADE posted:

also types are a compile-time feature and reflection is an abomination. a program leaking types makes about as much sense as a program leaking syntax

I am extremely confident that there are codebases out there in production where syntax leaks are a real problem. maybe where someone did something stupidly clever with dynamic code generation in a language with lisp-style macros

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

Soricidus posted:

I am extremely confident that there are codebases out there in production where syntax leaks are a real problem. maybe where someone did something stupidly clever with dynamic code generation in a language with lisp-style macros

there used to be a site, I think an eBay one, that would load some JS, decompile it to equivalent source, and then perform string substitution before recompiling and running it

(decompilation was part of the standard because Brendan was being cute in 1995 when unsupervised, and the supporting machinery in SpiderMonkey, along with the related error-source generator, were the worst parts by far to work on)

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
I assume "manager doesn't vote but can veto" in planning poker means they don't normally participate in the estimating (vote) except when they bypass it completely (veto). and I assume "veto" means "gently caress you voting's over we're using my number"

there's no need for "experienced dev vetos lowball estimate" if experienced dev is participating normally, they just keep voting high. you don't stop until there's consensus

redleader
Aug 18, 2005

Engage according to operational parameters

DELETE CASCADE posted:

also types are a compile-time feature and reflection is an abomination

didn't expect to see a big fan of java's type erasure here

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

pokeyman posted:

there's no need for "experienced dev vetos lowball estimate" if experienced dev is participating normally, they just keep voting high. you don't stop until there's consensus

consensus in these things often means “tired of fighting” as much as “we have come to agreement on the facts”, I think, but also it pushes down on “we need to answer these questions to give a good estimate” IME unless you toss it back into the backlog and instead schedule a task for “answer those questions”. I have not seen that practice in the places I’ve seen play poker

Antigravitas
Dec 8, 2019

Die Rettung fuer die Landwirte:
I saw some memey image about js, and decided to replicate.

code:
$ node 
Welcome to Node.js v20.11.0.
Type ".help" for more information.
> new RegExp({}).test('mom')
true
> new RegExp({}).test('dad')
false
> aajklhlazr92^6pb
type coercion is loving evil

polyester concept
Mar 29, 2017

what even is it trying to do with the empty curly braces? that ain't no valid pattern that I am aware of

fake edit: oh it is literally converting {} to a string which in javascript is "[object Object]" and then it is testing against the regex pattern "/[object Object]/", so it's always true if the string you are testing contains an o, b, j, e, c, t, O, or space. lol

polyester concept fucked around with this message at 00:00 on Mar 21, 2024

Adbot
ADBOT LOVES YOU

necrotic
Aug 2, 2005
I owe my brother big time for this!

polyester concept posted:

what even is it trying to do with the empty curly braces? that ain't no valid pattern that I am aware of

fake edit: oh it is literally converting {} to a string which in javascript is "[object Object]" and then it is testing against the regex pattern "/[object Object]/"

yup indeed!

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply